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

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

Issue 980543002: Adding statusCode for webRequest onHeadersReceived and onAuthRequired callbacks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 keys::kOnHeadersReceivedEvent, request, 882 keys::kOnHeadersReceivedEvent, request,
883 &extra_info_spec); 883 &extra_info_spec);
884 884
885 if (!listeners.empty() && 885 if (!listeners.empty() &&
886 !GetAndSetSignaled(request->identifier(), kOnHeadersReceived)) { 886 !GetAndSetSignaled(request->identifier(), kOnHeadersReceived)) {
887 base::ListValue args; 887 base::ListValue args;
888 base::DictionaryValue* dict = new base::DictionaryValue(); 888 base::DictionaryValue* dict = new base::DictionaryValue();
889 ExtractRequestInfo(request, dict); 889 ExtractRequestInfo(request, dict);
890 dict->SetString(keys::kStatusLineKey, 890 dict->SetString(keys::kStatusLineKey,
891 original_response_headers->GetStatusLine()); 891 original_response_headers->GetStatusLine());
892 dict->SetInteger(keys::kStatusCodeKey,
893 original_response_headers->response_code());
892 if (extra_info_spec & ExtraInfoSpec::RESPONSE_HEADERS) { 894 if (extra_info_spec & ExtraInfoSpec::RESPONSE_HEADERS) {
893 dict->Set(keys::kResponseHeadersKey, 895 dict->Set(keys::kResponseHeadersKey,
894 GetResponseHeadersList(original_response_headers)); 896 GetResponseHeadersList(original_response_headers));
895 } 897 }
896 args.Append(dict); 898 args.Append(dict);
897 899
898 initialize_blocked_requests |= 900 initialize_blocked_requests |=
899 DispatchEvent(browser_context, request, listeners, args); 901 DispatchEvent(browser_context, request, listeners, args);
900 } 902 }
901 903
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 dict->SetBoolean(keys::kIsProxyKey, auth_info.is_proxy); 955 dict->SetBoolean(keys::kIsProxyKey, auth_info.is_proxy);
954 if (!auth_info.scheme.empty()) 956 if (!auth_info.scheme.empty())
955 dict->SetString(keys::kSchemeKey, auth_info.scheme); 957 dict->SetString(keys::kSchemeKey, auth_info.scheme);
956 if (!auth_info.realm.empty()) 958 if (!auth_info.realm.empty())
957 dict->SetString(keys::kRealmKey, auth_info.realm); 959 dict->SetString(keys::kRealmKey, auth_info.realm);
958 base::DictionaryValue* challenger = new base::DictionaryValue(); 960 base::DictionaryValue* challenger = new base::DictionaryValue();
959 challenger->SetString(keys::kHostKey, auth_info.challenger.host()); 961 challenger->SetString(keys::kHostKey, auth_info.challenger.host());
960 challenger->SetInteger(keys::kPortKey, auth_info.challenger.port()); 962 challenger->SetInteger(keys::kPortKey, auth_info.challenger.port());
961 dict->Set(keys::kChallengerKey, challenger); 963 dict->Set(keys::kChallengerKey, challenger);
962 dict->Set(keys::kStatusLineKey, GetStatusLine(request->response_headers())); 964 dict->Set(keys::kStatusLineKey, GetStatusLine(request->response_headers()));
965 dict->SetInteger(keys::kStatusCodeKey,
966 request->response_headers()->response_code());
963 if (extra_info_spec & ExtraInfoSpec::RESPONSE_HEADERS) { 967 if (extra_info_spec & ExtraInfoSpec::RESPONSE_HEADERS) {
964 dict->Set(keys::kResponseHeadersKey, 968 dict->Set(keys::kResponseHeadersKey,
965 GetResponseHeadersList(request->response_headers())); 969 GetResponseHeadersList(request->response_headers()));
966 } 970 }
967 args.Append(dict); 971 args.Append(dict);
968 972
969 if (DispatchEvent(browser_context, request, listeners, args)) { 973 if (DispatchEvent(browser_context, request, listeners, args)) {
970 blocked_requests_[request->identifier()].event = kOnAuthRequired; 974 blocked_requests_[request->identifier()].event = kOnAuthRequired;
971 blocked_requests_[request->identifier()].is_incognito |= 975 blocked_requests_[request->identifier()].is_incognito |=
972 IsIncognitoBrowserContext(browser_context); 976 IsIncognitoBrowserContext(browser_context);
(...skipping 1482 matching lines...) Expand 10 before | Expand all | Expand 10 after
2455 base::Bind(&WarningService::NotifyWarningsOnUI, profile_id(), warnings)); 2459 base::Bind(&WarningService::NotifyWarningsOnUI, profile_id(), warnings));
2456 2460
2457 // Continue gracefully. 2461 // Continue gracefully.
2458 RunSync(); 2462 RunSync();
2459 } 2463 }
2460 2464
2461 bool WebRequestHandlerBehaviorChangedFunction::RunSync() { 2465 bool WebRequestHandlerBehaviorChangedFunction::RunSync() {
2462 helpers::ClearCacheOnNavigation(); 2466 helpers::ClearCacheOnNavigation();
2463 return true; 2467 return true;
2464 } 2468 }
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/api_test/webrequest/test_simple.js ('k') | extensions/common/api/web_request.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698