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

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

Issue 2264973002: 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
873 if (ShouldHideEvent(browser_context, extension_info_map, request)) 876 if (ShouldHideEvent(browser_context, extension_info_map, request))
874 return; 877 return;
875 878
876 // OnResponseStarted is even triggered, when the request was cancelled. 879 // OnResponseStarted is even triggered, when the request was cancelled.
877 if (request->status().status() != net::URLRequestStatus::SUCCESS) 880 if (net_error != net::OK)
878 return; 881 return;
879 882
880 int extra_info_spec = 0; 883 int extra_info_spec = 0;
881 EventListeners listeners = GetMatchingListeners( 884 EventListeners listeners = GetMatchingListeners(
882 browser_context, extension_info_map, keys::kOnResponseStartedEvent, 885 browser_context, extension_info_map, keys::kOnResponseStartedEvent,
883 request, &extra_info_spec); 886 request, &extra_info_spec);
884 if (listeners.empty()) 887 if (listeners.empty())
885 return; 888 return;
886 889
887 std::unique_ptr<WebRequestEventDetails> event_details( 890 std::unique_ptr<WebRequestEventDetails> event_details(
888 CreateEventDetails(request, extra_info_spec)); 891 CreateEventDetails(request, extra_info_spec));
889 event_details->SetResponseHeaders(request, request->response_headers()); 892 event_details->SetResponseHeaders(request, request->response_headers());
890 event_details->SetResponseSource(request); 893 event_details->SetResponseSource(request);
891 894
892 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 895 DispatchEvent(browser_context, request, listeners, std::move(event_details));
893 } 896 }
894 897
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
895 void ExtensionWebRequestEventRouter::OnCompleted( 908 void ExtensionWebRequestEventRouter::OnCompleted(
896 void* browser_context, 909 void* browser_context,
897 const InfoMap* extension_info_map, 910 const InfoMap* extension_info_map,
898 net::URLRequest* request) { 911 net::URLRequest* request,
912 int net_error) {
899 // We hide events from the system context as well as sensitive requests. 913 // We hide events from the system context as well as sensitive requests.
900 // However, if the request first became sensitive after redirecting we have 914 // However, if the request first became sensitive after redirecting we have
901 // already signaled it and thus we have to signal the end of it. This is 915 // already signaled it and thus we have to signal the end of it. This is
902 // risk-free because the handler cannot modify the request now. 916 // risk-free because the handler cannot modify the request now.
903 if (!browser_context || 917 if (!browser_context ||
904 (WebRequestPermissions::HideRequest(extension_info_map, request) && 918 (WebRequestPermissions::HideRequest(extension_info_map, request) &&
905 !WasSignaled(*request))) { 919 !WasSignaled(*request))) {
906 return; 920 return;
907 } 921 }
908 922
909 request_time_tracker_->LogRequestEndTime(request->identifier(), 923 request_time_tracker_->LogRequestEndTime(request->identifier(),
910 base::Time::Now()); 924 base::Time::Now());
911 925
912 DCHECK(request->status().status() == net::URLRequestStatus::SUCCESS); 926 DCHECK_EQ(net::OK, net_error);
913 927
914 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted)); 928 DCHECK(!GetAndSetSignaled(request->identifier(), kOnCompleted));
915 929
916 ClearPendingCallbacks(request); 930 ClearPendingCallbacks(request);
917 931
918 int extra_info_spec = 0; 932 int extra_info_spec = 0;
919 EventListeners listeners = 933 EventListeners listeners =
920 GetMatchingListeners(browser_context, extension_info_map, 934 GetMatchingListeners(browser_context, extension_info_map,
921 keys::kOnCompletedEvent, request, &extra_info_spec); 935 keys::kOnCompletedEvent, request, &extra_info_spec);
922 if (listeners.empty()) 936 if (listeners.empty())
923 return; 937 return;
924 938
925 std::unique_ptr<WebRequestEventDetails> event_details( 939 std::unique_ptr<WebRequestEventDetails> event_details(
926 CreateEventDetails(request, extra_info_spec)); 940 CreateEventDetails(request, extra_info_spec));
927 event_details->SetResponseHeaders(request, request->response_headers()); 941 event_details->SetResponseHeaders(request, request->response_headers());
928 event_details->SetResponseSource(request); 942 event_details->SetResponseSource(request);
929 943
930 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 944 DispatchEvent(browser_context, request, listeners, std::move(event_details));
931 } 945 }
932 946
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
933 void ExtensionWebRequestEventRouter::OnErrorOccurred( 957 void ExtensionWebRequestEventRouter::OnErrorOccurred(
934 void* browser_context, 958 void* browser_context,
935 const InfoMap* extension_info_map, 959 const InfoMap* extension_info_map,
936 net::URLRequest* request, 960 net::URLRequest* request,
937 bool started) { 961 bool started,
962 int net_error) {
938 // We hide events from the system context as well as sensitive requests. 963 // We hide events from the system context as well as sensitive requests.
939 // However, if the request first became sensitive after redirecting we have 964 // However, if the request first became sensitive after redirecting we have
940 // already signaled it and thus we have to signal the end of it. This is 965 // already signaled it and thus we have to signal the end of it. This is
941 // risk-free because the handler cannot modify the request now. 966 // risk-free because the handler cannot modify the request now.
942 if (!browser_context || 967 if (!browser_context ||
943 (WebRequestPermissions::HideRequest(extension_info_map, request) && 968 (WebRequestPermissions::HideRequest(extension_info_map, request) &&
944 !WasSignaled(*request))) { 969 !WasSignaled(*request))) {
945 return; 970 return;
946 } 971 }
947 972
948 request_time_tracker_->LogRequestEndTime(request->identifier(), 973 request_time_tracker_->LogRequestEndTime(request->identifier(),
949 base::Time::Now()); 974 base::Time::Now());
950 975
951 DCHECK(request->status().status() == net::URLRequestStatus::FAILED || 976 DCHECK_NE(net::OK, net_error);
952 request->status().status() == net::URLRequestStatus::CANCELED); 977 DCHECK_NE(net::ERR_IO_PENDING, net_error);
953 978
954 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred)); 979 DCHECK(!GetAndSetSignaled(request->identifier(), kOnErrorOccurred));
955 980
956 ClearPendingCallbacks(request); 981 ClearPendingCallbacks(request);
957 982
958 int extra_info_spec = 0; 983 int extra_info_spec = 0;
959 EventListeners listeners = GetMatchingListeners( 984 EventListeners listeners = GetMatchingListeners(
960 browser_context, extension_info_map, 985 browser_context, extension_info_map,
961 web_request::OnErrorOccurred::kEventName, request, &extra_info_spec); 986 web_request::OnErrorOccurred::kEventName, request, &extra_info_spec);
962 if (listeners.empty()) 987 if (listeners.empty())
963 return; 988 return;
964 989
965 std::unique_ptr<WebRequestEventDetails> event_details( 990 std::unique_ptr<WebRequestEventDetails> event_details(
966 CreateEventDetails(request, extra_info_spec)); 991 CreateEventDetails(request, extra_info_spec));
967 if (started) 992 if (started)
968 event_details->SetResponseSource(request); 993 event_details->SetResponseSource(request);
969 else 994 else
970 event_details->SetBoolean(keys::kFromCache, request->was_cached()); 995 event_details->SetBoolean(keys::kFromCache, request->was_cached());
971 event_details->SetString(keys::kErrorKey, 996 event_details->SetString(keys::kErrorKey, net::ErrorToString(net_error));
972 net::ErrorToString(request->status().error()));
973 997
974 DispatchEvent(browser_context, request, listeners, std::move(event_details)); 998 DispatchEvent(browser_context, request, listeners, std::move(event_details));
975 } 999 }
976 1000
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
977 void ExtensionWebRequestEventRouter::OnURLRequestDestroyed( 1010 void ExtensionWebRequestEventRouter::OnURLRequestDestroyed(
978 void* browser_context, 1011 void* browser_context,
979 const net::URLRequest* request) { 1012 const net::URLRequest* request) {
980 ClearPendingCallbacks(request); 1013 ClearPendingCallbacks(request);
981 1014
982 signaled_requests_.erase(request->identifier()); 1015 signaled_requests_.erase(request->identifier());
983 1016
984 request_time_tracker_->LogRequestEndTime(request->identifier(), 1017 request_time_tracker_->LogRequestEndTime(request->identifier(),
985 base::Time::Now()); 1018 base::Time::Now());
986 } 1019 }
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
2252 RunWithValidation()->Execute(); 2285 RunWithValidation()->Execute();
2253 } 2286 }
2254 2287
2255 ExtensionFunction::ResponseAction 2288 ExtensionFunction::ResponseAction
2256 WebRequestHandlerBehaviorChangedFunction::Run() { 2289 WebRequestHandlerBehaviorChangedFunction::Run() {
2257 helpers::ClearCacheOnNavigation(); 2290 helpers::ClearCacheOnNavigation();
2258 return RespondNow(NoArguments()); 2291 return RespondNow(NoArguments());
2259 } 2292 }
2260 2293
2261 } // namespace extensions 2294 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698