Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(824)

Side by Side Diff: chrome/browser/net/pref_proxy_config_tracker_impl_unittest.cc

Issue 1296663003: Componentize proxy code from chrome/browser/net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updating for win p/f Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/net/pref_proxy_config_tracker_impl.h" 5 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/prefs/pref_registry_simple.h" 12 #include "base/prefs/pref_registry_simple.h"
13 #include "base/prefs/testing_pref_service.h" 13 #include "base/prefs/testing_pref_service.h"
14 #include "base/test/histogram_tester.h" 14 #include "base/test/histogram_tester.h"
15 #include "base/thread_task_runner_handle.h"
15 #include "chrome/browser/prefs/pref_service_mock_factory.h" 16 #include "chrome/browser/prefs/pref_service_mock_factory.h"
16 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
17 #include "chrome/common/pref_names.h"
18 #include "components/proxy_config/proxy_config_dictionary.h" 18 #include "components/proxy_config/proxy_config_dictionary.h"
19 #include "content/public/test/test_browser_thread.h" 19 #include "components/proxy_config/proxy_config_pref_names.h"
20 #include "net/proxy/proxy_config_service_common_unittest.h" 20 #include "net/proxy/proxy_config_service_common_unittest.h"
21 #include "net/proxy/proxy_info.h" 21 #include "net/proxy/proxy_info.h"
22 #include "net/proxy/proxy_list.h" 22 #include "net/proxy/proxy_list.h"
23 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
25 25
26 using content::BrowserThread;
27 using testing::_; 26 using testing::_;
28 using testing::Mock; 27 using testing::Mock;
29 28
30 namespace { 29 namespace {
31 30
32 const char kFixedPacUrl[] = "http://chromium.org/fixed_pac_url"; 31 const char kFixedPacUrl[] = "http://chromium.org/fixed_pac_url";
33 32
34 // Testing proxy config service that allows us to fire notifications at will. 33 // Testing proxy config service that allows us to fire notifications at will.
35 class TestProxyConfigService : public net::ProxyConfigService { 34 class TestProxyConfigService : public net::ProxyConfigService {
36 public: 35 public:
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 class MockObserver : public net::ProxyConfigService::Observer { 70 class MockObserver : public net::ProxyConfigService::Observer {
72 public: 71 public:
73 MOCK_METHOD2(OnProxyConfigChanged, 72 MOCK_METHOD2(OnProxyConfigChanged,
74 void(const net::ProxyConfig&, 73 void(const net::ProxyConfig&,
75 net::ProxyConfigService::ConfigAvailability)); 74 net::ProxyConfigService::ConfigAvailability));
76 }; 75 };
77 76
78 template<typename TESTBASE> 77 template<typename TESTBASE>
79 class PrefProxyConfigTrackerImplTestBase : public TESTBASE { 78 class PrefProxyConfigTrackerImplTestBase : public TESTBASE {
80 protected: 79 protected:
81 PrefProxyConfigTrackerImplTestBase() 80 PrefProxyConfigTrackerImplTestBase() {}
82 : ui_thread_(BrowserThread::UI, &loop_),
83 io_thread_(BrowserThread::IO, &loop_) {}
84 81
85 virtual void Init(PrefService* pref_service, PrefRegistrySimple* registry) { 82 virtual void Init(PrefService* pref_service, PrefRegistrySimple* registry) {
86 ASSERT_TRUE(pref_service); 83 ASSERT_TRUE(pref_service);
87 PrefProxyConfigTrackerImpl::RegisterPrefs(registry); 84 PrefProxyConfigTrackerImpl::RegisterPrefs(registry);
88 fixed_config_.set_pac_url(GURL(kFixedPacUrl)); 85 fixed_config_.set_pac_url(GURL(kFixedPacUrl));
89 delegate_service_ = 86 delegate_service_ =
90 new TestProxyConfigService(fixed_config_, 87 new TestProxyConfigService(fixed_config_,
91 net::ProxyConfigService::CONFIG_VALID); 88 net::ProxyConfigService::CONFIG_VALID);
92 proxy_config_tracker_.reset(new PrefProxyConfigTrackerImpl(pref_service)); 89 proxy_config_tracker_.reset(new PrefProxyConfigTrackerImpl(
90 pref_service, base::ThreadTaskRunnerHandle::Get()));
93 proxy_config_service_ = 91 proxy_config_service_ =
94 proxy_config_tracker_->CreateTrackingProxyConfigService( 92 proxy_config_tracker_->CreateTrackingProxyConfigService(
95 scoped_ptr<net::ProxyConfigService>(delegate_service_)); 93 scoped_ptr<net::ProxyConfigService>(delegate_service_));
96 // SetChromeProxyConfigService triggers update of initial prefs proxy 94 // SetProxyConfigServiceImpl triggers update of initial prefs proxy
97 // config by tracker to chrome proxy config service, so flush all pending 95 // config by tracker to chrome proxy config service, so flush all pending
98 // tasks so that tests start fresh. 96 // tasks so that tests start fresh.
99 loop_.RunUntilIdle(); 97 loop_.RunUntilIdle();
100 } 98 }
101 99
102 virtual void TearDown() { 100 virtual void TearDown() {
103 proxy_config_tracker_->DetachFromPrefService(); 101 proxy_config_tracker_->DetachFromPrefService();
104 loop_.RunUntilIdle(); 102 loop_.RunUntilIdle();
105 proxy_config_tracker_.reset(); 103 proxy_config_tracker_.reset();
106 proxy_config_service_.reset(); 104 proxy_config_service_.reset();
107 } 105 }
108 106
109 base::MessageLoop loop_; 107 base::MessageLoop loop_;
110 TestProxyConfigService* delegate_service_; // weak 108 TestProxyConfigService* delegate_service_; // weak
111 scoped_ptr<net::ProxyConfigService> proxy_config_service_; 109 scoped_ptr<net::ProxyConfigService> proxy_config_service_;
112 net::ProxyConfig fixed_config_; 110 net::ProxyConfig fixed_config_;
113 111
114 private: 112 private:
115 scoped_ptr<PrefProxyConfigTrackerImpl> proxy_config_tracker_; 113 scoped_ptr<PrefProxyConfigTrackerImpl> proxy_config_tracker_;
116 content::TestBrowserThread ui_thread_;
117 content::TestBrowserThread io_thread_;
118 }; 114 };
119 115
120 class PrefProxyConfigTrackerImplTest 116 class PrefProxyConfigTrackerImplTest
121 : public PrefProxyConfigTrackerImplTestBase<testing::Test> { 117 : public PrefProxyConfigTrackerImplTestBase<testing::Test> {
122 protected: 118 protected:
123 void SetUp() override { 119 void SetUp() override {
124 pref_service_.reset(new TestingPrefServiceSimple()); 120 pref_service_.reset(new TestingPrefServiceSimple());
125 Init(pref_service_.get(), pref_service_->registry()); 121 Init(pref_service_.get(), pref_service_->registry());
126 } 122 }
127 123
128 scoped_ptr<TestingPrefServiceSimple> pref_service_; 124 scoped_ptr<TestingPrefServiceSimple> pref_service_;
129 }; 125 };
130 126
131 TEST_F(PrefProxyConfigTrackerImplTest, BaseConfiguration) { 127 TEST_F(PrefProxyConfigTrackerImplTest, BaseConfiguration) {
132 net::ProxyConfig actual_config; 128 net::ProxyConfig actual_config;
133 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, 129 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
134 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 130 proxy_config_service_->GetLatestProxyConfig(&actual_config));
135 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); 131 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url());
136 } 132 }
137 133
138 TEST_F(PrefProxyConfigTrackerImplTest, DynamicPrefOverrides) { 134 TEST_F(PrefProxyConfigTrackerImplTest, DynamicPrefOverrides) {
139 pref_service_->SetManagedPref(prefs::kProxy, 135 pref_service_->SetManagedPref(proxy_config::prefs::kProxy,
140 ProxyConfigDictionary::CreateFixedServers( 136 ProxyConfigDictionary::CreateFixedServers(
141 "http://example.com:3128", std::string())); 137 "http://example.com:3128", std::string()));
142 loop_.RunUntilIdle(); 138 loop_.RunUntilIdle();
143 139
144 net::ProxyConfig actual_config; 140 net::ProxyConfig actual_config;
145 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, 141 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
146 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 142 proxy_config_service_->GetLatestProxyConfig(&actual_config));
147 EXPECT_FALSE(actual_config.auto_detect()); 143 EXPECT_FALSE(actual_config.auto_detect());
148 EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY, 144 EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
149 actual_config.proxy_rules().type); 145 actual_config.proxy_rules().type);
150 EXPECT_EQ(actual_config.proxy_rules().single_proxies.Get(), 146 EXPECT_EQ(actual_config.proxy_rules().single_proxies.Get(),
151 net::ProxyServer::FromURI("http://example.com:3128", 147 net::ProxyServer::FromURI("http://example.com:3128",
152 net::ProxyServer::SCHEME_HTTP)); 148 net::ProxyServer::SCHEME_HTTP));
153 149
154 pref_service_->SetManagedPref(prefs::kProxy, 150 pref_service_->SetManagedPref(proxy_config::prefs::kProxy,
155 ProxyConfigDictionary::CreateAutoDetect()); 151 ProxyConfigDictionary::CreateAutoDetect());
156 loop_.RunUntilIdle(); 152 loop_.RunUntilIdle();
157 153
158 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, 154 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
159 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 155 proxy_config_service_->GetLatestProxyConfig(&actual_config));
160 EXPECT_TRUE(actual_config.auto_detect()); 156 EXPECT_TRUE(actual_config.auto_detect());
161 } 157 }
162 158
163 // Compares proxy configurations, but allows different identifiers. 159 // Compares proxy configurations, but allows different identifiers.
164 MATCHER_P(ProxyConfigMatches, config, "") { 160 MATCHER_P(ProxyConfigMatches, config, "") {
(...skipping 17 matching lines...) Expand all
182 loop_.RunUntilIdle(); 178 loop_.RunUntilIdle();
183 Mock::VerifyAndClearExpectations(&observer); 179 Mock::VerifyAndClearExpectations(&observer);
184 180
185 // Override configuration, this should trigger a notification. 181 // Override configuration, this should trigger a notification.
186 net::ProxyConfig pref_config; 182 net::ProxyConfig pref_config;
187 pref_config.set_pac_url(GURL(kFixedPacUrl)); 183 pref_config.set_pac_url(GURL(kFixedPacUrl));
188 184
189 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(pref_config), 185 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(pref_config),
190 CONFIG_VALID)).Times(1); 186 CONFIG_VALID)).Times(1);
191 pref_service_->SetManagedPref( 187 pref_service_->SetManagedPref(
192 prefs::kProxy, 188 proxy_config::prefs::kProxy,
193 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); 189 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false));
194 loop_.RunUntilIdle(); 190 loop_.RunUntilIdle();
195 Mock::VerifyAndClearExpectations(&observer); 191 Mock::VerifyAndClearExpectations(&observer);
196 192
197 // Since there are pref overrides, delegate changes should be ignored. 193 // Since there are pref overrides, delegate changes should be ignored.
198 net::ProxyConfig config3; 194 net::ProxyConfig config3;
199 config3.proxy_rules().ParseFromString("http=config3:80"); 195 config3.proxy_rules().ParseFromString("http=config3:80");
200 EXPECT_CALL(observer, OnProxyConfigChanged(_, _)).Times(0); 196 EXPECT_CALL(observer, OnProxyConfigChanged(_, _)).Times(0);
201 fixed_config_.set_auto_detect(true); 197 fixed_config_.set_auto_detect(true);
202 delegate_service_->SetProxyConfig(config3, CONFIG_VALID); 198 delegate_service_->SetProxyConfig(config3, CONFIG_VALID);
203 loop_.RunUntilIdle(); 199 loop_.RunUntilIdle();
204 Mock::VerifyAndClearExpectations(&observer); 200 Mock::VerifyAndClearExpectations(&observer);
205 201
206 // Clear the override should switch back to the fixed configuration. 202 // Clear the override should switch back to the fixed configuration.
207 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config3), 203 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config3),
208 CONFIG_VALID)).Times(1); 204 CONFIG_VALID)).Times(1);
209 pref_service_->RemoveManagedPref(prefs::kProxy); 205 pref_service_->RemoveManagedPref(proxy_config::prefs::kProxy);
210 loop_.RunUntilIdle(); 206 loop_.RunUntilIdle();
211 Mock::VerifyAndClearExpectations(&observer); 207 Mock::VerifyAndClearExpectations(&observer);
212 208
213 // Delegate service notifications should show up again. 209 // Delegate service notifications should show up again.
214 net::ProxyConfig config4; 210 net::ProxyConfig config4;
215 config4.proxy_rules().ParseFromString("socks:config4"); 211 config4.proxy_rules().ParseFromString("socks:config4");
216 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config4), 212 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config4),
217 CONFIG_VALID)).Times(1); 213 CONFIG_VALID)).Times(1);
218 delegate_service_->SetProxyConfig(config4, CONFIG_VALID); 214 delegate_service_->SetProxyConfig(config4, CONFIG_VALID);
219 loop_.RunUntilIdle(); 215 loop_.RunUntilIdle();
(...skipping 13 matching lines...) Expand all
233 229
234 // Prepare test data. 230 // Prepare test data.
235 net::ProxyConfig recommended_config = net::ProxyConfig::CreateAutoDetect(); 231 net::ProxyConfig recommended_config = net::ProxyConfig::CreateAutoDetect();
236 net::ProxyConfig user_config = 232 net::ProxyConfig user_config =
237 net::ProxyConfig::CreateFromCustomPacURL(GURL(kFixedPacUrl)); 233 net::ProxyConfig::CreateFromCustomPacURL(GURL(kFixedPacUrl));
238 234
239 // Set a recommended pref. 235 // Set a recommended pref.
240 EXPECT_CALL(observer, 236 EXPECT_CALL(observer,
241 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), 237 OnProxyConfigChanged(ProxyConfigMatches(recommended_config),
242 CONFIG_VALID)).Times(1); 238 CONFIG_VALID)).Times(1);
243 pref_service_->SetRecommendedPref( 239 pref_service_->SetRecommendedPref(proxy_config::prefs::kProxy,
244 prefs::kProxy, 240 ProxyConfigDictionary::CreateAutoDetect());
245 ProxyConfigDictionary::CreateAutoDetect());
246 loop_.RunUntilIdle(); 241 loop_.RunUntilIdle();
247 Mock::VerifyAndClearExpectations(&observer); 242 Mock::VerifyAndClearExpectations(&observer);
248 EXPECT_EQ(CONFIG_VALID, 243 EXPECT_EQ(CONFIG_VALID,
249 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 244 proxy_config_service_->GetLatestProxyConfig(&actual_config));
250 EXPECT_TRUE(actual_config.Equals(recommended_config)); 245 EXPECT_TRUE(actual_config.Equals(recommended_config));
251 246
252 // Override in user prefs. 247 // Override in user prefs.
253 EXPECT_CALL(observer, 248 EXPECT_CALL(observer,
254 OnProxyConfigChanged(ProxyConfigMatches(user_config), 249 OnProxyConfigChanged(ProxyConfigMatches(user_config),
255 CONFIG_VALID)).Times(1); 250 CONFIG_VALID)).Times(1);
256 pref_service_->SetManagedPref( 251 pref_service_->SetManagedPref(
257 prefs::kProxy, 252 proxy_config::prefs::kProxy,
258 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); 253 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false));
259 loop_.RunUntilIdle(); 254 loop_.RunUntilIdle();
260 Mock::VerifyAndClearExpectations(&observer); 255 Mock::VerifyAndClearExpectations(&observer);
261 EXPECT_EQ(CONFIG_VALID, 256 EXPECT_EQ(CONFIG_VALID,
262 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 257 proxy_config_service_->GetLatestProxyConfig(&actual_config));
263 EXPECT_TRUE(actual_config.Equals(user_config)); 258 EXPECT_TRUE(actual_config.Equals(user_config));
264 259
265 // Go back to recommended pref. 260 // Go back to recommended pref.
266 EXPECT_CALL(observer, 261 EXPECT_CALL(observer,
267 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), 262 OnProxyConfigChanged(ProxyConfigMatches(recommended_config),
268 CONFIG_VALID)).Times(1); 263 CONFIG_VALID)).Times(1);
269 pref_service_->RemoveManagedPref(prefs::kProxy); 264 pref_service_->RemoveManagedPref(proxy_config::prefs::kProxy);
270 loop_.RunUntilIdle(); 265 loop_.RunUntilIdle();
271 Mock::VerifyAndClearExpectations(&observer); 266 Mock::VerifyAndClearExpectations(&observer);
272 EXPECT_EQ(CONFIG_VALID, 267 EXPECT_EQ(CONFIG_VALID,
273 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 268 proxy_config_service_->GetLatestProxyConfig(&actual_config));
274 EXPECT_TRUE(actual_config.Equals(recommended_config)); 269 EXPECT_TRUE(actual_config.Equals(recommended_config));
275 270
276 proxy_config_service_->RemoveObserver(&observer); 271 proxy_config_service_->RemoveObserver(&observer);
277 } 272 }
278 273
279 TEST_F(PrefProxyConfigTrackerImplTest, ExplicitSystemSettings) { 274 TEST_F(PrefProxyConfigTrackerImplTest, ExplicitSystemSettings) {
280 pref_service_->SetRecommendedPref( 275 pref_service_->SetRecommendedPref(proxy_config::prefs::kProxy,
281 prefs::kProxy, 276 ProxyConfigDictionary::CreateAutoDetect());
282 ProxyConfigDictionary::CreateAutoDetect()); 277 pref_service_->SetUserPref(proxy_config::prefs::kProxy,
283 pref_service_->SetUserPref( 278 ProxyConfigDictionary::CreateSystem());
284 prefs::kProxy,
285 ProxyConfigDictionary::CreateSystem());
286 loop_.RunUntilIdle(); 279 loop_.RunUntilIdle();
287 280
288 // Test if we actually use the system setting, which is |kFixedPacUrl|. 281 // Test if we actually use the system setting, which is |kFixedPacUrl|.
289 net::ProxyConfig actual_config; 282 net::ProxyConfig actual_config;
290 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, 283 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
291 proxy_config_service_->GetLatestProxyConfig(&actual_config)); 284 proxy_config_service_->GetLatestProxyConfig(&actual_config));
292 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); 285 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url());
293 } 286 }
294 287
295 void CheckResolvedProxyMatches(net::ProxyConfig* config, 288 void CheckResolvedProxyMatches(net::ProxyConfig* config,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 {"direct://", 349 {"direct://",
357 "direct://", 350 "direct://",
358 "direct://", 351 "direct://",
359 "direct://", 352 "direct://",
360 0}, 353 0},
361 }; 354 };
362 355
363 // Test setting the proxy from a user pref. 356 // Test setting the proxy from a user pref.
364 for (const auto& test : test_cases) { 357 for (const auto& test : test_cases) {
365 base::HistogramTester histogram_tester; 358 base::HistogramTester histogram_tester;
366 pref_service_->SetUserPref(prefs::kProxy, 359 pref_service_->SetUserPref(proxy_config::prefs::kProxy,
367 ProxyConfigDictionary::CreateFixedServers( 360 ProxyConfigDictionary::CreateFixedServers(
368 test.initial_proxy_rules, std::string())); 361 test.initial_proxy_rules, std::string()));
369 loop_.RunUntilIdle(); 362 loop_.RunUntilIdle();
370 363
371 net::ProxyConfig config; 364 net::ProxyConfig config;
372 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, 365 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
373 proxy_config_service_->GetLatestProxyConfig(&config)); 366 proxy_config_service_->GetLatestProxyConfig(&config));
374 histogram_tester.ExpectUniqueSample( 367 histogram_tester.ExpectUniqueSample(
375 "Net.PrefProxyConfig.GooglezipProxyRemovalCount", 368 "Net.PrefProxyConfig.GooglezipProxyRemovalCount",
376 test.expected_num_removed_proxies, 1); 369 test.expected_num_removed_proxies, 1);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 net::ProxyRulesExpectation::Empty(), 563 net::ProxyRulesExpectation::Empty(),
571 }, 564 },
572 }; 565 };
573 566
574 INSTANTIATE_TEST_CASE_P( 567 INSTANTIATE_TEST_CASE_P(
575 PrefProxyConfigTrackerImplCommandLineTestInstance, 568 PrefProxyConfigTrackerImplCommandLineTestInstance,
576 PrefProxyConfigTrackerImplCommandLineTest, 569 PrefProxyConfigTrackerImplCommandLineTest,
577 testing::ValuesIn(kCommandLineTestParams)); 570 testing::ValuesIn(kCommandLineTestParams));
578 571
579 } // namespace 572 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/net/pref_proxy_config_tracker_impl.cc ('k') | chrome/browser/net/proxy_policy_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698