| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
| 11 #include "chrome/browser/extensions/extension_host.h" | 11 #include "chrome/browser/extensions/extension_host.h" |
| 12 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
| 13 #include "chrome/browser/extensions/extension_system.h" | 13 #include "chrome/browser/extensions/extension_system.h" |
| 14 #include "chrome/browser/extensions/extension_test_message_listener.h" | 14 #include "chrome/browser/extensions/extension_test_message_listener.h" |
| 15 #include "chrome/browser/extensions/external_policy_loader.h" | 15 #include "chrome/browser/extensions/external_policy_loader.h" |
| 16 #include "chrome/browser/extensions/updater/extension_downloader.h" | 16 #include "chrome/browser/extensions/updater/extension_downloader.h" |
| 17 #include "chrome/browser/extensions/updater/extension_updater.h" | 17 #include "chrome/browser/extensions/updater/extension_updater.h" |
| 18 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 18 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 19 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 20 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
| 21 #include "chrome/common/chrome_notification_types.h" | 21 #include "chrome/common/chrome_notification_types.h" |
| 22 #include "chrome/common/extensions/api/content_scripts/content_scripts_handler.h
" |
| 23 #include "chrome/common/extensions/manifest_handler.h" |
| 22 #include "chrome/common/pref_names.h" | 24 #include "chrome/common/pref_names.h" |
| 23 #include "chrome/common/url_constants.h" | 25 #include "chrome/common/url_constants.h" |
| 24 #include "chrome/test/base/ui_test_utils.h" | 26 #include "chrome/test/base/ui_test_utils.h" |
| 25 #include "content/public/browser/notification_service.h" | 27 #include "content/public/browser/notification_service.h" |
| 26 #include "content/public/browser/render_view_host.h" | 28 #include "content/public/browser/render_view_host.h" |
| 27 #include "content/public/test/browser_test_utils.h" | 29 #include "content/public/test/browser_test_utils.h" |
| 28 #include "content/test/net/url_request_prepackaged_interceptor.h" | 30 #include "content/test/net/url_request_prepackaged_interceptor.h" |
| 29 #include "net/url_request/url_fetcher.h" | 31 #include "net/url_request/url_fetcher.h" |
| 30 | 32 |
| 31 using extensions::Extension; | 33 using extensions::Extension; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 EXPECT_TRUE(IsExtensionAtVersion(extension, "1.0")); | 116 EXPECT_TRUE(IsExtensionAtVersion(extension, "1.0")); |
| 115 } | 117 } |
| 116 | 118 |
| 117 #if defined(OS_WIN) | 119 #if defined(OS_WIN) |
| 118 // http://crbug.com/141913 | 120 // http://crbug.com/141913 |
| 119 #define MAYBE_InstallRequiresConfirm DISABLED_InstallRequiresConfirm | 121 #define MAYBE_InstallRequiresConfirm DISABLED_InstallRequiresConfirm |
| 120 #else | 122 #else |
| 121 #define MAYBE_InstallRequiresConfirm InstallRequiresConfirm | 123 #define MAYBE_InstallRequiresConfirm InstallRequiresConfirm |
| 122 #endif | 124 #endif |
| 123 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_InstallRequiresConfirm) { | 125 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_InstallRequiresConfirm) { |
| 126 (new extensions::ContentScriptsHandler)->Register(); |
| 127 |
| 124 // Installing the extension without an auto confirming UI should result in | 128 // Installing the extension without an auto confirming UI should result in |
| 125 // it being disabled, since good.crx has permissions that require approval. | 129 // it being disabled, since good.crx has permissions that require approval. |
| 126 ExtensionService* service = extensions::ExtensionSystem::Get( | 130 ExtensionService* service = extensions::ExtensionSystem::Get( |
| 127 browser()->profile())->extension_service(); | 131 browser()->profile())->extension_service(); |
| 128 std::string id = "ldnnhddmnhbkjipkidpdiheffobcpfmf"; | 132 std::string id = "ldnnhddmnhbkjipkidpdiheffobcpfmf"; |
| 129 ASSERT_FALSE(InstallExtension(test_data_dir_.AppendASCII("good.crx"), 0)); | 133 ASSERT_FALSE(InstallExtension(test_data_dir_.AppendASCII("good.crx"), 0)); |
| 130 ASSERT_TRUE(service->GetExtensionById(id, true)); | 134 ASSERT_TRUE(service->GetExtensionById(id, true)); |
| 131 UninstallExtension(id); | 135 UninstallExtension(id); |
| 132 | 136 |
| 133 // And the install should succeed when the permissions are accepted. | 137 // And the install should succeed when the permissions are accepted. |
| 134 ASSERT_TRUE(InstallExtensionWithUIAutoConfirm( | 138 ASSERT_TRUE(InstallExtensionWithUIAutoConfirm( |
| 135 test_data_dir_.AppendASCII("good.crx"), 1, browser())); | 139 test_data_dir_.AppendASCII("good.crx"), 1, browser())); |
| 136 UninstallExtension(id); | 140 UninstallExtension(id); |
| 141 |
| 142 extensions::ManifestHandler::ClearRegistryForTesting(); |
| 137 } | 143 } |
| 138 | 144 |
| 139 // Tests that disabling and re-enabling an extension works. | 145 // Tests that disabling and re-enabling an extension works. |
| 140 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, DisableEnable) { | 146 IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, DisableEnable) { |
| 141 ExtensionProcessManager* manager = | 147 ExtensionProcessManager* manager = |
| 142 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); | 148 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); |
| 143 ExtensionService* service = extensions::ExtensionSystem::Get( | 149 ExtensionService* service = extensions::ExtensionSystem::Get( |
| 144 browser()->profile())->extension_service(); | 150 browser()->profile())->extension_service(); |
| 145 const size_t size_before = service->extensions()->size(); | 151 const size_t size_before = service->extensions()->size(); |
| 146 | 152 |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 643 forcelist, kExtensionId, "http://localhost/autoupdate/manifest"); | 649 forcelist, kExtensionId, "http://localhost/autoupdate/manifest"); |
| 644 } | 650 } |
| 645 ASSERT_TRUE(WaitForExtensionInstall()); | 651 ASSERT_TRUE(WaitForExtensionInstall()); |
| 646 ASSERT_EQ(size_before + 1, service->extensions()->size()); | 652 ASSERT_EQ(size_before + 1, service->extensions()->size()); |
| 647 extension = service->GetExtensionById(kExtensionId, false); | 653 extension = service->GetExtensionById(kExtensionId, false); |
| 648 ASSERT_TRUE(extension); | 654 ASSERT_TRUE(extension); |
| 649 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location()); | 655 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location()); |
| 650 EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId)); | 656 EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId)); |
| 651 EXPECT_TRUE(service->disabled_extensions()->is_empty()); | 657 EXPECT_TRUE(service->disabled_extensions()->is_empty()); |
| 652 } | 658 } |
| OLD | NEW |