OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/extensions/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 #include "content/public/browser/dom_storage_context.h" | 80 #include "content/public/browser/dom_storage_context.h" |
81 #include "content/public/browser/gpu_data_manager.h" | 81 #include "content/public/browser/gpu_data_manager.h" |
82 #include "content/public/browser/indexed_db_context.h" | 82 #include "content/public/browser/indexed_db_context.h" |
83 #include "content/public/browser/notification_registrar.h" | 83 #include "content/public/browser/notification_registrar.h" |
84 #include "content/public/browser/notification_service.h" | 84 #include "content/public/browser/notification_service.h" |
85 #include "content/public/browser/plugin_service.h" | 85 #include "content/public/browser/plugin_service.h" |
86 #include "content/public/browser/render_process_host.h" | 86 #include "content/public/browser/render_process_host.h" |
87 #include "content/public/browser/storage_partition.h" | 87 #include "content/public/browser/storage_partition.h" |
88 #include "content/public/common/content_constants.h" | 88 #include "content/public/common/content_constants.h" |
89 #include "content/public/test/test_utils.h" | 89 #include "content/public/test/test_utils.h" |
| 90 #include "extensions/browser/extension_registry.h" |
90 #include "extensions/browser/external_provider_interface.h" | 91 #include "extensions/browser/external_provider_interface.h" |
91 #include "extensions/browser/management_policy.h" | 92 #include "extensions/browser/management_policy.h" |
92 #include "extensions/browser/pending_extension_info.h" | 93 #include "extensions/browser/pending_extension_info.h" |
93 #include "extensions/browser/pending_extension_manager.h" | 94 #include "extensions/browser/pending_extension_manager.h" |
94 #include "extensions/browser/test_management_policy.h" | 95 #include "extensions/browser/test_management_policy.h" |
95 #include "extensions/common/constants.h" | 96 #include "extensions/common/constants.h" |
96 #include "extensions/common/extension.h" | 97 #include "extensions/common/extension.h" |
97 #include "extensions/common/extension_builder.h" | 98 #include "extensions/common/extension_builder.h" |
98 #include "extensions/common/extension_resource.h" | 99 #include "extensions/common/extension_resource.h" |
99 #include "extensions/common/manifest_constants.h" | 100 #include "extensions/common/manifest_constants.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 using content::IndexedDBContext; | 145 using content::IndexedDBContext; |
145 using content::PluginService; | 146 using content::PluginService; |
146 using extensions::APIPermission; | 147 using extensions::APIPermission; |
147 using extensions::APIPermissionSet; | 148 using extensions::APIPermissionSet; |
148 using extensions::AppSorting; | 149 using extensions::AppSorting; |
149 using extensions::Blacklist; | 150 using extensions::Blacklist; |
150 using extensions::CrxInstaller; | 151 using extensions::CrxInstaller; |
151 using extensions::Extension; | 152 using extensions::Extension; |
152 using extensions::ExtensionCreator; | 153 using extensions::ExtensionCreator; |
153 using extensions::ExtensionPrefs; | 154 using extensions::ExtensionPrefs; |
| 155 using extensions::ExtensionRegistry; |
154 using extensions::ExtensionResource; | 156 using extensions::ExtensionResource; |
155 using extensions::ExtensionSystem; | 157 using extensions::ExtensionSystem; |
156 using extensions::FakeSafeBrowsingDatabaseManager; | 158 using extensions::FakeSafeBrowsingDatabaseManager; |
157 using extensions::FeatureSwitch; | 159 using extensions::FeatureSwitch; |
158 using extensions::Manifest; | 160 using extensions::Manifest; |
159 using extensions::PermissionSet; | 161 using extensions::PermissionSet; |
160 using extensions::TestExtensionSystem; | 162 using extensions::TestExtensionSystem; |
161 using extensions::URLPatternSet; | 163 using extensions::URLPatternSet; |
162 | 164 |
163 namespace keys = extensions::manifest_keys; | 165 namespace keys = extensions::manifest_keys; |
(...skipping 3198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3362 // initialized. | 3364 // initialized. |
3363 TEST_F(ExtensionServiceTest, SetUnsetBlacklistInPrefs) { | 3365 TEST_F(ExtensionServiceTest, SetUnsetBlacklistInPrefs) { |
3364 scoped_refptr<FakeSafeBrowsingDatabaseManager> blacklist_db( | 3366 scoped_refptr<FakeSafeBrowsingDatabaseManager> blacklist_db( |
3365 new FakeSafeBrowsingDatabaseManager(true)); | 3367 new FakeSafeBrowsingDatabaseManager(true)); |
3366 Blacklist::ScopedDatabaseManagerForTest scoped_blacklist_db(blacklist_db); | 3368 Blacklist::ScopedDatabaseManagerForTest scoped_blacklist_db(blacklist_db); |
3367 | 3369 |
3368 // A profile with 3 extensions installed: good0, good1, and good2. | 3370 // A profile with 3 extensions installed: good0, good1, and good2. |
3369 InitializeGoodInstalledExtensionService(); | 3371 InitializeGoodInstalledExtensionService(); |
3370 service_->Init(); | 3372 service_->Init(); |
3371 | 3373 |
3372 const extensions::ExtensionSet* extensions = service_->extensions(); | 3374 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3373 const extensions::ExtensionSet* blacklisted_extensions = | 3375 const extensions::ExtensionSet& enabled_extensions = |
3374 service_->blacklisted_extensions(); | 3376 registry->enabled_extensions(); |
| 3377 const extensions::ExtensionSet& blacklisted_extensions = |
| 3378 registry->blacklisted_extensions(); |
3375 | 3379 |
3376 EXPECT_TRUE( extensions->Contains(good0) && | 3380 EXPECT_TRUE(enabled_extensions.Contains(good0) && |
3377 !blacklisted_extensions->Contains(good0)); | 3381 !blacklisted_extensions.Contains(good0)); |
3378 EXPECT_TRUE( extensions->Contains(good1) && | 3382 EXPECT_TRUE(enabled_extensions.Contains(good1) && |
3379 !blacklisted_extensions->Contains(good1)); | 3383 !blacklisted_extensions.Contains(good1)); |
3380 EXPECT_TRUE( extensions->Contains(good2) && | 3384 EXPECT_TRUE(enabled_extensions.Contains(good2) && |
3381 !blacklisted_extensions->Contains(good2)); | 3385 !blacklisted_extensions.Contains(good2)); |
3382 | 3386 |
3383 EXPECT_FALSE(IsPrefExist(good0, "blacklist")); | 3387 EXPECT_FALSE(IsPrefExist(good0, "blacklist")); |
3384 EXPECT_FALSE(IsPrefExist(good1, "blacklist")); | 3388 EXPECT_FALSE(IsPrefExist(good1, "blacklist")); |
3385 EXPECT_FALSE(IsPrefExist(good2, "blacklist")); | 3389 EXPECT_FALSE(IsPrefExist(good2, "blacklist")); |
3386 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); | 3390 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); |
3387 | 3391 |
3388 // Blacklist good0 and good1 (and an invalid extension ID). | 3392 // Blacklist good0 and good1 (and an invalid extension ID). |
3389 blacklist_db->SetUnsafe(good0, good1, "invalid_id").NotifyUpdate(); | 3393 blacklist_db->SetUnsafe(good0, good1, "invalid_id").NotifyUpdate(); |
3390 base::RunLoop().RunUntilIdle(); | 3394 base::RunLoop().RunUntilIdle(); |
3391 | 3395 |
3392 EXPECT_TRUE(!extensions->Contains(good0) && | 3396 EXPECT_TRUE(!enabled_extensions.Contains(good0) && |
3393 blacklisted_extensions->Contains(good0)); | 3397 blacklisted_extensions.Contains(good0)); |
3394 EXPECT_TRUE(!extensions->Contains(good1) && | 3398 EXPECT_TRUE(!enabled_extensions.Contains(good1) && |
3395 blacklisted_extensions->Contains(good1)); | 3399 blacklisted_extensions.Contains(good1)); |
3396 EXPECT_TRUE( extensions->Contains(good2) && | 3400 EXPECT_TRUE(enabled_extensions.Contains(good2) && |
3397 !blacklisted_extensions->Contains(good2)); | 3401 !blacklisted_extensions.Contains(good2)); |
3398 | 3402 |
3399 EXPECT_TRUE(ValidateBooleanPref(good0, "blacklist", true)); | 3403 EXPECT_TRUE(ValidateBooleanPref(good0, "blacklist", true)); |
3400 EXPECT_TRUE(ValidateBooleanPref(good1, "blacklist", true)); | 3404 EXPECT_TRUE(ValidateBooleanPref(good1, "blacklist", true)); |
3401 EXPECT_FALSE(IsPrefExist(good2, "blacklist")); | 3405 EXPECT_FALSE(IsPrefExist(good2, "blacklist")); |
3402 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); | 3406 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); |
3403 | 3407 |
3404 // Un-blacklist good1 and blacklist good2. | 3408 // Un-blacklist good1 and blacklist good2. |
3405 blacklist_db->SetUnsafe(good0, good2, "invalid_id").NotifyUpdate(); | 3409 blacklist_db->SetUnsafe(good0, good2, "invalid_id").NotifyUpdate(); |
3406 base::RunLoop().RunUntilIdle(); | 3410 base::RunLoop().RunUntilIdle(); |
3407 | 3411 |
3408 EXPECT_TRUE(!extensions->Contains(good0) && | 3412 EXPECT_TRUE(!enabled_extensions.Contains(good0) && |
3409 blacklisted_extensions->Contains(good0)); | 3413 blacklisted_extensions.Contains(good0)); |
3410 EXPECT_TRUE( extensions->Contains(good1) && | 3414 EXPECT_TRUE(enabled_extensions.Contains(good1) && |
3411 !blacklisted_extensions->Contains(good1)); | 3415 !blacklisted_extensions.Contains(good1)); |
3412 EXPECT_TRUE(!extensions->Contains(good2) && | 3416 EXPECT_TRUE(!enabled_extensions.Contains(good2) && |
3413 blacklisted_extensions->Contains(good2)); | 3417 blacklisted_extensions.Contains(good2)); |
3414 | 3418 |
3415 EXPECT_TRUE(ValidateBooleanPref(good0, "blacklist", true)); | 3419 EXPECT_TRUE(ValidateBooleanPref(good0, "blacklist", true)); |
3416 EXPECT_FALSE(IsPrefExist(good1, "blacklist")); | 3420 EXPECT_FALSE(IsPrefExist(good1, "blacklist")); |
3417 EXPECT_TRUE(ValidateBooleanPref(good2, "blacklist", true)); | 3421 EXPECT_TRUE(ValidateBooleanPref(good2, "blacklist", true)); |
3418 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); | 3422 EXPECT_FALSE(IsPrefExist("invalid_id", "blacklist")); |
3419 } | 3423 } |
3420 #endif // defined(ENABLE_BLACKLIST_TESTS) | 3424 #endif // defined(ENABLE_BLACKLIST_TESTS) |
3421 | 3425 |
3422 #if defined(ENABLE_BLACKLIST_TESTS) | 3426 #if defined(ENABLE_BLACKLIST_TESTS) |
3423 // Tests trying to install a blacklisted extension. | 3427 // Tests trying to install a blacklisted extension. |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3485 InitializeGoodInstalledExtensionService(); | 3489 InitializeGoodInstalledExtensionService(); |
3486 | 3490 |
3487 // Blacklist good1 before the service initializes. | 3491 // Blacklist good1 before the service initializes. |
3488 blacklist_db->SetUnsafe(good1); | 3492 blacklist_db->SetUnsafe(good1); |
3489 | 3493 |
3490 // Load extensions. | 3494 // Load extensions. |
3491 service_->Init(); | 3495 service_->Init(); |
3492 ASSERT_EQ(3u, loaded_.size()); // hasn't had time to blacklist yet | 3496 ASSERT_EQ(3u, loaded_.size()); // hasn't had time to blacklist yet |
3493 | 3497 |
3494 base::RunLoop().RunUntilIdle(); | 3498 base::RunLoop().RunUntilIdle(); |
3495 ASSERT_EQ(1u, service_->blacklisted_extensions()->size()); | |
3496 ASSERT_EQ(2u, service_->extensions()->size()); | |
3497 | 3499 |
3498 ASSERT_TRUE(service_->extensions()->Contains(good0)); | 3500 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3499 ASSERT_TRUE(service_->blacklisted_extensions()->Contains(good1)); | 3501 ASSERT_EQ(1u, registry->blacklisted_extensions().size()); |
3500 ASSERT_TRUE(service_->extensions()->Contains(good2)); | 3502 ASSERT_EQ(2u, registry->enabled_extensions().size()); |
| 3503 |
| 3504 ASSERT_TRUE(registry->enabled_extensions().Contains(good0)); |
| 3505 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good1)); |
| 3506 ASSERT_TRUE(registry->enabled_extensions().Contains(good2)); |
3501 } | 3507 } |
3502 #endif // defined(ENABLE_BLACKLIST_TESTS) | 3508 #endif // defined(ENABLE_BLACKLIST_TESTS) |
3503 | 3509 |
3504 #if defined(ENABLE_BLACKLIST_TESTS) | 3510 #if defined(ENABLE_BLACKLIST_TESTS) |
3505 // Tests extensions blacklisted in prefs on startup; one still blacklisted by | 3511 // Tests extensions blacklisted in prefs on startup; one still blacklisted by |
3506 // safe browsing, the other not. The not-blacklisted one should recover. | 3512 // safe browsing, the other not. The not-blacklisted one should recover. |
3507 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) { | 3513 TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) { |
3508 scoped_refptr<FakeSafeBrowsingDatabaseManager> blacklist_db( | 3514 scoped_refptr<FakeSafeBrowsingDatabaseManager> blacklist_db( |
3509 new FakeSafeBrowsingDatabaseManager(true)); | 3515 new FakeSafeBrowsingDatabaseManager(true)); |
3510 Blacklist::ScopedDatabaseManagerForTest scoped_blacklist_db(blacklist_db); | 3516 Blacklist::ScopedDatabaseManagerForTest scoped_blacklist_db(blacklist_db); |
3511 | 3517 |
3512 InitializeGoodInstalledExtensionService(); | 3518 InitializeGoodInstalledExtensionService(); |
3513 service_->extension_prefs()->SetExtensionBlacklisted(good0, true); | 3519 service_->extension_prefs()->SetExtensionBlacklisted(good0, true); |
3514 service_->extension_prefs()->SetExtensionBlacklisted(good1, true); | 3520 service_->extension_prefs()->SetExtensionBlacklisted(good1, true); |
3515 | 3521 |
3516 blacklist_db->SetUnsafe(good1); | 3522 blacklist_db->SetUnsafe(good1); |
3517 | 3523 |
3518 service_->Init(); | 3524 service_->Init(); |
3519 | 3525 |
3520 ASSERT_EQ(2u, service_->blacklisted_extensions()->size()); | 3526 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3521 ASSERT_EQ(1u, service_->extensions()->size()); | 3527 ASSERT_EQ(2u, registry->blacklisted_extensions().size()); |
| 3528 ASSERT_EQ(1u, registry->enabled_extensions().size()); |
3522 | 3529 |
3523 ASSERT_TRUE(service_->blacklisted_extensions()->Contains(good0)); | 3530 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good0)); |
3524 ASSERT_TRUE(service_->blacklisted_extensions()->Contains(good1)); | 3531 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good1)); |
3525 ASSERT_TRUE(service_->extensions()->Contains(good2)); | 3532 ASSERT_TRUE(registry->enabled_extensions().Contains(good2)); |
3526 | 3533 |
3527 // Give time for the blacklist to update. | 3534 // Give time for the blacklist to update. |
3528 base::RunLoop().RunUntilIdle(); | 3535 base::RunLoop().RunUntilIdle(); |
3529 | 3536 |
3530 ASSERT_EQ(1u, service_->blacklisted_extensions()->size()); | 3537 ASSERT_EQ(1u, registry->blacklisted_extensions().size()); |
3531 ASSERT_EQ(2u, service_->extensions()->size()); | 3538 ASSERT_EQ(2u, registry->enabled_extensions().size()); |
3532 | 3539 |
3533 ASSERT_TRUE(service_->extensions()->Contains(good0)); | 3540 ASSERT_TRUE(registry->enabled_extensions().Contains(good0)); |
3534 ASSERT_TRUE(service_->blacklisted_extensions()->Contains(good1)); | 3541 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good1)); |
3535 ASSERT_TRUE(service_->extensions()->Contains(good2)); | 3542 ASSERT_TRUE(registry->enabled_extensions().Contains(good2)); |
3536 } | 3543 } |
3537 #endif // defined(ENABLE_BLACKLIST_TESTS) | 3544 #endif // defined(ENABLE_BLACKLIST_TESTS) |
3538 | 3545 |
3539 // Will not install extension blacklisted by policy. | 3546 // Will not install extension blacklisted by policy. |
3540 TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { | 3547 TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { |
3541 InitializeEmptyExtensionService(); | 3548 InitializeEmptyExtensionService(); |
3542 | 3549 |
3543 // Blacklist everything. | 3550 // Blacklist everything. |
3544 { | 3551 { |
3545 ListPrefUpdate update(profile_->GetPrefs(), | 3552 ListPrefUpdate update(profile_->GetPrefs(), |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3908 } | 3915 } |
3909 #endif | 3916 #endif |
3910 | 3917 |
3911 // Tests disabling extensions | 3918 // Tests disabling extensions |
3912 TEST_F(ExtensionServiceTest, DisableExtension) { | 3919 TEST_F(ExtensionServiceTest, DisableExtension) { |
3913 InitializeEmptyExtensionService(); | 3920 InitializeEmptyExtensionService(); |
3914 | 3921 |
3915 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 3922 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
3916 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 3923 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
3917 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); | 3924 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
3918 EXPECT_EQ(1u, service_->extensions()->size()); | 3925 |
3919 EXPECT_EQ(0u, service_->disabled_extensions()->size()); | 3926 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3920 EXPECT_EQ(0u, service_->terminated_extensions()->size()); | 3927 EXPECT_EQ(1u, registry->enabled_extensions().size()); |
3921 EXPECT_EQ(0u, service_->blacklisted_extensions()->size()); | 3928 EXPECT_EQ(0u, registry->disabled_extensions().size()); |
| 3929 EXPECT_EQ(0u, registry->terminated_extensions().size()); |
| 3930 EXPECT_EQ(0u, registry->blacklisted_extensions().size()); |
3922 | 3931 |
3923 // Disable it. | 3932 // Disable it. |
3924 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 3933 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
3925 | 3934 |
3926 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 3935 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
3927 EXPECT_FALSE(service_->GetExtensionById(good_crx, false)); | 3936 EXPECT_FALSE(service_->GetExtensionById(good_crx, false)); |
3928 EXPECT_EQ(0u, service_->extensions()->size()); | 3937 EXPECT_EQ(0u, registry->enabled_extensions().size()); |
3929 EXPECT_EQ(1u, service_->disabled_extensions()->size()); | 3938 EXPECT_EQ(1u, registry->disabled_extensions().size()); |
3930 EXPECT_EQ(0u, service_->terminated_extensions()->size()); | 3939 EXPECT_EQ(0u, registry->terminated_extensions().size()); |
3931 EXPECT_EQ(0u, service_->blacklisted_extensions()->size()); | 3940 EXPECT_EQ(0u, registry->blacklisted_extensions().size()); |
3932 } | 3941 } |
3933 | 3942 |
3934 TEST_F(ExtensionServiceTest, TerminateExtension) { | 3943 TEST_F(ExtensionServiceTest, TerminateExtension) { |
3935 InitializeEmptyExtensionService(); | 3944 InitializeEmptyExtensionService(); |
3936 | 3945 |
3937 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 3946 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
3938 EXPECT_EQ(1u, service_->extensions()->size()); | 3947 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3939 EXPECT_EQ(0u, service_->disabled_extensions()->size()); | 3948 EXPECT_EQ(1u, registry->enabled_extensions().size()); |
3940 EXPECT_EQ(0u, service_->terminated_extensions()->size()); | 3949 EXPECT_EQ(0u, registry->disabled_extensions().size()); |
3941 EXPECT_EQ(0u, service_->blacklisted_extensions()->size()); | 3950 EXPECT_EQ(0u, registry->terminated_extensions().size()); |
| 3951 EXPECT_EQ(0u, registry->blacklisted_extensions().size()); |
3942 | 3952 |
3943 TerminateExtension(good_crx); | 3953 TerminateExtension(good_crx); |
3944 | 3954 |
3945 EXPECT_EQ(0u, service_->extensions()->size()); | 3955 EXPECT_EQ(0u, registry->enabled_extensions().size()); |
3946 EXPECT_EQ(0u, service_->disabled_extensions()->size()); | 3956 EXPECT_EQ(0u, registry->disabled_extensions().size()); |
3947 EXPECT_EQ(1u, service_->terminated_extensions()->size()); | 3957 EXPECT_EQ(1u, registry->terminated_extensions().size()); |
3948 EXPECT_EQ(0u, service_->blacklisted_extensions()->size()); | 3958 EXPECT_EQ(0u, registry->blacklisted_extensions().size()); |
3949 } | 3959 } |
3950 | 3960 |
3951 TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { | 3961 TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { |
3952 InitializeEmptyExtensionService(); | 3962 InitializeEmptyExtensionService(); |
3953 | 3963 |
3954 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 3964 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
3955 TerminateExtension(good_crx); | 3965 TerminateExtension(good_crx); |
3956 EXPECT_TRUE(service_->GetTerminatedExtension(good_crx)); | 3966 EXPECT_TRUE(service_->GetTerminatedExtension(good_crx)); |
3957 | 3967 |
3958 // Disable it. | 3968 // Disable it. |
3959 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 3969 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
3960 | 3970 |
3961 EXPECT_FALSE(service_->GetTerminatedExtension(good_crx)); | 3971 EXPECT_FALSE(service_->GetTerminatedExtension(good_crx)); |
3962 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 3972 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
3963 | 3973 |
3964 EXPECT_EQ(0u, service_->extensions()->size()); | 3974 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
3965 EXPECT_EQ(1u, service_->disabled_extensions()->size()); | 3975 EXPECT_EQ(0u, registry->enabled_extensions().size()); |
3966 EXPECT_EQ(0u, service_->terminated_extensions()->size()); | 3976 EXPECT_EQ(1u, registry->disabled_extensions().size()); |
3967 EXPECT_EQ(0u, service_->blacklisted_extensions()->size()); | 3977 EXPECT_EQ(0u, registry->terminated_extensions().size()); |
| 3978 EXPECT_EQ(0u, registry->blacklisted_extensions().size()); |
3968 } | 3979 } |
3969 | 3980 |
3970 // Tests disabling all extensions (simulating --disable-extensions flag). | 3981 // Tests disabling all extensions (simulating --disable-extensions flag). |
3971 TEST_F(ExtensionServiceTest, DisableAllExtensions) { | 3982 TEST_F(ExtensionServiceTest, DisableAllExtensions) { |
3972 InitializeEmptyExtensionService(); | 3983 InitializeEmptyExtensionService(); |
3973 | 3984 |
3974 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 3985 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
3975 InstallCRX(path, INSTALL_NEW); | 3986 InstallCRX(path, INSTALL_NEW); |
3976 | 3987 |
3977 EXPECT_EQ(1u, service_->extensions()->size()); | 3988 EXPECT_EQ(1u, service_->extensions()->size()); |
(...skipping 2718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6696 extension.get(), | 6707 extension.get(), |
6697 syncer::StringOrdinal(), | 6708 syncer::StringOrdinal(), |
6698 false /* has requirement errors */, | 6709 false /* has requirement errors */, |
6699 extensions::BLACKLISTED_MALWARE, | 6710 extensions::BLACKLISTED_MALWARE, |
6700 false /* wait for idle */); | 6711 false /* wait for idle */); |
6701 base::RunLoop().RunUntilIdle(); | 6712 base::RunLoop().RunUntilIdle(); |
6702 | 6713 |
6703 // Extension was installed but not loaded. | 6714 // Extension was installed but not loaded. |
6704 EXPECT_TRUE(notifications.CheckNotifications( | 6715 EXPECT_TRUE(notifications.CheckNotifications( |
6705 chrome::NOTIFICATION_EXTENSION_INSTALLED)); | 6716 chrome::NOTIFICATION_EXTENSION_INSTALLED)); |
| 6717 EXPECT_TRUE(service_->GetInstalledExtension(id)); |
6706 | 6718 |
6707 EXPECT_TRUE(service_->GetInstalledExtension(id)); | 6719 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); |
6708 EXPECT_FALSE(service_->extensions()->Contains(id)); | 6720 EXPECT_FALSE(registry->enabled_extensions().Contains(id)); |
6709 EXPECT_TRUE(service_->blacklisted_extensions()->Contains(id)); | 6721 EXPECT_TRUE(registry->blacklisted_extensions().Contains(id)); |
| 6722 |
6710 EXPECT_TRUE(service_->extension_prefs()->IsExtensionBlacklisted(id)); | 6723 EXPECT_TRUE(service_->extension_prefs()->IsExtensionBlacklisted(id)); |
6711 EXPECT_TRUE( | 6724 EXPECT_TRUE( |
6712 service_->extension_prefs()->IsBlacklistedExtensionAcknowledged(id)); | 6725 service_->extension_prefs()->IsBlacklistedExtensionAcknowledged(id)); |
6713 } | 6726 } |
6714 | 6727 |
6715 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) { | 6728 TEST_F(ExtensionServiceTest, ReconcileKnownDisabledNoneDisabled) { |
6716 // A profile with 3 extensions installed: good0, good1, and good2. | 6729 // A profile with 3 extensions installed: good0, good1, and good2. |
6717 InitializeGoodInstalledExtensionService(); | 6730 InitializeGoodInstalledExtensionService(); |
6718 | 6731 |
6719 // Initializing shouldn't disable any extensions if none are known to be | 6732 // Initializing shouldn't disable any extensions if none are known to be |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6767 // ReconcileKnownDisabled(). | 6780 // ReconcileKnownDisabled(). |
6768 service_->EnableExtension(good2); | 6781 service_->EnableExtension(good2); |
6769 service_->ReconcileKnownDisabled(); | 6782 service_->ReconcileKnownDisabled(); |
6770 expected_extensions.insert(good2); | 6783 expected_extensions.insert(good2); |
6771 expected_disabled_extensions.erase(good2); | 6784 expected_disabled_extensions.erase(good2); |
6772 | 6785 |
6773 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6786 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
6774 EXPECT_EQ(expected_disabled_extensions, | 6787 EXPECT_EQ(expected_disabled_extensions, |
6775 service_->disabled_extensions()->GetIDs()); | 6788 service_->disabled_extensions()->GetIDs()); |
6776 } | 6789 } |
OLD | NEW |