| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <set> | 6 #include <set> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 int previous_enabled_extension_count = | 819 int previous_enabled_extension_count = |
| 820 registry()->enabled_extensions().size(); | 820 registry()->enabled_extensions().size(); |
| 821 int previous_installed_extension_count = | 821 int previous_installed_extension_count = |
| 822 previous_enabled_extension_count + | 822 previous_enabled_extension_count + |
| 823 registry()->disabled_extensions().size(); | 823 registry()->disabled_extensions().size(); |
| 824 | 824 |
| 825 extensions::CrxInstaller* installer = NULL; | 825 extensions::CrxInstaller* installer = NULL; |
| 826 content::WindowedNotificationObserver observer( | 826 content::WindowedNotificationObserver observer( |
| 827 extensions::NOTIFICATION_CRX_INSTALLER_DONE, | 827 extensions::NOTIFICATION_CRX_INSTALLER_DONE, |
| 828 base::Bind(&IsCrxInstallerDone, &installer)); | 828 base::Bind(&IsCrxInstallerDone, &installer)); |
| 829 service()->UpdateExtension(id, path, true, &installer); | 829 service()->UpdateExtension(extensions::CRXFileInfo(id, path), true, |
| 830 &installer); |
| 830 | 831 |
| 831 if (installer) | 832 if (installer) |
| 832 observer.Wait(); | 833 observer.Wait(); |
| 833 else | 834 else |
| 834 base::RunLoop().RunUntilIdle(); | 835 base::RunLoop().RunUntilIdle(); |
| 835 | 836 |
| 836 std::vector<base::string16> errors = GetErrors(); | 837 std::vector<base::string16> errors = GetErrors(); |
| 837 int error_count = errors.size(); | 838 int error_count = errors.size(); |
| 838 int enabled_extension_count = registry()->enabled_extensions().size(); | 839 int enabled_extension_count = registry()->enabled_extensions().size(); |
| 839 int installed_extension_count = | 840 int installed_extension_count = |
| (...skipping 1870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2710 // Install an extension. | 2711 // Install an extension. |
| 2711 base::FilePath path = data_dir().AppendASCII("good.crx"); | 2712 base::FilePath path = data_dir().AppendASCII("good.crx"); |
| 2712 const Extension* good = InstallCRX(path, INSTALL_NEW); | 2713 const Extension* good = InstallCRX(path, INSTALL_NEW); |
| 2713 ASSERT_EQ(good_crx, good->id()); | 2714 ASSERT_EQ(good_crx, good->id()); |
| 2714 | 2715 |
| 2715 // Simulate shutdown. | 2716 // Simulate shutdown. |
| 2716 service()->set_browser_terminating_for_test(true); | 2717 service()->set_browser_terminating_for_test(true); |
| 2717 | 2718 |
| 2718 // Update should fail and extension should not be updated. | 2719 // Update should fail and extension should not be updated. |
| 2719 path = data_dir().AppendASCII("good2.crx"); | 2720 path = data_dir().AppendASCII("good2.crx"); |
| 2720 bool updated = service()->UpdateExtension(good_crx, path, true, NULL); | 2721 bool updated = service()->UpdateExtension( |
| 2722 extensions::CRXFileInfo(good_crx, path), true, NULL); |
| 2721 ASSERT_FALSE(updated); | 2723 ASSERT_FALSE(updated); |
| 2722 ASSERT_EQ( | 2724 ASSERT_EQ( |
| 2723 "1.0.0.0", | 2725 "1.0.0.0", |
| 2724 service()->GetExtensionById(good_crx, false)->version()->GetString()); | 2726 service()->GetExtensionById(good_crx, false)->version()->GetString()); |
| 2725 } | 2727 } |
| 2726 | 2728 |
| 2727 // Test updating a not-already-installed extension - this should fail | 2729 // Test updating a not-already-installed extension - this should fail |
| 2728 TEST_F(ExtensionServiceTest, UpdateNotInstalledExtension) { | 2730 TEST_F(ExtensionServiceTest, UpdateNotInstalledExtension) { |
| 2729 InitializeEmptyExtensionService(); | 2731 InitializeEmptyExtensionService(); |
| 2730 | 2732 |
| (...skipping 4025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6756 | 6758 |
| 6757 EXPECT_FALSE(pending->IsIdPending(kGoodId)); | 6759 EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
| 6758 } | 6760 } |
| 6759 | 6761 |
| 6760 TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { | 6762 TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
| 6761 Version older_version("0.1.0.0"); | 6763 Version older_version("0.1.0.0"); |
| 6762 Version newer_version("2.0.0.0"); | 6764 Version newer_version("2.0.0.0"); |
| 6763 | 6765 |
| 6764 // We don't want the extension to be installed. A path that doesn't | 6766 // We don't want the extension to be installed. A path that doesn't |
| 6765 // point to a valid CRX ensures this. | 6767 // point to a valid CRX ensures this. |
| 6766 const base::FilePath kInvalidPathToCrx = base::FilePath(); | 6768 const base::FilePath kInvalidPathToCrx = base::FilePath("invalid_path"); |
| 6767 | 6769 |
| 6768 const int kCreationFlags = 0; | 6770 const int kCreationFlags = 0; |
| 6769 const bool kDontMarkAcknowledged = false; | 6771 const bool kDontMarkAcknowledged = false; |
| 6770 | 6772 |
| 6771 InitializeEmptyExtensionService(); | 6773 InitializeEmptyExtensionService(); |
| 6772 | 6774 |
| 6773 // The test below uses install source constants to test that | 6775 // The test below uses install source constants to test that |
| 6774 // priority is enforced. It assumes a specific ranking of install | 6776 // priority is enforced. It assumes a specific ranking of install |
| 6775 // sources: Registry (EXTERNAL_REGISTRY) overrides external pref | 6777 // sources: Registry (EXTERNAL_REGISTRY) overrides external pref |
| 6776 // (EXTERNAL_PREF), and external pref overrides user install (INTERNAL). | 6778 // (EXTERNAL_PREF), and external pref overrides user install (INTERNAL). |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6960 Manifest::EXTERNAL_PREF, | 6962 Manifest::EXTERNAL_PREF, |
| 6961 kCreationFlags, | 6963 kCreationFlags, |
| 6962 kDontMarkAcknowledged)); | 6964 kDontMarkAcknowledged)); |
| 6963 EXPECT_TRUE(pending->IsIdPending(kGoodId)); | 6965 EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
| 6964 } | 6966 } |
| 6965 | 6967 |
| 6966 TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { | 6968 TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { |
| 6967 Version kVersion123("1.2.3"); | 6969 Version kVersion123("1.2.3"); |
| 6968 Version kVersion124("1.2.4"); | 6970 Version kVersion124("1.2.4"); |
| 6969 Version kVersion125("1.2.5"); | 6971 Version kVersion125("1.2.5"); |
| 6970 const base::FilePath kInvalidPathToCrx = base::FilePath(); | 6972 const base::FilePath kInvalidPathToCrx = base::FilePath("invalid_path"); |
| 6971 const int kCreationFlags = 0; | 6973 const int kCreationFlags = 0; |
| 6972 const bool kDontMarkAcknowledged = false; | 6974 const bool kDontMarkAcknowledged = false; |
| 6973 | 6975 |
| 6974 InitializeEmptyExtensionService(); | 6976 InitializeEmptyExtensionService(); |
| 6975 | 6977 |
| 6976 extensions::PendingExtensionManager* pending = | 6978 extensions::PendingExtensionManager* pending = |
| 6977 service()->pending_extension_manager(); | 6979 service()->pending_extension_manager(); |
| 6978 EXPECT_FALSE(pending->IsIdPending(kGoodId)); | 6980 EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
| 6979 | 6981 |
| 6980 // An external provider starts installing from a local crx. | 6982 // An external provider starts installing from a local crx. |
| (...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7574 | 7576 |
| 7575 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, | 7577 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, |
| 7576 content::Source<Profile>(profile()), | 7578 content::Source<Profile>(profile()), |
| 7577 content::NotificationService::NoDetails()); | 7579 content::NotificationService::NoDetails()); |
| 7578 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); | 7580 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); |
| 7579 EXPECT_EQ(0u, registry()->enabled_extensions().size()); | 7581 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
| 7580 EXPECT_EQ(0u, registry()->disabled_extensions().size()); | 7582 EXPECT_EQ(0u, registry()->disabled_extensions().size()); |
| 7581 EXPECT_EQ(0u, registry()->terminated_extensions().size()); | 7583 EXPECT_EQ(0u, registry()->terminated_extensions().size()); |
| 7582 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); | 7584 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); |
| 7583 } | 7585 } |
| OLD | NEW |