OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <queue> | 5 #include <queue> |
6 #include <map> | 6 #include <map> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
11 #include "base/json/json_string_value_serializer.h" | 11 #include "base/json/json_string_value_serializer.h" |
12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
13 #include "base/message_loop.h" | 13 #include "base/message_loop.h" |
14 #include "base/path_service.h" | 14 #include "base/path_service.h" |
15 #include "base/stl_util.h" | 15 #include "base/stl_util.h" |
16 #include "base/utf_string_conversions.h" | 16 #include "base/utf_string_conversions.h" |
17 #include "chrome/browser/content_settings/cookie_settings.h" | 17 #include "chrome/browser/content_settings/cookie_settings.h" |
18 #include "chrome/browser/extensions/api/web_request/web_request_api.h" | 18 #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
19 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" | 19 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" |
20 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" | 20 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" |
21 #include "chrome/browser/extensions/extension_event_router_forwarder.h" | 21 #include "chrome/browser/extensions/event_router_forwarder.h" |
22 #include "chrome/browser/net/chrome_network_delegate.h" | 22 #include "chrome/browser/net/chrome_network_delegate.h" |
23 #include "chrome/browser/prefs/pref_member.h" | 23 #include "chrome/browser/prefs/pref_member.h" |
24 #include "chrome/common/extensions/extension_messages.h" | 24 #include "chrome/common/extensions/extension_messages.h" |
25 #include "chrome/common/pref_names.h" | 25 #include "chrome/common/pref_names.h" |
26 #include "chrome/test/base/testing_browser_process.h" | 26 #include "chrome/test/base/testing_browser_process.h" |
27 #include "chrome/test/base/testing_pref_service.h" | 27 #include "chrome/test/base/testing_pref_service.h" |
28 #include "chrome/test/base/testing_profile.h" | 28 #include "chrome/test/base/testing_profile.h" |
29 #include "content/public/test/test_browser_thread.h" | 29 #include "content/public/test/test_browser_thread.h" |
30 #include "net/base/auth.h" | 30 #include "net/base/auth.h" |
31 #include "net/base/capturing_net_log.h" | 31 #include "net/base/capturing_net_log.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 }; | 115 }; |
116 | 116 |
117 class ExtensionWebRequestTest : public testing::Test { | 117 class ExtensionWebRequestTest : public testing::Test { |
118 public: | 118 public: |
119 ExtensionWebRequestTest() | 119 ExtensionWebRequestTest() |
120 : ui_thread_(content::BrowserThread::UI, &message_loop_), | 120 : ui_thread_(content::BrowserThread::UI, &message_loop_), |
121 io_thread_(content::BrowserThread::IO, &message_loop_) {} | 121 io_thread_(content::BrowserThread::IO, &message_loop_) {} |
122 | 122 |
123 protected: | 123 protected: |
124 virtual void SetUp() OVERRIDE { | 124 virtual void SetUp() OVERRIDE { |
125 event_router_ = new ExtensionEventRouterForwarder(); | 125 event_router_ = new extensions::EventRouterForwarder(); |
126 enable_referrers_.Init( | 126 enable_referrers_.Init( |
127 prefs::kEnableReferrers, profile_.GetTestingPrefService(), NULL); | 127 prefs::kEnableReferrers, profile_.GetTestingPrefService(), NULL); |
128 network_delegate_.reset(new ChromeNetworkDelegate( | 128 network_delegate_.reset(new ChromeNetworkDelegate( |
129 event_router_.get(), NULL, NULL, &profile_, | 129 event_router_.get(), NULL, NULL, &profile_, |
130 CookieSettings::Factory::GetForProfile(&profile_), &enable_referrers_)); | 130 CookieSettings::Factory::GetForProfile(&profile_), &enable_referrers_)); |
131 context_.reset(new TestURLRequestContext(true)); | 131 context_.reset(new TestURLRequestContext(true)); |
132 context_->set_network_delegate(network_delegate_.get()); | 132 context_->set_network_delegate(network_delegate_.get()); |
133 context_->Init(); | 133 context_->Init(); |
134 } | 134 } |
135 | 135 |
136 MessageLoopForIO message_loop_; | 136 MessageLoopForIO message_loop_; |
137 content::TestBrowserThread ui_thread_; | 137 content::TestBrowserThread ui_thread_; |
138 content::TestBrowserThread io_thread_; | 138 content::TestBrowserThread io_thread_; |
139 TestingProfile profile_; | 139 TestingProfile profile_; |
140 TestDelegate delegate_; | 140 TestDelegate delegate_; |
141 BooleanPrefMember enable_referrers_; | 141 BooleanPrefMember enable_referrers_; |
142 TestIPCSender ipc_sender_; | 142 TestIPCSender ipc_sender_; |
143 scoped_refptr<ExtensionEventRouterForwarder> event_router_; | 143 scoped_refptr<extensions::EventRouterForwarder> event_router_; |
144 scoped_refptr<ExtensionInfoMap> extension_info_map_; | 144 scoped_refptr<ExtensionInfoMap> extension_info_map_; |
145 scoped_ptr<ChromeNetworkDelegate> network_delegate_; | 145 scoped_ptr<ChromeNetworkDelegate> network_delegate_; |
146 scoped_ptr<TestURLRequestContext> context_; | 146 scoped_ptr<TestURLRequestContext> context_; |
147 }; | 147 }; |
148 | 148 |
149 // Tests that we handle disagreements among extensions about responses to | 149 // Tests that we handle disagreements among extensions about responses to |
150 // blocking events (redirection) by choosing the response from the | 150 // blocking events (redirection) by choosing the response from the |
151 // most-recently-installed extension. | 151 // most-recently-installed extension. |
152 TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) { | 152 TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) { |
153 std::string extension1_id("1"); | 153 std::string extension1_id("1"); |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 | 429 |
430 class ExtensionWebRequestHeaderModificationTest : | 430 class ExtensionWebRequestHeaderModificationTest : |
431 public testing::TestWithParam<HeaderModificationTest> { | 431 public testing::TestWithParam<HeaderModificationTest> { |
432 public: | 432 public: |
433 ExtensionWebRequestHeaderModificationTest() | 433 ExtensionWebRequestHeaderModificationTest() |
434 : ui_thread_(content::BrowserThread::UI, &message_loop_), | 434 : ui_thread_(content::BrowserThread::UI, &message_loop_), |
435 io_thread_(content::BrowserThread::IO, &message_loop_) {} | 435 io_thread_(content::BrowserThread::IO, &message_loop_) {} |
436 | 436 |
437 protected: | 437 protected: |
438 virtual void SetUp() { | 438 virtual void SetUp() { |
439 event_router_ = new ExtensionEventRouterForwarder(); | 439 event_router_ = new extensions::EventRouterForwarder(); |
440 enable_referrers_.Init( | 440 enable_referrers_.Init( |
441 prefs::kEnableReferrers, profile_.GetTestingPrefService(), NULL); | 441 prefs::kEnableReferrers, profile_.GetTestingPrefService(), NULL); |
442 network_delegate_.reset(new ChromeNetworkDelegate( | 442 network_delegate_.reset(new ChromeNetworkDelegate( |
443 event_router_.get(), NULL, NULL, &profile_, | 443 event_router_.get(), NULL, NULL, &profile_, |
444 CookieSettings::Factory::GetForProfile(&profile_), &enable_referrers_)); | 444 CookieSettings::Factory::GetForProfile(&profile_), &enable_referrers_)); |
445 context_.reset(new TestURLRequestContext(true)); | 445 context_.reset(new TestURLRequestContext(true)); |
446 host_resolver_.reset(new net::MockHostResolver()); | 446 host_resolver_.reset(new net::MockHostResolver()); |
447 host_resolver_->rules()->AddSimulatedFailure("doesnotexist"); | 447 host_resolver_->rules()->AddSimulatedFailure("doesnotexist"); |
448 context_->set_host_resolver(host_resolver_.get()); | 448 context_->set_host_resolver(host_resolver_.get()); |
449 context_->set_network_delegate(network_delegate_.get()); | 449 context_->set_network_delegate(network_delegate_.get()); |
450 context_->Init(); | 450 context_->Init(); |
451 } | 451 } |
452 | 452 |
453 MessageLoopForIO message_loop_; | 453 MessageLoopForIO message_loop_; |
454 content::TestBrowserThread ui_thread_; | 454 content::TestBrowserThread ui_thread_; |
455 content::TestBrowserThread io_thread_; | 455 content::TestBrowserThread io_thread_; |
456 TestingProfile profile_; | 456 TestingProfile profile_; |
457 TestDelegate delegate_; | 457 TestDelegate delegate_; |
458 BooleanPrefMember enable_referrers_; | 458 BooleanPrefMember enable_referrers_; |
459 TestIPCSender ipc_sender_; | 459 TestIPCSender ipc_sender_; |
460 scoped_refptr<ExtensionEventRouterForwarder> event_router_; | 460 scoped_refptr<extensions::EventRouterForwarder> event_router_; |
461 scoped_refptr<ExtensionInfoMap> extension_info_map_; | 461 scoped_refptr<ExtensionInfoMap> extension_info_map_; |
462 scoped_ptr<ChromeNetworkDelegate> network_delegate_; | 462 scoped_ptr<ChromeNetworkDelegate> network_delegate_; |
463 scoped_ptr<net::MockHostResolver> host_resolver_; | 463 scoped_ptr<net::MockHostResolver> host_resolver_; |
464 scoped_ptr<TestURLRequestContext> context_; | 464 scoped_ptr<TestURLRequestContext> context_; |
465 }; | 465 }; |
466 | 466 |
467 TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) { | 467 TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) { |
468 std::string extension1_id("1"); | 468 std::string extension1_id("1"); |
469 std::string extension2_id("2"); | 469 std::string extension2_id("2"); |
470 std::string extension3_id("3"); | 470 std::string extension3_id("3"); |
(...skipping 1054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1525 // Check that requests are rejected if their first party url is sensitive. | 1525 // Check that requests are rejected if their first party url is sensitive. |
1526 ASSERT_GE(arraysize(non_sensitive_urls), 1u); | 1526 ASSERT_GE(arraysize(non_sensitive_urls), 1u); |
1527 GURL non_sensitive_url(non_sensitive_urls[0]); | 1527 GURL non_sensitive_url(non_sensitive_urls[0]); |
1528 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) { | 1528 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) { |
1529 TestURLRequest request(non_sensitive_url, NULL, &context); | 1529 TestURLRequest request(non_sensitive_url, NULL, &context); |
1530 GURL sensitive_url(sensitive_urls[i]); | 1530 GURL sensitive_url(sensitive_urls[i]); |
1531 request.set_first_party_for_cookies(sensitive_url); | 1531 request.set_first_party_for_cookies(sensitive_url); |
1532 EXPECT_TRUE(helpers::HideRequest(&request)) << sensitive_urls[i]; | 1532 EXPECT_TRUE(helpers::HideRequest(&request)) << sensitive_urls[i]; |
1533 } | 1533 } |
1534 } | 1534 } |
OLD | NEW |