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)) { |