| 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 |