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

Side by Side Diff: chrome/browser/policy/policy_network_browsertest.cc

Issue 2546533003: Respect QuicAllowed policy for new streams (Closed)
Patch Set: Revert accidental format Created 3 years, 11 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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/policy/profile_policy_connector_factory.h"
13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/profiles/profile_manager.h"
15 #include "chrome/browser/profiles/profiles_state.h"
16 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
17 #include "chrome/browser/ui/browser.h"
12 #include "chrome/common/chrome_switches.h" 18 #include "chrome/common/chrome_switches.h"
13 #include "chrome/test/base/in_process_browser_test.h" 19 #include "chrome/test/base/in_process_browser_test.h"
14 #include "components/policy/core/browser/browser_policy_connector.h" 20 #include "components/policy/core/browser/browser_policy_connector.h"
15 #include "components/policy/core/common/mock_configuration_policy_provider.h" 21 #include "components/policy/core/common/mock_configuration_policy_provider.h"
16 #include "components/policy/core/common/policy_map.h" 22 #include "components/policy/core/common/policy_map.h"
17 #include "components/policy/core/common/policy_types.h" 23 #include "components/policy/core/common/policy_types.h"
18 #include "components/policy/policy_constants.h" 24 #include "components/policy/policy_constants.h"
19 #include "content/public/browser/browser_thread.h" 25 #include "content/public/browser/browser_thread.h"
20 #include "content/public/test/browser_test.h" 26 #include "content/public/test/browser_test.h"
21 #include "net/http/http_transaction_factory.h" 27 #include "net/http/http_transaction_factory.h"
22 #include "net/url_request/url_request_context.h" 28 #include "net/url_request/url_request_context.h"
23 #include "net/url_request/url_request_context_getter.h" 29 #include "net/url_request/url_request_context_getter.h"
24 30
31 #if defined(OS_CHROMEOS)
32 #include "chromeos/chromeos_switches.h"
33 #endif
34
25 namespace { 35 namespace {
26 36
27 void VerifyQuicEnabledStatus(net::URLRequestContextGetter* getter, 37 // Checks if QUIC is enabled for new streams in the passed
28 bool quic_enabled_expected, 38 // |request_context_getter|. Will set the bool pointed to by |quic_enabled|.
29 const base::Closure& done_callback) { 39 void IsQuicEnabledOnIOThread(
30 net::URLRequestContext* context = getter->GetURLRequestContext(); 40 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
31 bool quic_enabled = context->http_transaction_factory()->GetSession()-> 41 bool* quic_enabled) {
32 params().enable_quic; 42 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
33 EXPECT_EQ(quic_enabled_expected, quic_enabled);
34 43
35 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, 44 *quic_enabled = request_context_getter->GetURLRequestContext()
36 done_callback); 45 ->http_transaction_factory()
46 ->GetSession()
47 ->IsQuicEnabled();
37 } 48 }
38 49
39 void VerifyQuicEnabledStatusInIOThread(bool quic_enabled_expected) { 50 // Can be called on the UI thread, returns if QUIC is enabled for new streams in
51 // the passed |request_context_getter|.
52 bool IsQuicEnabled(
53 scoped_refptr<net::URLRequestContextGetter> request_context_getter) {
54 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
55
40 base::RunLoop run_loop; 56 base::RunLoop run_loop;
41 content::BrowserThread::PostTask( 57 bool is_quic_enabled = false;
58 content::BrowserThread::PostTaskAndReply(
42 content::BrowserThread::IO, FROM_HERE, 59 content::BrowserThread::IO, FROM_HERE,
43 base::Bind(VerifyQuicEnabledStatus, 60 base::Bind(IsQuicEnabledOnIOThread, request_context_getter,
44 base::RetainedRef(g_browser_process->system_request_context()), 61 &is_quic_enabled),
45 quic_enabled_expected, run_loop.QuitClosure())); 62 run_loop.QuitClosure());
46 run_loop.Run(); 63 run_loop.Run();
64 return is_quic_enabled;
65 }
66
67 // Short-hand access to global SafeBrowsingService's URLRequestContextGetter for
68 // better readability.
69 scoped_refptr<net::URLRequestContextGetter>
70 safe_browsing_service_request_context() {
71 return g_browser_process->safe_browsing_service()->url_request_context();
72 }
73
74 // Short-hand access to global system request context getter for better
75 // readability.
76 scoped_refptr<net::URLRequestContextGetter> system_request_context() {
77 return g_browser_process->system_request_context();
78 }
79
80 // Called when an additional profile has been created.
81 // The created profile is stored in *|out_created_profile|.
82 void OnProfileInitialized(Profile** out_created_profile,
83 const base::Closure& closure,
84 Profile* profile,
85 Profile::CreateStatus status) {
86 if (status == Profile::CREATE_STATUS_INITIALIZED) {
87 *out_created_profile = profile;
88 closure.Run();
89 }
47 } 90 }
48 91
49 } // namespace 92 } // namespace
50 93
51 namespace policy { 94 namespace policy {
52 95
53 // The tests are based on the assumption that command line flag kEnableQuic 96 // The tests are based on the assumption that command line flag kEnableQuic
54 // guarantees that QUIC protocol is enabled which is the case at the moment 97 // guarantees that QUIC protocol is enabled which is the case at the moment
55 // when these are being written. 98 // when these are being written.
56 class QuicAllowedPolicyTestBase: public InProcessBrowserTest { 99 class QuicAllowedPolicyTestBase: public InProcessBrowserTest {
57 public: 100 public:
58 QuicAllowedPolicyTestBase() : InProcessBrowserTest(){} 101 QuicAllowedPolicyTestBase() : InProcessBrowserTest() {}
59 102
60 protected: 103 protected:
61 void SetUpInProcessBrowserTestFixture() override { 104 void SetUpInProcessBrowserTestFixture() override {
62 base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableQuic); 105 base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableQuic);
63 EXPECT_CALL(provider_, IsInitializationComplete(testing::_)) 106 EXPECT_CALL(provider_, IsInitializationComplete(testing::_))
64 .WillRepeatedly(testing::Return(true)); 107 .WillRepeatedly(testing::Return(true));
65 108
66 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); 109 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
67 PolicyMap values; 110 PolicyMap values;
68 GetQuicAllowedPolicy(&values); 111 GetQuicAllowedPolicy(&values);
69 provider_.UpdateChromePolicy(values); 112 provider_.UpdateChromePolicy(values);
70 } 113 }
71 114
72 virtual void GetQuicAllowedPolicy(PolicyMap* values) = 0; 115 virtual void GetQuicAllowedPolicy(PolicyMap* values) = 0;
73 116
74 private: 117 private:
75 MockConfigurationPolicyProvider provider_; 118 MockConfigurationPolicyProvider provider_;
76 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyTestBase); 119 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyTestBase);
77 }; 120 };
78 121
79 // Policy QuicAllowed set to false. 122 // Policy QuicAllowed set to false.
80 class QuicAllowedPolicyIsFalse: public QuicAllowedPolicyTestBase { 123 class QuicAllowedPolicyIsFalse: public QuicAllowedPolicyTestBase {
81 public: 124 public:
82 QuicAllowedPolicyIsFalse() : QuicAllowedPolicyTestBase(){} 125 QuicAllowedPolicyIsFalse() : QuicAllowedPolicyTestBase() {}
83 126
84 protected: 127 protected:
85 void GetQuicAllowedPolicy(PolicyMap* values) override { 128 void GetQuicAllowedPolicy(PolicyMap* values) override {
86 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 129 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
87 POLICY_SOURCE_CLOUD, 130 POLICY_SOURCE_CLOUD,
88 base::MakeUnique<base::FundamentalValue>(false), nullptr); 131 base::MakeUnique<base::FundamentalValue>(false), nullptr);
89 } 132 }
90 133
91 private: 134 private:
92 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsFalse); 135 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsFalse);
93 }; 136 };
94 137
95 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsFalse, QuicDisallowed) { 138 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsFalse, QuicDisallowed) {
96 VerifyQuicEnabledStatusInIOThread(false); 139 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
140 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
141 EXPECT_FALSE(IsQuicEnabled(browser()->profile()->GetRequestContext()));
97 } 142 }
98 143
99 // Policy QuicAllowed set to true. 144 // Policy QuicAllowed set to true.
100 class QuicAllowedPolicyIsTrue: public QuicAllowedPolicyTestBase { 145 class QuicAllowedPolicyIsTrue: public QuicAllowedPolicyTestBase {
101 public: 146 public:
102 QuicAllowedPolicyIsTrue() : QuicAllowedPolicyTestBase(){} 147 QuicAllowedPolicyIsTrue() : QuicAllowedPolicyTestBase() {}
103 148
104 protected: 149 protected:
105 void GetQuicAllowedPolicy(PolicyMap* values) override { 150 void GetQuicAllowedPolicy(PolicyMap* values) override {
106 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 151 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
107 POLICY_SOURCE_CLOUD, 152 POLICY_SOURCE_CLOUD,
108 base::MakeUnique<base::FundamentalValue>(true), nullptr); 153 base::MakeUnique<base::FundamentalValue>(true), nullptr);
109 } 154 }
110 155
111 private: 156 private:
112 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsTrue); 157 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsTrue);
113 }; 158 };
114 159
115 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsTrue, QuicAllowed) { 160 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsTrue, QuicAllowed) {
116 VerifyQuicEnabledStatusInIOThread(true); 161 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
162 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
163 EXPECT_TRUE(IsQuicEnabled(browser()->profile()->GetRequestContext()));
117 } 164 }
118 165
119 // Policy QuicAllowed is not set. 166 // Policy QuicAllowed is not set.
120 class QuicAllowedPolicyIsNotSet: public QuicAllowedPolicyTestBase { 167 class QuicAllowedPolicyIsNotSet: public QuicAllowedPolicyTestBase {
121 public: 168 public:
122 QuicAllowedPolicyIsNotSet() : QuicAllowedPolicyTestBase(){} 169 QuicAllowedPolicyIsNotSet() : QuicAllowedPolicyTestBase() {}
123 170
124 protected: 171 protected:
125 void GetQuicAllowedPolicy(PolicyMap* values) override { 172 void GetQuicAllowedPolicy(PolicyMap* values) override {
126 } 173 }
127 174
128 private: 175 private:
129 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsNotSet); 176 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsNotSet);
130 }; 177 };
131 178
132 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsNotSet, NoQuicRegulations) { 179 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsNotSet, NoQuicRegulations) {
133 VerifyQuicEnabledStatusInIOThread(true); 180 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
181 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
182 EXPECT_TRUE(IsQuicEnabled(browser()->profile()->GetRequestContext()));
183 }
184
185 // Policy QuicAllowed is set dynamically after profile creation.
186 // Supports creation of an additional profile.
187 class QuicAllowedPolicyDynamicTest : public InProcessBrowserTest {
188 public:
189 QuicAllowedPolicyDynamicTest()
190 : InProcessBrowserTest(), profile_1_(nullptr), profile_2_(nullptr) {}
191
192 protected:
193 void SetUpCommandLine(base::CommandLine* command_line) override {
194 #if defined(OS_CHROMEOS)
195 command_line->AppendSwitch(
196 chromeos::switches::kIgnoreUserProfileMappingForTests);
197 #endif
198 }
199
200 void SetUpInProcessBrowserTestFixture() override {
201 // Set the overriden policy provider for the first Profile (profile_1_).
202 EXPECT_CALL(policy_for_profile_1_, IsInitializationComplete(testing::_))
203 .WillRepeatedly(testing::Return(true));
204 policy::ProfilePolicyConnectorFactory::GetInstance()
205 ->PushProviderForTesting(&policy_for_profile_1_);
206 }
207
208 void SetUpOnMainThread() override { profile_1_ = browser()->profile(); }
209
210 // Creates a second Profile for testing. The Profile can then be accessed by
211 // profile_2() and its policy by policy_for_profile_2().
212 void CreateSecondProfile() {
213 EXPECT_FALSE(profile_2_);
214
215 // Prepare policy provider for second profile.
216 EXPECT_CALL(policy_for_profile_2_, IsInitializationComplete(testing::_))
217 .WillRepeatedly(testing::Return(true));
218 policy::ProfilePolicyConnectorFactory::GetInstance()
219 ->PushProviderForTesting(&policy_for_profile_2_);
220
221 ProfileManager* profile_manager = g_browser_process->profile_manager();
222
223 // Create an additional profile.
224 base::FilePath path_profile =
225 profile_manager->GenerateNextProfileDirectoryPath();
226 base::RunLoop run_loop;
227 profile_manager->CreateProfileAsync(
228 path_profile,
229 base::Bind(&OnProfileInitialized, &profile_2_, run_loop.QuitClosure()),
230 base::string16(), std::string(), std::string());
231
232 // Run the message loop to allow profile creation to take place; the loop is
233 // terminated by OnProfileInitialized calling the loop's QuitClosure when
234 // the profile is created.
235 run_loop.Run();
236
237 // Make sure second profile creation does what we think it does.
238 EXPECT_TRUE(profile_1() != profile_2());
239 }
240
241 // Sets the QuicAllowed policy for a Profile.
242 // |provider| is supposed to be the MockConfigurationPolicyProvider for the
243 // Profile, as returned by policy_for_profile_1() / policy_for_profile_2().
244 void SetQuicAllowedPolicy(MockConfigurationPolicyProvider* provider,
245 bool value) {
246 PolicyMap policy_map;
247 policy_map.Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
248 POLICY_SOURCE_CLOUD,
249 base::MakeUnique<base::FundamentalValue>(value), nullptr);
250 provider->UpdateChromePolicy(policy_map);
251 base::RunLoop().RunUntilIdle();
252 }
253
254 // Removes all policies for a Profile.
255 // |provider| is supposed to be the MockConfigurationPolicyProvider for the
256 // Profile, as returned by policy_for_profile_1() / policy_for_profile_2().
257 void RemoveAllPolicies(MockConfigurationPolicyProvider* provider) {
258 PolicyMap policy_map;
259 provider->UpdateChromePolicy(policy_map);
260 base::RunLoop().RunUntilIdle();
261 }
262
263 // Returns the first Profile.
264 Profile* profile_1() { return profile_1_; }
265
266 // Returns the second Profile. May only be called after CreateSecondProfile
267 // has been called.
268 Profile* profile_2() {
269 // Only valid after CreateSecondProfile() has been called.
270 EXPECT_TRUE(profile_2_);
271 return profile_2_;
272 }
273
274 // Returns the MockConfigurationPolicyProvider for profile_1.
275 MockConfigurationPolicyProvider* policy_for_profile_1() {
276 return &policy_for_profile_1_;
277 }
278
279 // Returns the MockConfigurationPolicyProvider for profile_2.
280 MockConfigurationPolicyProvider* policy_for_profile_2() {
281 return &policy_for_profile_2_;
282 }
283
284 private:
285 // The first profile.
286 Profile* profile_1_;
287 // The second profile. Only valid after CreateSecondProfile() has been called.
288 Profile* profile_2_;
289
290 // Mock Policy for profile_1_.
291 MockConfigurationPolicyProvider policy_for_profile_1_;
292 // Mock Policy for profile_2_.
293 MockConfigurationPolicyProvider policy_for_profile_2_;
294
295 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyDynamicTest);
296 };
297
298 // QUIC is disallowed by policy after the profile has been initialized.
299 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyDynamicTest, QuicAllowedFalseThenTrue) {
300 // After browser start, QuicAllowed=false comes in dynamically
301 SetQuicAllowedPolicy(policy_for_profile_1(), false);
302 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
303 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
304 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
305
306 // Set the QuicAllowed policy to true again
307 SetQuicAllowedPolicy(policy_for_profile_1(), true);
308 // Effectively, QUIC is still disabled because QUIC re-enabling is not
309 // supported.
310 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
311 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
312 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
313
314 // Completely remove the QuicAllowed policy
315 RemoveAllPolicies(policy_for_profile_1());
316 // Effectively, QUIC is still disabled because QUIC re-enabling is not
317 // supported.
318 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
319 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
320 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
321
322 // QuicAllowed=false is set again
323 SetQuicAllowedPolicy(policy_for_profile_1(), false);
324 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
325 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
326 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
327 }
328
329 // QUIC is allowed, then disallowed by policy after the profile has been
330 // initialized.
331 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyDynamicTest, QuicAllowedTrueThenFalse) {
332 // After browser start, QuicAllowed=true comes in dynamically
333 SetQuicAllowedPolicy(policy_for_profile_1(), true);
334 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
335 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
336 EXPECT_TRUE(IsQuicEnabled(profile_1()->GetRequestContext()));
337
338 // Completely remove the QuicAllowed policy
339 RemoveAllPolicies(policy_for_profile_1());
340 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
341 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
342 EXPECT_TRUE(IsQuicEnabled(profile_1()->GetRequestContext()));
343
344 // Set the QuicAllowed policy to true again
345 SetQuicAllowedPolicy(policy_for_profile_1(), true);
346 // Effectively, QUIC is still disabled because QUIC re-enabling is not
347 // supported.
348 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
349 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
350 EXPECT_TRUE(IsQuicEnabled(profile_1()->GetRequestContext()));
351
352 // Now set QuicAllowed=false
353 SetQuicAllowedPolicy(policy_for_profile_1(), false);
354 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
355 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
356 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
357 }
358
359 // A second Profile is created when QuicAllowed=false policy is in effect for
360 // the first profile.
361 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyDynamicTest,
362 SecondProfileCreatedWhenQuicAllowedFalse) {
363 // If multiprofile mode is not enabled, you can't switch between profiles.
364 if (!profiles::IsMultipleProfilesEnabled())
365 return;
366
367 SetQuicAllowedPolicy(policy_for_profile_1(), false);
368 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
369 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
370 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
371
372 CreateSecondProfile();
373
374 // QUIC is disabled in both profiles
375 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
376 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
377 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
378 EXPECT_FALSE(IsQuicEnabled(profile_2()->GetRequestContext()));
379 }
380
381 // A second Profile is created when no QuicAllowed policy is in effect for the
382 // first profile.
383 // Then QuicAllowed=false policy is dynamically set for both profiles.
384 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyDynamicTest,
385 QuicAllowedFalseAfterTwoProfilesCreated) {
386 // If multiprofile mode is not enabled, you can't switch between profiles.
387 if (!profiles::IsMultipleProfilesEnabled())
388 return;
389
390 CreateSecondProfile();
391
392 // QUIC is enabled in both profiles
393 EXPECT_TRUE(IsQuicEnabled(system_request_context()));
394 EXPECT_TRUE(IsQuicEnabled(safe_browsing_service_request_context()));
395 EXPECT_TRUE(IsQuicEnabled(profile_1()->GetRequestContext()));
396 EXPECT_TRUE(IsQuicEnabled(profile_2()->GetRequestContext()));
397
398 // Disable QUIC in first profile
399 SetQuicAllowedPolicy(policy_for_profile_1(), false);
400 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
401 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
402 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
403 EXPECT_TRUE(IsQuicEnabled(profile_2()->GetRequestContext()));
404
405 // Disable QUIC in second profile
406 SetQuicAllowedPolicy(policy_for_profile_2(), false);
407 EXPECT_FALSE(IsQuicEnabled(system_request_context()));
408 EXPECT_FALSE(IsQuicEnabled(safe_browsing_service_request_context()));
409 EXPECT_FALSE(IsQuicEnabled(profile_1()->GetRequestContext()));
410 EXPECT_FALSE(IsQuicEnabled(profile_2()->GetRequestContext()));
134 } 411 }
135 412
136 } // namespace policy 413 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/configuration_policy_handler_list_factory.cc ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698