diff options
author | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 11:15:01 +0000 |
---|---|---|
committer | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 11:15:01 +0000 |
commit | 97ce1ae59952f2fc30cef5e5f2d02322c4dd056e (patch) | |
tree | 54f369ced9d44414719f34f9d0bb713aae4b2d06 /chrome/browser/extensions/api/web_request | |
parent | a0a2d853b2ce026e193c46c16aa323fe0c888325 (diff) | |
download | chromium_src-97ce1ae59952f2fc30cef5e5f2d02322c4dd056e.zip chromium_src-97ce1ae59952f2fc30cef5e5f2d02322c4dd056e.tar.gz chromium_src-97ce1ae59952f2fc30cef5e5f2d02322c4dd056e.tar.bz2 |
Fix removal of headers
HttpResponseHeaders::RemoveHeaderWithValue did not correctly remove headers if the passed value contained a comma. For a header "Foo: bar, baz", RemoveHeaderWithValue("Foo", "bar, baz") would be be a non-op. This CL fixes that. As the web request API is the only consumer of this function, there will be no side effects on other code due to the changed behavior.
BUG=137396
TEST=no
Review URL: https://chromiumcodereview.appspot.com/10809011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148078 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/web_request')
-rw-r--r-- | chrome/browser/extensions/api/web_request/web_request_api_helpers.cc | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/api/web_request/web_request_api_unittest.cc | 10 |
2 files changed, 6 insertions, 7 deletions
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc b/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc index 18d6f57..fad5eda 100644 --- a/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc +++ b/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc @@ -476,8 +476,7 @@ void MergeOnHeadersReceivedResponses( { for (i = (*delta)->deleted_response_headers.begin(); i != (*delta)->deleted_response_headers.end(); ++i) { - (*override_response_headers)->RemoveHeaderWithValue(i->first, - i->second); + (*override_response_headers)->RemoveHeaderLine(i->first, i->second); removed_headers.insert(ToLowerCase(*i)); } } diff --git a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc index d5685a5..7797be5 100644 --- a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc +++ b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc @@ -928,7 +928,7 @@ TEST(ExtensionWebRequestHelpersTest, TestCalculateOnHeadersReceivedDelta) { char base_headers_string[] = "HTTP/1.0 200 OK\r\n" "Key1: Value1\r\n" - "Key2: Value2\r\n" + "Key2: Value2, Bar\r\n" "Key3: Value3\r\n" "\r\n"; scoped_refptr<net::HttpResponseHeaders> base_headers( @@ -954,7 +954,7 @@ TEST(ExtensionWebRequestHelpersTest, TestCalculateOnHeadersReceivedDelta) { ResponseHeader("Key4", "Value4"))); EXPECT_EQ(2u, delta->deleted_response_headers.size()); EXPECT_TRUE(Contains(delta->deleted_response_headers, - ResponseHeader("Key2", "Value2"))); + ResponseHeader("Key2", "Value2, Bar"))); EXPECT_TRUE(Contains(delta->deleted_response_headers, ResponseHeader("Key3", "Value3"))); } @@ -1289,7 +1289,7 @@ TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { char base_headers_string[] = "HTTP/1.0 200 OK\r\n" "Key1: Value1\r\n" - "Key2: Value2\r\n" + "Key2: Value2, Foo\r\n" "\r\n"; scoped_refptr<net::HttpResponseHeaders> base_headers( new net::HttpResponseHeaders( @@ -1311,7 +1311,7 @@ TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { linked_ptr<EventResponseDelta> d1( new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value1")); - d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2")); + d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2, Foo")); d1->added_response_headers.push_back(ResponseHeader("Key2", "Value3")); deltas.push_back(d1); deltas.sort(&InDecreasingExtensionInstallationTimeOrder); @@ -1340,7 +1340,7 @@ TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); // Note that we use a different capitalization of KeY2. This should not // matter. - d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2")); + d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2, Foo")); d2->added_response_headers.push_back(ResponseHeader("Key2", "Value4")); deltas.push_back(d2); deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |