diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-23 18:31:42 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-23 18:31:42 +0000 |
commit | 20bc1f8743a9eb9a35004a45493f19803d31d9ee (patch) | |
tree | d3fbe5fe241e0084f99bff0717fc8c947538fb07 | |
parent | 74835d793de5a70e367d560ea21ce4b9b8a9e7ce (diff) | |
download | chromium_src-20bc1f8743a9eb9a35004a45493f19803d31d9ee.zip chromium_src-20bc1f8743a9eb9a35004a45493f19803d31d9ee.tar.gz chromium_src-20bc1f8743a9eb9a35004a45493f19803d31d9ee.tar.bz2 |
Fix onBeforeSendHeaders regression: we were sending {name: name} for every
header value pair.
BUG=82137
TEST=no
Review URL: http://codereview.chromium.org/7048010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86308 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/extension_webrequest_api.cc | 2 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/webrequest/events/test.html | 20 |
2 files changed, 16 insertions, 6 deletions
diff --git a/chrome/browser/extensions/extension_webrequest_api.cc b/chrome/browser/extensions/extension_webrequest_api.cc index f325e7f..983bdfe 100644 --- a/chrome/browser/extensions/extension_webrequest_api.cc +++ b/chrome/browser/extensions/extension_webrequest_api.cc @@ -161,7 +161,7 @@ ListValue* GetRequestHeadersList(const net::HttpRequestHeaders* headers) { for (net::HttpRequestHeaders::Iterator it(*headers); it.GetNext(); ) { DictionaryValue* header = new DictionaryValue(); header->SetString(keys::kHeaderNameKey, it.name()); - header->SetString(keys::kHeaderValueKey, it.name()); + header->SetString(keys::kHeaderValueKey, it.value()); headers_value->Append(header); } } diff --git a/chrome/test/data/extensions/api_test/webrequest/events/test.html b/chrome/test/data/extensions/api_test/webrequest/events/test.html index b286f01..0fca788 100644 --- a/chrome/test/data/extensions/api_test/webrequest/events/test.html +++ b/chrome/test/data/extensions/api_test/webrequest/events/test.html @@ -104,6 +104,16 @@ function checkExpectations() { eventsCaptured(); } +// Simple check to see that we have a User-Agent header, and that it contains +// an expected value. This is a basic check that the request headers are valid. +function checkUserAgent(headers) { + for (var i in headers) { + if (headers[i].name.toLowerCase() == "user-agent") + return headers[i].value.toLowerCase().indexOf("chrome") != -1; + } + return false; +} + function captureEvent(name, details) { // Ignore system-level requests like safebrowsing updates and favicon fetches // since they are unpredictable. @@ -123,7 +133,7 @@ function captureEvent(name, details) { delete details.requestId; delete details.timeStamp; if (details.requestHeaders) { - details.requestHeadersExist = true; + details.requestHeadersValid = checkUserAgent(details.requestHeaders); delete details.requestHeaders; } if (details.responseHeaders) { @@ -263,7 +273,7 @@ runTests([ event: "onBeforeSendHeaders", details: { url: URL_HTTP_SIMPLE_LOAD_REDIRECT, - requestHeadersExist: true + requestHeadersValid: true } }, { label: "onRequestSent-1", @@ -271,7 +281,7 @@ runTests([ details: { url: URL_HTTP_SIMPLE_LOAD_REDIRECT, ip: "127.0.0.1", - requestHeadersExist: true + requestHeadersValid: true } }, { label: "onBeforeRedirect", @@ -297,7 +307,7 @@ runTests([ event: "onBeforeSendHeaders", details: { url: URL_HTTP_SIMPLE_LOAD, - requestHeadersExist: true + requestHeadersValid: true } }, { label: "onRequestSent-2", @@ -305,7 +315,7 @@ runTests([ details: { url: URL_HTTP_SIMPLE_LOAD, ip: "127.0.0.1", - requestHeadersExist: true + requestHeadersValid: true } }, { label: "onResponseStarted", |