Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Side by Side Diff: extensions/browser/api/web_request/web_request_api.cc

Issue 2315673002: Revert of Adjust callers and networking delegates in extensions/ to modified APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@URLRequestRead
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/web_request/web_request_api.h" 5 #include "extensions/browser/api/web_request/web_request_api.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 event_details->SetResponseHeaders(request, request->response_headers()); 862 event_details->SetResponseHeaders(request, request->response_headers());
863 event_details->SetResponseSource(request); 863 event_details->SetResponseSource(request);
864 event_details->SetString(keys::kRedirectUrlKey, new_location.spec()); 864 event_details->SetString(keys::kRedirectUrlKey, new_location.spec());
865 865
866 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 866 DispatchEvent(browser_context, request, listeners, std::move(event_details));
867 } 867 }
868 868
869 void ExtensionWebRequestEventRouter::OnResponseStarted( 869 void ExtensionWebRequestEventRouter::OnResponseStarted(
870 void* browser_context, 870 void* browser_context,
871 const InfoMap* extension_info_map, 871 const InfoMap* extension_info_map,
872 net::URLRequest* request, 872 net::URLRequest* request) {
873 int net_error) {
874 DCHECK_NE(net::ERR_IO_PENDING, net_error);
875
876 if (ShouldHideEvent(browser_context, extension_info_map, request)) 873 if (ShouldHideEvent(browser_context, extension_info_map, request))
877 return; 874 return;
878 875
879 // OnResponseStarted is even triggered, when the request was cancelled. 876 // OnResponseStarted is even triggered, when the request was cancelled.
880 if (net_error != net::OK) 877 if (request->status().status() != net::URLRequestStatus::SUCCESS)
881 return; 878 return;
882 879
883 int extra_info_spec = 0; 880 int extra_info_spec = 0;
884 EventListeners listeners = GetMatchingListeners( 881 EventListeners listeners = GetMatchingListeners(
885 browser_context, extension_info_map, keys::kOnResponseStartedEvent, 882 browser_context, extension_info_map, keys::kOnResponseStartedEvent,
886 request, &extra_info_spec); 883 request, &extra_info_spec);
887 if (listeners.empty()) 884 if (listeners.empty())
888 return; 885 return;
889 886
890 std::unique_ptr<WebRequestEventDetails> event_details( 887 std::unique_ptr<WebRequestEventDetails> event_details(
891 CreateEventDetails(request, extra_info_spec)); 888 CreateEventDetails(request, extra_info_spec));
892 event_details->SetResponseHeaders(request, request->response_headers()); 889 event_details->SetResponseHeaders(request, request->response_headers());
893 event_details->SetResponseSource(request); 890 event_details->SetResponseSource(request);
894 891
895 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 892 DispatchEvent(browser_context, request, listeners, std::move(event_details));
896 } 893 }
897 894
898 // Deprecated.
899 // TODO(maksims): Remove this.
900 void ExtensionWebRequestEventRouter::OnResponseStarted(
901 void* browser_context,
902 const InfoMap* extension_info_map,
903 net::URLRequest* request) {
904 OnResponseStarted(browser_context, extension_info_map, request,
905 request->status().error());
906 }
907
908 void ExtensionWebRequestEventRouter::OnCompleted( 895 void ExtensionWebRequestEventRouter::OnCompleted(
909 void* browser_context, 896 void* browser_context,
910 const InfoMap* extension_info_map, 897 const InfoMap* extension_info_map,
911 net::URLRequest* request, 898 net::URLRequest* request) {
912 int net_error) {
913 // We hide events from the system context as well as sensitive requests. 899 // We hide events from the system context as well as sensitive requests.
914 // However, if the request first became sensitive after redirecting we have 900 // However, if the request first became sensitive after redirecting we have
915 // already signaled it and thus we have to signal the end of it. This is 901 // already signaled it and thus we have to signal the end of it. This is
916 // risk-free because the handler cannot modify the request now. 902 // risk-free because the handler cannot modify the request now.
917 if (!browser_context || 903 if (!browser_context ||
918 (WebRequestPermissions::HideRequest(extension_info_map, request) && 904 (WebRequestPermissions::HideRequest(extension_info_map, request) &&
919 !WasSignaled(*request))) { 905 !WasSignaled(*request))) {
920 return; 906 return;
921 } 907 }
922 908
923 request_time_tracker_->LogRequestEndTime(request->identifier(), 909 request_time_tracker_->LogRequestEndTime(request->identifier(),
924 base::Time::Now()); 910 base::Time::Now());
925 911
926 DCHECK_EQ(net::OK, net_error); 912 DCHECK(request->status().status() == net::URLRequestStatus::SUCCESS);
927 913
928 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted)); 914 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted));
929 915
930 ClearPendingCallbacks(request); 916 ClearPendingCallbacks(request);
931 917
932 int extra_info_spec = 0; 918 int extra_info_spec = 0;
933 EventListeners listeners = 919 EventListeners listeners =
934 GetMatchingListeners(browser_context, extension_info_map, 920 GetMatchingListeners(browser_context, extension_info_map,
935 keys::kOnCompletedEvent, request, &extra_info_spec); 921 keys::kOnCompletedEvent, request, &extra_info_spec);
936 if (listeners.empty()) 922 if (listeners.empty())
937 return; 923 return;
938 924
939 std::unique_ptr<WebRequestEventDetails> event_details( 925 std::unique_ptr<WebRequestEventDetails> event_details(
940 CreateEventDetails(request, extra_info_spec)); 926 CreateEventDetails(request, extra_info_spec));
941 event_details->SetResponseHeaders(request, request->response_headers()); 927 event_details->SetResponseHeaders(request, request->response_headers());
942 event_details->SetResponseSource(request); 928 event_details->SetResponseSource(request);
943 929
944 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 930 DispatchEvent(browser_context, request, listeners, std::move(event_details));
945 } 931 }
946 932
947 // Deprecated.
948 // TODO(maksims): Remove this.
949 void ExtensionWebRequestEventRouter::OnCompleted(
950 void* browser_context,
951 const InfoMap* extension_info_map,
952 net::URLRequest* request) {
953 OnCompleted(browser_context, extension_info_map, request,
954 request->status().error());
955 }
956
957 void ExtensionWebRequestEventRouter::OnErrorOccurred( 933 void ExtensionWebRequestEventRouter::OnErrorOccurred(
958 void* browser_context, 934 void* browser_context,
959 const InfoMap* extension_info_map, 935 const InfoMap* extension_info_map,
960 net::URLRequest* request, 936 net::URLRequest* request,
961 bool started, 937 bool started) {
962 int net_error) {
963 // We hide events from the system context as well as sensitive requests. 938 // We hide events from the system context as well as sensitive requests.
964 // However, if the request first became sensitive after redirecting we have 939 // However, if the request first became sensitive after redirecting we have
965 // already signaled it and thus we have to signal the end of it. This is 940 // already signaled it and thus we have to signal the end of it. This is
966 // risk-free because the handler cannot modify the request now. 941 // risk-free because the handler cannot modify the request now.
967 if (!browser_context || 942 if (!browser_context ||
968 (WebRequestPermissions::HideRequest(extension_info_map, request) && 943 (WebRequestPermissions::HideRequest(extension_info_map, request) &&
969 !WasSignaled(*request))) { 944 !WasSignaled(*request))) {
970 return; 945 return;
971 } 946 }
972 947
973 request_time_tracker_->LogRequestEndTime(request->identifier(), 948 request_time_tracker_->LogRequestEndTime(request->identifier(),
974 base::Time::Now()); 949 base::Time::Now());
975 950
976 DCHECK_NE(net::OK, net_error); 951 DCHECK(request->status().status() == net::URLRequestStatus::FAILED ||
977 DCHECK_NE(net::ERR_IO_PENDING, net_error); 952 request->status().status() == net::URLRequestStatus::CANCELED);
978 953
979 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred)); 954 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred));
980 955
981 ClearPendingCallbacks(request); 956 ClearPendingCallbacks(request);
982 957
983 int extra_info_spec = 0; 958 int extra_info_spec = 0;
984 EventListeners listeners = GetMatchingListeners( 959 EventListeners listeners = GetMatchingListeners(
985 browser_context, extension_info_map, 960 browser_context, extension_info_map,
986 web_request::OnErrorOccurred::kEventName, request, &extra_info_spec); 961 web_request::OnErrorOccurred::kEventName, request, &extra_info_spec);
987 if (listeners.empty()) 962 if (listeners.empty())
988 return; 963 return;
989 964
990 std::unique_ptr<WebRequestEventDetails> event_details( 965 std::unique_ptr<WebRequestEventDetails> event_details(
991 CreateEventDetails(request, extra_info_spec)); 966 CreateEventDetails(request, extra_info_spec));
992 if (started) 967 if (started)
993 event_details->SetResponseSource(request); 968 event_details->SetResponseSource(request);
994 else 969 else
995 event_details->SetBoolean(keys::kFromCache, request->was_cached()); 970 event_details->SetBoolean(keys::kFromCache, request->was_cached());
996 event_details->SetString(keys::kErrorKey, net::ErrorToString(net_error)); 971 event_details->SetString(keys::kErrorKey,
972 net::ErrorToString(request->status().error()));
997 973
998 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 974 DispatchEvent(browser_context, request, listeners, std::move(event_details));
999 } 975 }
1000 976
1001 void ExtensionWebRequestEventRouter::OnErrorOccurred(
1002 void* browser_context,
1003 const InfoMap* extension_info_map,
1004 net::URLRequest* request,
1005 bool started) {
1006 OnErrorOccurred(browser_context, extension_info_map, request, started,
1007 request->status().error());
1008 }
1009
1010 void ExtensionWebRequestEventRouter::OnURLRequestDestroyed( 977 void ExtensionWebRequestEventRouter::OnURLRequestDestroyed(
1011 void* browser_context, 978 void* browser_context,
1012 const net::URLRequest* request) { 979 const net::URLRequest* request) {
1013 ClearPendingCallbacks(request); 980 ClearPendingCallbacks(request);
1014 981
1015 signaled_requests_.erase(request->identifier()); 982 signaled_requests_.erase(request->identifier());
1016 983
1017 request_time_tracker_->LogRequestEndTime(request->identifier(), 984 request_time_tracker_->LogRequestEndTime(request->identifier(),
1018 base::Time::Now()); 985 base::Time::Now());
1019 } 986 }
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
2285 RunWithValidation()->Execute(); 2252 RunWithValidation()->Execute();
2286 } 2253 }
2287 2254
2288 ExtensionFunction::ResponseAction 2255 ExtensionFunction::ResponseAction
2289 WebRequestHandlerBehaviorChangedFunction::Run() { 2256 WebRequestHandlerBehaviorChangedFunction::Run() {
2290 helpers::ClearCacheOnNavigation(); 2257 helpers::ClearCacheOnNavigation();
2291 return RespondNow(NoArguments()); 2258 return RespondNow(NoArguments());
2292 } 2259 }
2293 2260
2294 } // namespace extensions 2261 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/web_request/web_request_api.h ('k') | extensions/shell/browser/shell_network_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698