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 "chrome/browser/content_settings/content_settings_pref_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_pref_provider.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 } | 126 } |
127 | 127 |
128 // Test for regression in which the PrefProvider modified the user pref store | 128 // Test for regression in which the PrefProvider modified the user pref store |
129 // of the OTR unintentionally: http://crbug.com/74466. | 129 // of the OTR unintentionally: http://crbug.com/74466. |
130 TEST_F(PrefProviderTest, Incognito) { | 130 TEST_F(PrefProviderTest, Incognito) { |
131 PersistentPrefStore* user_prefs = new TestingPrefStore(); | 131 PersistentPrefStore* user_prefs = new TestingPrefStore(); |
132 OverlayUserPrefStore* otr_user_prefs = | 132 OverlayUserPrefStore* otr_user_prefs = |
133 new OverlayUserPrefStore(user_prefs); | 133 new OverlayUserPrefStore(user_prefs); |
134 | 134 |
135 PrefServiceMockBuilder builder; | 135 PrefServiceMockBuilder builder; |
136 PrefService* regular_prefs = builder.WithUserPrefs(user_prefs).Create(); | 136 builder.WithUserPrefs(user_prefs); |
| 137 PrefServiceSyncable* regular_prefs = builder.CreateSyncable(); |
137 | 138 |
138 Profile::RegisterUserPrefs(regular_prefs); | 139 Profile::RegisterUserPrefs(regular_prefs); |
139 chrome::RegisterUserPrefs(regular_prefs); | 140 chrome::RegisterUserPrefs(regular_prefs); |
140 | 141 |
141 PrefService* otr_prefs = builder.WithUserPrefs(otr_user_prefs).Create(); | 142 builder.WithUserPrefs(otr_user_prefs); |
| 143 PrefServiceSyncable* otr_prefs = builder.CreateSyncable(); |
142 | 144 |
143 Profile::RegisterUserPrefs(otr_prefs); | 145 Profile::RegisterUserPrefs(otr_prefs); |
144 chrome::RegisterUserPrefs(otr_prefs); | 146 chrome::RegisterUserPrefs(otr_prefs); |
145 | 147 |
146 TestingProfile profile; | 148 TestingProfile profile; |
147 TestingProfile* otr_profile = new TestingProfile; | 149 TestingProfile* otr_profile = new TestingProfile; |
148 profile.SetOffTheRecordProfile(otr_profile); | 150 profile.SetOffTheRecordProfile(otr_profile); |
149 profile.SetPrefService(regular_prefs); | 151 profile.SetPrefService(regular_prefs); |
150 otr_profile->set_incognito(true); | 152 otr_profile->set_incognito(true); |
151 otr_profile->SetPrefService(otr_prefs); | 153 otr_profile->SetPrefService(otr_prefs); |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 GetContentSetting( | 326 GetContentSetting( |
325 &pref_content_settings_provider, | 327 &pref_content_settings_provider, |
326 host, host, CONTENT_SETTINGS_TYPE_PLUGINS, | 328 host, host, CONTENT_SETTINGS_TYPE_PLUGINS, |
327 resource2, false)); | 329 resource2, false)); |
328 | 330 |
329 pref_content_settings_provider.ShutdownOnUIThread(); | 331 pref_content_settings_provider.ShutdownOnUIThread(); |
330 } | 332 } |
331 | 333 |
332 TEST_F(PrefProviderTest, AutoSubmitCertificateContentSetting) { | 334 TEST_F(PrefProviderTest, AutoSubmitCertificateContentSetting) { |
333 TestingProfile profile; | 335 TestingProfile profile; |
334 TestingPrefService* prefs = profile.GetTestingPrefService(); | 336 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); |
335 GURL primary_url("https://www.example.com"); | 337 GURL primary_url("https://www.example.com"); |
336 GURL secondary_url("https://www.sample.com"); | 338 GURL secondary_url("https://www.sample.com"); |
337 | 339 |
338 PrefProvider provider(prefs, false); | 340 PrefProvider provider(prefs, false); |
339 | 341 |
340 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 342 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
341 GetContentSetting( | 343 GetContentSetting( |
342 &provider, | 344 &provider, |
343 primary_url, | 345 primary_url, |
344 primary_url, | 346 primary_url, |
(...skipping 13 matching lines...) Expand all Loading... |
358 primary_url, | 360 primary_url, |
359 secondary_url, | 361 secondary_url, |
360 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, | 362 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
361 std::string(), | 363 std::string(), |
362 false)); | 364 false)); |
363 provider.ShutdownOnUIThread(); | 365 provider.ShutdownOnUIThread(); |
364 } | 366 } |
365 | 367 |
366 // http://crosbug.com/17760 | 368 // http://crosbug.com/17760 |
367 TEST_F(PrefProviderTest, Deadlock) { | 369 TEST_F(PrefProviderTest, Deadlock) { |
368 TestingPrefService prefs; | 370 TestingPrefServiceSyncable prefs; |
369 PrefProvider::RegisterUserPrefs(&prefs); | 371 PrefProvider::RegisterUserPrefs(&prefs); |
370 | 372 |
371 // Chain of events: a preference changes, |PrefProvider| notices it, and reads | 373 // Chain of events: a preference changes, |PrefProvider| notices it, and reads |
372 // and writes the preference. When the preference is written, a notification | 374 // and writes the preference. When the preference is written, a notification |
373 // is sent, and this used to happen when |PrefProvider| was still holding its | 375 // is sent, and this used to happen when |PrefProvider| was still holding its |
374 // lock. | 376 // lock. |
375 | 377 |
376 PrefProvider provider(&prefs, false); | 378 PrefProvider provider(&prefs, false); |
377 DeadlockCheckerObserver observer(&prefs, &provider); | 379 DeadlockCheckerObserver observer(&prefs, &provider); |
378 { | 380 { |
379 DictionaryPrefUpdate update(&prefs, | 381 DictionaryPrefUpdate update(&prefs, |
380 prefs::kContentSettingsPatternPairs); | 382 prefs::kContentSettingsPatternPairs); |
381 DictionaryValue* mutable_settings = update.Get(); | 383 DictionaryValue* mutable_settings = update.Get(); |
382 mutable_settings->SetWithoutPathExpansion("www.example.com,*", | 384 mutable_settings->SetWithoutPathExpansion("www.example.com,*", |
383 new base::DictionaryValue()); | 385 new base::DictionaryValue()); |
384 } | 386 } |
385 EXPECT_TRUE(observer.notification_received()); | 387 EXPECT_TRUE(observer.notification_received()); |
386 | 388 |
387 provider.ShutdownOnUIThread(); | 389 provider.ShutdownOnUIThread(); |
388 } | 390 } |
389 | 391 |
390 } // namespace content_settings | 392 } // namespace content_settings |
OLD | NEW |