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 "components/content_settings/core/browser/content_settings_pref_provide
r.h" | 5 #include "components/content_settings/core/browser/content_settings_pref_provide
r.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "components/content_settings/core/browser/website_settings_registry.h" | 27 #include "components/content_settings/core/browser/website_settings_registry.h" |
28 #include "components/content_settings/core/common/content_settings_pattern.h" | 28 #include "components/content_settings/core/common/content_settings_pattern.h" |
29 #include "components/content_settings/core/test/content_settings_test_utils.h" | 29 #include "components/content_settings/core/test/content_settings_test_utils.h" |
30 #include "components/pref_registry/pref_registry_syncable.h" | 30 #include "components/pref_registry/pref_registry_syncable.h" |
31 #include "components/prefs/default_pref_store.h" | 31 #include "components/prefs/default_pref_store.h" |
32 #include "components/prefs/overlay_user_pref_store.h" | 32 #include "components/prefs/overlay_user_pref_store.h" |
33 #include "components/prefs/pref_change_registrar.h" | 33 #include "components/prefs/pref_change_registrar.h" |
34 #include "components/prefs/pref_service.h" | 34 #include "components/prefs/pref_service.h" |
35 #include "components/prefs/scoped_user_pref_update.h" | 35 #include "components/prefs/scoped_user_pref_update.h" |
36 #include "components/prefs/testing_pref_store.h" | 36 #include "components/prefs/testing_pref_store.h" |
37 #include "components/syncable_prefs/pref_service_mock_factory.h" | 37 #include "components/sync_preferences/pref_service_mock_factory.h" |
38 #include "components/syncable_prefs/pref_service_syncable.h" | 38 #include "components/sync_preferences/pref_service_syncable.h" |
39 #include "components/syncable_prefs/testing_pref_service_syncable.h" | 39 #include "components/sync_preferences/testing_pref_service_syncable.h" |
40 #include "content/public/test/test_browser_thread_bundle.h" | 40 #include "content/public/test/test_browser_thread_bundle.h" |
41 #include "testing/gtest/include/gtest/gtest.h" | 41 #include "testing/gtest/include/gtest/gtest.h" |
42 #include "url/gurl.h" | 42 #include "url/gurl.h" |
43 | 43 |
44 using ::testing::_; | 44 using ::testing::_; |
45 | 45 |
46 namespace content_settings { | 46 namespace content_settings { |
47 | 47 |
48 class DeadlockCheckerThread : public base::PlatformThread::Delegate { | 48 class DeadlockCheckerThread : public base::PlatformThread::Delegate { |
49 public: | 49 public: |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 pref_content_settings_provider.ShutdownOnUIThread(); | 132 pref_content_settings_provider.ShutdownOnUIThread(); |
133 } | 133 } |
134 | 134 |
135 // Test for regression in which the PrefProvider modified the user pref store | 135 // Test for regression in which the PrefProvider modified the user pref store |
136 // of the OTR unintentionally: http://crbug.com/74466. | 136 // of the OTR unintentionally: http://crbug.com/74466. |
137 TEST_F(PrefProviderTest, Incognito) { | 137 TEST_F(PrefProviderTest, Incognito) { |
138 PersistentPrefStore* user_prefs = new TestingPrefStore(); | 138 PersistentPrefStore* user_prefs = new TestingPrefStore(); |
139 OverlayUserPrefStore* otr_user_prefs = | 139 OverlayUserPrefStore* otr_user_prefs = |
140 new OverlayUserPrefStore(user_prefs); | 140 new OverlayUserPrefStore(user_prefs); |
141 | 141 |
142 syncable_prefs::PrefServiceMockFactory factory; | 142 sync_preferences::PrefServiceMockFactory factory; |
143 factory.set_user_prefs(make_scoped_refptr(user_prefs)); | 143 factory.set_user_prefs(make_scoped_refptr(user_prefs)); |
144 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 144 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
145 new user_prefs::PrefRegistrySyncable); | 145 new user_prefs::PrefRegistrySyncable); |
146 syncable_prefs::PrefServiceSyncable* regular_prefs = | 146 sync_preferences::PrefServiceSyncable* regular_prefs = |
147 factory.CreateSyncable(registry.get()).release(); | 147 factory.CreateSyncable(registry.get()).release(); |
148 | 148 |
149 chrome::RegisterUserProfilePrefs(registry.get()); | 149 chrome::RegisterUserProfilePrefs(registry.get()); |
150 | 150 |
151 syncable_prefs::PrefServiceMockFactory otr_factory; | 151 sync_preferences::PrefServiceMockFactory otr_factory; |
152 otr_factory.set_user_prefs(make_scoped_refptr(otr_user_prefs)); | 152 otr_factory.set_user_prefs(make_scoped_refptr(otr_user_prefs)); |
153 scoped_refptr<user_prefs::PrefRegistrySyncable> otr_registry( | 153 scoped_refptr<user_prefs::PrefRegistrySyncable> otr_registry( |
154 new user_prefs::PrefRegistrySyncable); | 154 new user_prefs::PrefRegistrySyncable); |
155 syncable_prefs::PrefServiceSyncable* otr_prefs = | 155 sync_preferences::PrefServiceSyncable* otr_prefs = |
156 otr_factory.CreateSyncable(otr_registry.get()).release(); | 156 otr_factory.CreateSyncable(otr_registry.get()).release(); |
157 | 157 |
158 chrome::RegisterUserProfilePrefs(otr_registry.get()); | 158 chrome::RegisterUserProfilePrefs(otr_registry.get()); |
159 | 159 |
160 TestingProfile::Builder profile_builder; | 160 TestingProfile::Builder profile_builder; |
161 profile_builder.SetPrefService(base::WrapUnique(regular_prefs)); | 161 profile_builder.SetPrefService(base::WrapUnique(regular_prefs)); |
162 std::unique_ptr<TestingProfile> profile = profile_builder.Build(); | 162 std::unique_ptr<TestingProfile> profile = profile_builder.Build(); |
163 | 163 |
164 TestingProfile::Builder otr_profile_builder; | 164 TestingProfile::Builder otr_profile_builder; |
165 otr_profile_builder.SetPrefService(base::WrapUnique(otr_prefs)); | 165 otr_profile_builder.SetPrefService(base::WrapUnique(otr_prefs)); |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 TestUtils::GetContentSetting(&pref_content_settings_provider, host, | 322 TestUtils::GetContentSetting(&pref_content_settings_provider, host, |
323 host, CONTENT_SETTINGS_TYPE_PLUGINS, | 323 host, CONTENT_SETTINGS_TYPE_PLUGINS, |
324 resource2, false)); | 324 resource2, false)); |
325 | 325 |
326 pref_content_settings_provider.ShutdownOnUIThread(); | 326 pref_content_settings_provider.ShutdownOnUIThread(); |
327 } | 327 } |
328 #endif | 328 #endif |
329 | 329 |
330 // http://crosbug.com/17760 | 330 // http://crosbug.com/17760 |
331 TEST_F(PrefProviderTest, Deadlock) { | 331 TEST_F(PrefProviderTest, Deadlock) { |
332 syncable_prefs::TestingPrefServiceSyncable prefs; | 332 sync_preferences::TestingPrefServiceSyncable prefs; |
333 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 333 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
334 | 334 |
335 // Chain of events: a preference changes, |PrefProvider| notices it, and reads | 335 // Chain of events: a preference changes, |PrefProvider| notices it, and reads |
336 // and writes the preference. When the preference is written, a notification | 336 // and writes the preference. When the preference is written, a notification |
337 // is sent, and this used to happen when |PrefProvider| was still holding its | 337 // is sent, and this used to happen when |PrefProvider| was still holding its |
338 // lock. | 338 // lock. |
339 | 339 |
340 const WebsiteSettingsInfo* info = WebsiteSettingsRegistry::GetInstance()->Get( | 340 const WebsiteSettingsInfo* info = WebsiteSettingsRegistry::GetInstance()->Get( |
341 CONTENT_SETTINGS_TYPE_COOKIES); | 341 CONTENT_SETTINGS_TYPE_COOKIES); |
342 PrefProvider provider(&prefs, false); | 342 PrefProvider provider(&prefs, false); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 base::Time second = pref_content_settings_provider.GetLastUsage( | 381 base::Time second = pref_content_settings_provider.GetLastUsage( |
382 pattern, pattern, CONTENT_SETTINGS_TYPE_GEOLOCATION); | 382 pattern, pattern, CONTENT_SETTINGS_TYPE_GEOLOCATION); |
383 | 383 |
384 base::TimeDelta delta = second - first; | 384 base::TimeDelta delta = second - first; |
385 EXPECT_EQ(delta.InSeconds(), 10); | 385 EXPECT_EQ(delta.InSeconds(), 10); |
386 | 386 |
387 pref_content_settings_provider.ShutdownOnUIThread(); | 387 pref_content_settings_provider.ShutdownOnUIThread(); |
388 } | 388 } |
389 | 389 |
390 TEST_F(PrefProviderTest, IncognitoInheritsValueMap) { | 390 TEST_F(PrefProviderTest, IncognitoInheritsValueMap) { |
391 syncable_prefs::TestingPrefServiceSyncable prefs; | 391 sync_preferences::TestingPrefServiceSyncable prefs; |
392 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 392 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
393 | 393 |
394 ContentSettingsPattern pattern_1 = | 394 ContentSettingsPattern pattern_1 = |
395 ContentSettingsPattern::FromString("google.com"); | 395 ContentSettingsPattern::FromString("google.com"); |
396 ContentSettingsPattern pattern_2 = | 396 ContentSettingsPattern pattern_2 = |
397 ContentSettingsPattern::FromString("www.google.com"); | 397 ContentSettingsPattern::FromString("www.google.com"); |
398 ContentSettingsPattern wildcard = | 398 ContentSettingsPattern wildcard = |
399 ContentSettingsPattern::FromString("*"); | 399 ContentSettingsPattern::FromString("*"); |
400 std::unique_ptr<base::Value> value( | 400 std::unique_ptr<base::Value> value( |
401 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); | 401 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 EXPECT_TRUE(it->HasNext()); | 444 EXPECT_TRUE(it->HasNext()); |
445 EXPECT_EQ(pattern_2, it->Next().primary_pattern); | 445 EXPECT_EQ(pattern_2, it->Next().primary_pattern); |
446 EXPECT_FALSE(it->HasNext()); | 446 EXPECT_FALSE(it->HasNext()); |
447 } | 447 } |
448 | 448 |
449 incognito_provider.ShutdownOnUIThread(); | 449 incognito_provider.ShutdownOnUIThread(); |
450 normal_provider.ShutdownOnUIThread(); | 450 normal_provider.ShutdownOnUIThread(); |
451 } | 451 } |
452 | 452 |
453 TEST_F(PrefProviderTest, ClearAllContentSettingsRules) { | 453 TEST_F(PrefProviderTest, ClearAllContentSettingsRules) { |
454 syncable_prefs::TestingPrefServiceSyncable prefs; | 454 sync_preferences::TestingPrefServiceSyncable prefs; |
455 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 455 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
456 | 456 |
457 ContentSettingsPattern pattern = | 457 ContentSettingsPattern pattern = |
458 ContentSettingsPattern::FromString("google.com"); | 458 ContentSettingsPattern::FromString("google.com"); |
459 ContentSettingsPattern wildcard = | 459 ContentSettingsPattern wildcard = |
460 ContentSettingsPattern::FromString("*"); | 460 ContentSettingsPattern::FromString("*"); |
461 std::unique_ptr<base::Value> value( | 461 std::unique_ptr<base::Value> value( |
462 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); | 462 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
463 ResourceIdentifier res_id("abcde"); | 463 ResourceIdentifier res_id("abcde"); |
464 | 464 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 for (const char* pref : nonempty_prefs) { | 522 for (const char* pref : nonempty_prefs) { |
523 DictionaryPrefUpdate update(&prefs, pref); | 523 DictionaryPrefUpdate update(&prefs, pref); |
524 const base::DictionaryValue* dictionary = update.Get(); | 524 const base::DictionaryValue* dictionary = update.Get(); |
525 EXPECT_EQ(1u, dictionary->size()); | 525 EXPECT_EQ(1u, dictionary->size()); |
526 } | 526 } |
527 | 527 |
528 provider.ShutdownOnUIThread(); | 528 provider.ShutdownOnUIThread(); |
529 } | 529 } |
530 | 530 |
531 } // namespace content_settings | 531 } // namespace content_settings |
OLD | NEW |