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

Unified Diff: chrome/browser/extensions/extension_webrequest_api.cc

Issue 8511063: Improve merging of header modifications in webRequest.OnHeadersReceived (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_webrequest_api.cc
diff --git a/chrome/browser/extensions/extension_webrequest_api.cc b/chrome/browser/extensions/extension_webrequest_api.cc
index 9a2c18962b323c70f69105b058c02ecd0ce1d36f..18a18dc1552c82411b78a2240a7caf4db98bf1f9 100644
--- a/chrome/browser/extensions/extension_webrequest_api.cc
+++ b/chrome/browser/extensions/extension_webrequest_api.cc
@@ -1196,10 +1196,11 @@ helpers::EventResponseDelta* CalculateDelta(
case ExtensionWebRequestEventRouter::kOnHeadersReceived: {
net::HttpResponseHeaders* old_headers =
blocked_request->original_response_headers.get();
+ helpers::ResponseHeaders* new_headers =
+ response->response_headers.get();
return helpers::CalculateOnHeadersReceivedDelta(
response->extension_id, response->extension_install_time,
- response->cancel, old_headers->GetStatusLine(),
- response->response_headers_string);
+ response->cancel, old_headers, new_headers);
}
case ExtensionWebRequestEventRouter::kOnAuthRequired:
return helpers::CalculateOnAuthRequiredDelta(
@@ -1276,6 +1277,7 @@ void ExtensionWebRequestEventRouter::DecrementBlockCount(
CHECK(blocked_request.callback);
helpers::MergeOnHeadersReceivedResponses(
blocked_request.response_deltas,
+ blocked_request.original_response_headers.get(),
blocked_request.override_response_headers,
&conflicting_extensions,
&event_log_entries);
@@ -1553,7 +1555,8 @@ bool WebRequestEventHandled::RunImpl() {
}
if (value->HasKey("responseHeaders")) {
- std::string response_headers_string;
+ helpers::ResponseHeaders* response_headers =
+ new helpers::ResponseHeaders();
ListValue* response_headers_value = NULL;
EXTENSION_FUNCTION_VALIDATE(value->GetList(keys::kResponseHeadersKey,
&response_headers_value));
@@ -1565,10 +1568,9 @@ bool WebRequestEventHandled::RunImpl() {
response_headers_value->GetDictionary(i, &header_value));
EXTENSION_FUNCTION_VALIDATE(
FromHeaderDictionary(header_value, &name, &value));
- response_headers_string += name + ": " + value + '\n';
+ response_headers->push_back(helpers::ResponseHeader(name, value));
}
- response_headers_string += '\n';
- response->response_headers_string.swap(response_headers_string);
+ response->response_headers.reset(response_headers);
}
if (value->HasKey(keys::kAuthCredentialsKey)) {

Powered by Google App Engine
This is Rietveld 408576698