summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-23 18:31:42 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-23 18:31:42 +0000
commit20bc1f8743a9eb9a35004a45493f19803d31d9ee (patch)
treed3fbe5fe241e0084f99bff0717fc8c947538fb07
parent74835d793de5a70e367d560ea21ce4b9b8a9e7ce (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/test/data/extensions/api_test/webrequest/events/test.html20
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",