summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreillyg <reillyg@chromium.org>2014-11-11 15:17:12 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-11 23:17:36 +0000
commita3acbc189be0d9d5d7f37f218d8d8c124273d917 (patch)
treea7e692762cc5e2d1b62958493ce1fff97141afc7
parent5cf0ba70de7419ae008fdc89c62dbb8c69c003af (diff)
downloadchromium_src-a3acbc189be0d9d5d7f37f218d8d8c124273d917.zip
chromium_src-a3acbc189be0d9d5d7f37f218d8d8c124273d917.tar.gz
chromium_src-a3acbc189be0d9d5d7f37f218d8d8c124273d917.tar.bz2
Remove the deprecated function ExtensionService::extensions().
This function has been deprecated in favor of ExtensionRegistry::enabled_extensions(). Some caller were immediately calling ExtensionSet::GetByID() and so these callers have been converted to ExtensionRegistry::GetExtensionById() instead. Cleaning up usage of this deprecated function removes a number of files which pull in ExtensionService that really only need to use ExtensionRegistry. BUG= Review URL: https://codereview.chromium.org/709813004 Cr-Commit-Position: refs/heads/master@{#303742}
-rw-r--r--chrome/browser/apps/app_shim/app_shim_quit_interactive_uitest_mac.mm2
-rw-r--r--chrome/browser/background/background_application_list_model_unittest.cc247
-rw-r--r--chrome/browser/background/background_contents_service.cc17
-rw-r--r--chrome/browser/chrome_content_browser_client.cc24
-rw-r--r--chrome/browser/chromeos/accessibility/accessibility_manager.cc6
-rw-r--r--chrome/browser/chromeos/file_manager/file_browser_handlers.cc17
-rw-r--r--chrome/browser/chromeos/login/help_app_launcher.cc13
-rw-r--r--chrome/browser/content_settings/content_settings_internal_extension_provider.cc16
-rw-r--r--chrome/browser/content_settings/content_settings_internal_extension_provider.h4
-rw-r--r--chrome/browser/devtools/devtools_sanity_browsertest.cc7
-rw-r--r--chrome/browser/devtools/devtools_ui_bindings.cc23
-rw-r--r--chrome/browser/extensions/all_urls_apitest.cc19
-rw-r--r--chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc5
-rw-r--r--chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc8
-rw-r--r--chrome/browser/extensions/api/messaging/message_service.cc12
-rw-r--r--chrome/browser/extensions/api/preference/chrome_direct_setting_api.cc12
-rw-r--r--chrome/browser/extensions/api/preference/preference_helpers.cc33
-rw-r--r--chrome/browser/extensions/api/push_messaging/push_messaging_canary_test.cc11
-rw-r--r--chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc15
-rw-r--r--chrome/browser/extensions/bookmark_app_helper_unittest.cc21
-rw-r--r--chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc155
-rw-r--r--chrome/browser/extensions/component_loader_unittest.cc62
-rw-r--r--chrome/browser/extensions/crx_installer.cc4
-rw-r--r--chrome/browser/extensions/extension_apitest.cc24
-rw-r--r--chrome/browser/extensions/extension_browsertest.cc34
-rw-r--r--chrome/browser/extensions/extension_browsertest.h3
-rw-r--r--chrome/browser/extensions/extension_functional_browsertest.cc24
-rw-r--r--chrome/browser/extensions/extension_keybinding_registry.cc34
-rw-r--r--chrome/browser/extensions/extension_service.cc6
-rw-r--r--chrome/browser/extensions/extension_service.h6
-rw-r--r--chrome/browser/extensions/extension_startup_browsertest.cc14
-rw-r--r--chrome/browser/extensions/extension_view_host_factory.cc10
-rw-r--r--chrome/browser/extensions/menu_manager.cc16
-rw-r--r--chrome/browser/extensions/options_page_apitest.cc10
-rw-r--r--chrome/browser/extensions/page_action_browsertest.cc25
-rw-r--r--chrome/browser/extensions/plugin_apitest.cc19
-rw-r--r--chrome/browser/extensions/test_extension_service.cc5
-rw-r--r--chrome/browser/extensions/test_extension_service.h1
-rw-r--r--chrome/browser/extensions/updater/extension_updater_unittest.cc4
-rw-r--r--chrome/browser/extensions/user_script_listener_unittest.cc6
-rw-r--r--chrome/browser/extensions/webstore_startup_installer_browsertest.cc13
-rw-r--r--chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc17
-rw-r--r--chrome/browser/media/media_capture_devices_dispatcher.cc8
-rw-r--r--chrome/browser/media_galleries/media_file_system_registry.cc12
-rw-r--r--chrome/browser/media_galleries/media_galleries_preferences.cc14
-rw-r--r--chrome/browser/memory_details.cc11
-rw-r--r--chrome/browser/policy/policy_browsertest.cc12
-rw-r--r--chrome/browser/profile_resetter/profile_resetter_unittest.cc33
-rw-r--r--chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc23
-rw-r--r--chrome/browser/resources/pdf/pdf_extension_test.cc5
-rw-r--r--chrome/browser/supervised_user/supervised_user_service.cc2
-rw-r--r--chrome/browser/sync_file_system/drive_backend/sync_worker_unittest.cc4
-rw-r--r--chrome/browser/themes/theme_syncable_service_unittest.cc5
-rw-r--r--chrome/browser/ui/app_list/app_list_test_util.cc4
-rw-r--r--chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc10
-rw-r--r--chrome/browser/ui/browser.cc5
-rw-r--r--chrome/browser/ui/browser_browsertest.cc14
-rw-r--r--chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm10
-rw-r--r--chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc5
-rw-r--r--chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.cc11
-rw-r--r--chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h6
-rw-r--r--chrome/browser/ui/location_bar/origin_chip_info.cc14
-rw-r--r--chrome/browser/ui/media_utils.cc8
-rw-r--r--chrome/browser/ui/sync/profile_signin_confirmation_helper.cc23
-rw-r--r--chrome/browser/ui/views/location_bar/origin_chip_view.cc9
-rw-r--r--chrome/browser/ui/webui/extensions/extension_info_ui.cc8
-rw-r--r--chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc14
-rw-r--r--chrome/browser/ui/webui/extensions/extension_settings_handler.cc16
-rw-r--r--chrome/browser/ui/webui/identity_internals_ui.cc9
-rw-r--r--chrome/browser/ui/webui/options/website_settings_handler.cc10
-rw-r--r--chrome/browser/ui/webui/policy_ui.cc32
-rw-r--r--chrome/test/remoting/remote_desktop_browsertest.cc24
72 files changed, 613 insertions, 752 deletions
diff --git a/chrome/browser/apps/app_shim/app_shim_quit_interactive_uitest_mac.mm b/chrome/browser/apps/app_shim/app_shim_quit_interactive_uitest_mac.mm
index 15b3f35..556005e 100644
--- a/chrome/browser/apps/app_shim/app_shim_quit_interactive_uitest_mac.mm
+++ b/chrome/browser/apps/app_shim/app_shim_quit_interactive_uitest_mac.mm
@@ -70,7 +70,7 @@ class AppShimQuitTest : public PlatformAppBrowserTest {
extensions::ExtensionRegistry* registry =
extensions::ExtensionRegistry::Get(profile());
extension_id_ =
- GetExtensionByPath(&registry->enabled_extensions(), app_path_)->id();
+ GetExtensionByPath(registry->enabled_extensions(), app_path_)->id();
host_.reset(new FakeHost(profile()->GetPath().BaseName(),
extension_id_,
handler_));
diff --git a/chrome/browser/background/background_application_list_model_unittest.cc b/chrome/browser/background/background_application_list_model_unittest.cc
index ffd65d0..cac265f 100644
--- a/chrome/browser/background/background_application_list_model_unittest.cc
+++ b/chrome/browser/background/background_application_list_model_unittest.cc
@@ -21,7 +21,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_types.h"
#include "extensions/browser/extension_prefs.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/uninstall_reason.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
@@ -36,6 +36,7 @@
using extensions::APIPermission;
using extensions::Extension;
+using extensions::ExtensionRegistry;
// For ExtensionService interface when it requires a path that is not used.
base::FilePath bogus_file_pathname(const std::string& name) {
@@ -184,12 +185,8 @@ void AddEphemeralApp(const Extension* extension, ExtensionService* service) {
// extensions, of which some are Background Apps and others are not.
TEST_F(BackgroundApplicationListModelTest, MAYBE_ExplicitTest) {
InitializeAndLoadEmptyExtensionService();
- ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())->
- extension_service();
- ASSERT_TRUE(service);
- ASSERT_TRUE(service->is_ready());
- ASSERT_TRUE(service->extensions());
- ASSERT_TRUE(service->extensions()->is_empty());
+ ASSERT_TRUE(service()->is_ready());
+ ASSERT_TRUE(registry()->enabled_extensions().is_empty());
scoped_ptr<BackgroundApplicationListModel> model(
new BackgroundApplicationListModel(profile_.get()));
ASSERT_EQ(0U, model->size());
@@ -199,67 +196,61 @@ TEST_F(BackgroundApplicationListModelTest, MAYBE_ExplicitTest) {
scoped_refptr<Extension> ext3 = CreateExtension("charlie", false);
scoped_refptr<Extension> bgapp1 = CreateExtension("delta", true);
scoped_refptr<Extension> bgapp2 = CreateExtension("echo", true);
- ASSERT_TRUE(service->extensions() != NULL);
- ASSERT_EQ(0U, service->extensions()->size());
+ ASSERT_EQ(0U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
// Add alternating Extensions and Background Apps
ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
- service->AddExtension(ext1.get());
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->AddExtension(ext1.get());
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
- service->AddExtension(bgapp1.get());
- ASSERT_EQ(2U, service->extensions()->size());
+ service()->AddExtension(bgapp1.get());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
- service->AddExtension(ext2.get());
- ASSERT_EQ(3U, service->extensions()->size());
+ service()->AddExtension(ext2.get());
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
- service->AddExtension(bgapp2.get());
- ASSERT_EQ(4U, service->extensions()->size());
+ service()->AddExtension(bgapp2.get());
+ ASSERT_EQ(4U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
ASSERT_FALSE(IsBackgroundApp(*ext3.get()));
- service->AddExtension(ext3.get());
- ASSERT_EQ(5U, service->extensions()->size());
+ service()->AddExtension(ext3.get());
+ ASSERT_EQ(5U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
// Remove in FIFO order.
ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
- service->UninstallExtension(ext1->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(4U, service->extensions()->size());
+ service()->UninstallExtension(ext1->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(4U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
- service->UninstallExtension(bgapp1->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(3U, service->extensions()->size());
+ service()->UninstallExtension(bgapp1->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
- service->UninstallExtension(ext2->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(2U, service->extensions()->size());
+ service()->UninstallExtension(ext2->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
- service->UninstallExtension(bgapp2->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->UninstallExtension(bgapp2->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
ASSERT_FALSE(IsBackgroundApp(*ext3.get()));
- service->UninstallExtension(ext3->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(0U, service->extensions()->size());
+ service()->UninstallExtension(ext3->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(0U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
}
@@ -267,12 +258,8 @@ TEST_F(BackgroundApplicationListModelTest, MAYBE_ExplicitTest) {
// when extension is in a whitelist.
TEST_F(BackgroundApplicationListModelTest, PushMessagingTest) {
InitializeAndLoadEmptyExtensionService();
- ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())->
- extension_service();
- ASSERT_TRUE(service);
- ASSERT_TRUE(service->is_ready());
- ASSERT_TRUE(service->extensions());
- ASSERT_TRUE(service->extensions()->is_empty());
+ ASSERT_TRUE(service()->is_ready());
+ ASSERT_TRUE(registry()->enabled_extensions().is_empty());
scoped_ptr<BackgroundApplicationListModel> model(
new BackgroundApplicationListModel(profile_.get()));
ASSERT_EQ(0U, model->size());
@@ -286,80 +273,70 @@ TEST_F(BackgroundApplicationListModelTest, PushMessagingTest) {
CreateExtensionBase("delta", true, PUSH_MESSAGING_PERMISSION);
scoped_refptr<Extension> bgapp3 =
CreateExtensionBase("echo", true, PUSH_MESSAGING_BUT_NOT_BACKGROUND);
- ASSERT_TRUE(service->extensions() != NULL);
- ASSERT_EQ(0U, service->extensions()->size());
+ ASSERT_EQ(0U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
// Add alternating Extensions and Background Apps
ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
- service->AddExtension(ext1.get());
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->AddExtension(ext1.get());
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
- service->AddExtension(bgapp1.get());
- ASSERT_EQ(2U, service->extensions()->size());
+ service()->AddExtension(bgapp1.get());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
- service->AddExtension(ext2.get());
- ASSERT_EQ(3U, service->extensions()->size());
+ service()->AddExtension(ext2.get());
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
- service->AddExtension(bgapp2.get());
- ASSERT_EQ(4U, service->extensions()->size());
+ service()->AddExtension(bgapp2.get());
+ ASSERT_EQ(4U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
// Need to remove ext2 because it uses same id as bgapp3.
ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
- service->UninstallExtension(ext2->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(3U, service->extensions()->size());
+ service()->UninstallExtension(ext2->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp3.get()));
- service->AddExtension(bgapp3.get());
- ASSERT_EQ(4U, service->extensions()->size());
+ service()->AddExtension(bgapp3.get());
+ ASSERT_EQ(4U, registry()->enabled_extensions().size());
ASSERT_EQ(3U, model->size());
// Remove in FIFO order.
ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
- service->UninstallExtension(ext1->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(3U, service->extensions()->size());
+ service()->UninstallExtension(ext1->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(3U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
- service->UninstallExtension(bgapp1->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(2U, service->extensions()->size());
+ service()->UninstallExtension(bgapp1->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
- service->UninstallExtension(bgapp2->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->UninstallExtension(bgapp2->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp3.get()));
- service->UninstallExtension(bgapp3->id(),
- extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(0U, service->extensions()->size());
+ service()->UninstallExtension(bgapp3->id(),
+ extensions::UNINSTALL_REASON_FOR_TESTING,
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(0U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
}
// Verifies that an ephemeral app cannot trigger background mode.
TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) {
InitializeAndLoadEmptyExtensionService();
- ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())->
- extension_service();
- ASSERT_TRUE(service);
- ASSERT_TRUE(service->is_ready());
- ASSERT_TRUE(service->extensions());
- ASSERT_TRUE(service->extensions()->is_empty());
+ ASSERT_TRUE(service()->is_ready());
+ ASSERT_TRUE(registry()->enabled_extensions().is_empty());
scoped_ptr<BackgroundApplicationListModel> model(
new BackgroundApplicationListModel(profile_.get()));
ASSERT_EQ(0U, model->size());
@@ -372,39 +349,35 @@ TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) {
// Installed app with push messaging permissions can trigger background mode.
ASSERT_TRUE(IsBackgroundApp(*installed.get()));
- service->AddExtension(installed.get());
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->AddExtension(installed.get());
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
// An ephemeral app with push messaging permissions should not trigger
// background mode.
- AddEphemeralApp(ephemeral.get(), service);
+ AddEphemeralApp(ephemeral.get(), service());
ASSERT_FALSE(IsBackgroundApp(*ephemeral.get()));
- ASSERT_EQ(2U, service->extensions()->size());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
// An ephemeral app with the background permission should not trigger
// background mode.
- AddEphemeralApp(background.get(), service);
+ AddEphemeralApp(background.get(), service());
ASSERT_FALSE(IsBackgroundApp(*background.get()));
- ASSERT_EQ(3U, service->extensions()->size());
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
// If the ephemeral app becomes promoted to an installed app, it can now
// trigger background mode.
- service->PromoteEphemeralApp(ephemeral.get(), false /*from sync*/);
+ service()->PromoteEphemeralApp(ephemeral.get(), false /*from sync*/);
ASSERT_TRUE(IsBackgroundApp(*ephemeral.get()));
- ASSERT_EQ(3U, service->extensions()->size());
+ ASSERT_EQ(3U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
}
// With minimal test logic, verifies behavior with dynamic permissions.
TEST_F(BackgroundApplicationListModelTest, AddRemovePermissionsTest) {
InitializeAndLoadEmptyExtensionService();
- ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())->
- extension_service();
- ASSERT_TRUE(service);
- ASSERT_TRUE(service->is_ready());
- ASSERT_TRUE(service->extensions());
- ASSERT_TRUE(service->extensions()->is_empty());
+ ASSERT_TRUE(service()->is_ready());
+ ASSERT_TRUE(registry()->enabled_extensions().is_empty());
scoped_ptr<BackgroundApplicationListModel> model(
new BackgroundApplicationListModel(profile_.get()));
ASSERT_EQ(0U, model->size());
@@ -415,40 +388,39 @@ TEST_F(BackgroundApplicationListModelTest, AddRemovePermissionsTest) {
scoped_refptr<Extension> bgapp = CreateExtension("application", true);
ASSERT_TRUE(
bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground));
- ASSERT_TRUE(service->extensions() != NULL);
- ASSERT_EQ(0U, service->extensions()->size());
+ ASSERT_EQ(0U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
// Add one (non-background) extension and one background application
ASSERT_FALSE(IsBackgroundApp(*ext.get()));
- service->AddExtension(ext.get());
- ASSERT_EQ(1U, service->extensions()->size());
+ service()->AddExtension(ext.get());
+ ASSERT_EQ(1U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
ASSERT_TRUE(IsBackgroundApp(*bgapp.get()));
- service->AddExtension(bgapp.get());
- ASSERT_EQ(2U, service->extensions()->size());
+ service()->AddExtension(bgapp.get());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
// Change permissions back and forth
- AddBackgroundPermission(service, ext.get());
+ AddBackgroundPermission(service(), ext.get());
ASSERT_TRUE(
ext->permissions_data()->HasAPIPermission(APIPermission::kBackground));
- ASSERT_EQ(2U, service->extensions()->size());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(2U, model->size());
- RemoveBackgroundPermission(service, bgapp.get());
+ RemoveBackgroundPermission(service(), bgapp.get());
ASSERT_FALSE(
bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground));
- ASSERT_EQ(2U, service->extensions()->size());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
- RemoveBackgroundPermission(service, ext.get());
+ RemoveBackgroundPermission(service(), ext.get());
ASSERT_FALSE(
ext->permissions_data()->HasAPIPermission(APIPermission::kBackground));
- ASSERT_EQ(2U, service->extensions()->size());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
- AddBackgroundPermission(service, bgapp.get());
+ AddBackgroundPermission(service(), bgapp.get());
ASSERT_TRUE(
bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground));
- ASSERT_EQ(2U, service->extensions()->size());
+ ASSERT_EQ(2U, registry()->enabled_extensions().size());
ASSERT_EQ(1U, model->size());
}
@@ -460,6 +432,7 @@ void AddExtension(ExtensionService* service,
BackgroundApplicationListModel* model,
size_t* expected,
size_t* count) {
+ ExtensionRegistry* registry = ExtensionRegistry::Get(service->profile());
bool create_background = false;
if (rand() % 2) {
create_background = true;
@@ -474,7 +447,7 @@ void AddExtension(ExtensionService* service,
++*count;
ASSERT_EQ(*count, extensions->size());
service->AddExtension(extension.get());
- ASSERT_EQ(*count, service->extensions()->size());
+ ASSERT_EQ(*count, registry->enabled_extensions().size());
ASSERT_EQ(*expected, model->size());
}
@@ -483,12 +456,13 @@ void RemoveExtension(ExtensionService* service,
BackgroundApplicationListModel* model,
size_t* expected,
size_t* count) { // Maybe remove an extension.
+ ExtensionRegistry* registry = ExtensionRegistry::Get(service->profile());
ExtensionCollection::iterator cursor = extensions->begin();
if (cursor == extensions->end()) {
// Nothing to remove. Just verify accounting.
ASSERT_EQ(0U, *count);
ASSERT_EQ(0U, *expected);
- ASSERT_EQ(0U, service->extensions()->size());
+ ASSERT_EQ(0U, registry->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
} else {
// Randomly select which extension to remove
@@ -508,9 +482,8 @@ void RemoveExtension(ExtensionService* service,
ASSERT_EQ(*count, extensions->size());
service->UninstallExtension(extension->id(),
extensions::UNINSTALL_REASON_FOR_TESTING,
- base::Bind(&base::DoNothing),
- NULL);
- ASSERT_EQ(*count, service->extensions()->size());
+ base::Bind(&base::DoNothing), NULL);
+ ASSERT_EQ(*count, registry->enabled_extensions().size());
ASSERT_EQ(*expected, model->size());
}
}
@@ -520,12 +493,13 @@ void TogglePermission(ExtensionService* service,
BackgroundApplicationListModel* model,
size_t* expected,
size_t* count) {
+ ExtensionRegistry* registry = ExtensionRegistry::Get(service->profile());
ExtensionCollection::iterator cursor = extensions->begin();
if (cursor == extensions->end()) {
// Nothing to toggle. Just verify accounting.
ASSERT_EQ(0U, *count);
ASSERT_EQ(0U, *expected);
- ASSERT_EQ(0U, service->extensions()->size());
+ ASSERT_EQ(0U, registry->enabled_extensions().size());
ASSERT_EQ(0U, model->size());
} else {
// Randomly select which extension to toggle.
@@ -541,13 +515,13 @@ void TogglePermission(ExtensionService* service,
--*expected;
ASSERT_EQ(*count, extensions->size());
RemoveBackgroundPermission(service, extension.get());
- ASSERT_EQ(*count, service->extensions()->size());
+ ASSERT_EQ(*count, registry->enabled_extensions().size());
ASSERT_EQ(*expected, model->size());
} else {
++*expected;
ASSERT_EQ(*count, extensions->size());
AddBackgroundPermission(service, extension.get());
- ASSERT_EQ(*count, service->extensions()->size());
+ ASSERT_EQ(*count, registry->enabled_extensions().size());
ASSERT_EQ(*expected, model->size());
}
}
@@ -558,12 +532,8 @@ void TogglePermission(ExtensionService* service,
// removing extensions, of which some are Background Apps and others are not.
TEST_F(BackgroundApplicationListModelTest, RandomTest) {
InitializeAndLoadEmptyExtensionService();
- ExtensionService* service = extensions::ExtensionSystem::Get(profile_.get())->
- extension_service();
- ASSERT_TRUE(service);
- ASSERT_TRUE(service->is_ready());
- ASSERT_TRUE(service->extensions());
- ASSERT_TRUE(service->extensions()->is_empty());
+ ASSERT_TRUE(service()->is_ready());
+ ASSERT_TRUE(registry()->enabled_extensions().is_empty());
scoped_ptr<BackgroundApplicationListModel> model(
new BackgroundApplicationListModel(profile_.get()));
ASSERT_EQ(0U, model->size());
@@ -576,13 +546,14 @@ TEST_F(BackgroundApplicationListModelTest, RandomTest) {
for (int index = 0; index < kIterations; ++index) {
switch (rand() % 3) {
case 0:
- AddExtension(service, &extensions, model.get(), &expected, &count);
+ AddExtension(service(), &extensions, model.get(), &expected, &count);
break;
case 1:
- RemoveExtension(service, &extensions, model.get(), &expected, &count);
+ RemoveExtension(service(), &extensions, model.get(), &expected, &count);
break;
case 2:
- TogglePermission(service, &extensions, model.get(), &expected, &count);
+ TogglePermission(service(), &extensions, model.get(), &expected,
+ &count);
break;
default:
NOTREACHED();
diff --git a/chrome/browser/background/background_contents_service.cc b/chrome/browser/background/background_contents_service.cc
index 3b87006..5f8a3e8 100644
--- a/chrome/browser/background/background_contents_service.cc
+++ b/chrome/browser/background/background_contents_service.cc
@@ -593,18 +593,13 @@ void BackgroundContentsService::LoadBackgroundContentsFromDictionary(
void BackgroundContentsService::LoadBackgroundContentsFromManifests(
Profile* profile) {
- const extensions::ExtensionSet* extensions =
- extensions::ExtensionSystem::Get(profile)->
- extension_service()->extensions();
- for (extensions::ExtensionSet::const_iterator iter = extensions->begin();
- iter != extensions->end(); ++iter) {
- const Extension* extension = iter->get();
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) {
if (extension->is_hosted_app() &&
- BackgroundInfo::HasBackgroundPage(extension)) {
- LoadBackgroundContents(profile,
- BackgroundInfo::GetBackgroundURL(extension),
- base::ASCIIToUTF16("background"),
- base::UTF8ToUTF16(extension->id()));
+ BackgroundInfo::HasBackgroundPage(extension.get())) {
+ LoadBackgroundContents(
+ profile, BackgroundInfo::GetBackgroundURL(extension.get()),
+ base::ASCIIToUTF16("background"), base::UTF8ToUTF16(extension->id()));
}
}
}
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 6727f57..47a6735 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -223,10 +223,9 @@
#if defined(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/speech/extension_api/tts_engine_extension_api.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/guest_view/guest_view_base.h"
#include "extensions/browser/guest_view/guest_view_manager.h"
#include "extensions/browser/guest_view/web_view/web_view_guest.h"
@@ -2367,11 +2366,8 @@ bool ChromeContentBrowserClient::AllowPepperSocketAPI(
Profile* profile = Profile::FromBrowserContext(browser_context);
const extensions::ExtensionSet* extension_set = NULL;
if (profile) {
- const ExtensionService* ext_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- if (ext_service) {
- extension_set = ext_service->extensions();
- }
+ extension_set =
+ &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
}
if (private_api) {
@@ -2604,11 +2600,8 @@ bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle(
Profile* profile = Profile::FromBrowserContext(browser_context);
const extensions::ExtensionSet* extension_set = NULL;
if (profile) {
- const ExtensionService* ext_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- if (ext_service) {
- extension_set = ext_service->extensions();
- }
+ extension_set =
+ &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
}
return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
allowed_file_handle_origins_) ||
@@ -2632,11 +2625,8 @@ bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs(
Profile* profile = Profile::FromBrowserContext(browser_context);
const extensions::ExtensionSet* extension_set = NULL;
if (profile) {
- const ExtensionService* ext_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- if (ext_service) {
- extension_set = ext_service->extensions();
- }
+ extension_set =
+ &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
}
// Allow access for whitelisted applications.
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
index a795d09..620b591 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -48,6 +48,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/file_reader.h"
#include "extensions/common/extension.h"
@@ -198,8 +199,9 @@ void InjectChromeVoxContentScript(
if (!render_view_host)
return;
const extensions::Extension* extension =
- extension_service->extensions()->GetByID(
- extension_misc::kChromeVoxExtensionId);
+ extensions::ExtensionRegistry::Get(extension_service->profile())
+ ->enabled_extensions()
+ .GetByID(extension_misc::kChromeVoxExtensionId);
// Set a flag to tell ChromeVox that it's just been enabled,
// so that it won't interrupt our speech feedback enabled message.
diff --git a/chrome/browser/chromeos/file_manager/file_browser_handlers.cc b/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
index 7599c8b..27af32e 100644
--- a/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
+++ b/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
@@ -31,6 +31,7 @@
#include "content/public/browser/web_contents.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_host.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/extension_util.h"
#include "extensions/browser/lazy_background_task_queue.h"
@@ -103,10 +104,10 @@ std::string EscapedUtf8ToLower(const std::string& str) {
FileBrowserHandlerList FindFileBrowserHandlersForURL(
Profile* profile,
const GURL& selected_file_url) {
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- // In unit-tests, we may not have an ExtensionService.
- if (!service)
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile);
+ // In unit-tests, we may not have an ExtensionRegistry.
+ if (!registry)
return FileBrowserHandlerList();
// We need case-insensitive matching, and pattern in the handler is already
@@ -114,10 +115,8 @@ FileBrowserHandlerList FindFileBrowserHandlersForURL(
const GURL lowercase_url(EscapedUtf8ToLower(selected_file_url.spec()));
FileBrowserHandlerList results;
- for (extensions::ExtensionSet::const_iterator iter =
- service->extensions()->begin();
- iter != service->extensions()->end(); ++iter) {
- const Extension* extension = iter->get();
+ for (const scoped_refptr<const Extension>& extension :
+ registry->enabled_extensions()) {
if (profile->IsOffTheRecord() &&
!extensions::util::IsIncognitoEnabled(extension->id(), profile))
continue;
@@ -125,7 +124,7 @@ FileBrowserHandlerList FindFileBrowserHandlersForURL(
continue;
FileBrowserHandler::List* handler_list =
- FileBrowserHandler::GetHandlers(extension);
+ FileBrowserHandler::GetHandlers(extension.get());
if (!handler_list)
continue;
for (FileBrowserHandler::List::const_iterator handler_iter =
diff --git a/chrome/browser/chromeos/login/help_app_launcher.cc b/chrome/browser/chromeos/login/help_app_launcher.cc
index 5dc70d4..dc9f473 100644
--- a/chrome/browser/chromeos/login/help_app_launcher.cc
+++ b/chrome/browser/chromeos/login/help_app_launcher.cc
@@ -10,16 +10,16 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/login/helper.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/locale_settings.h"
#include "content/public/browser/browser_thread.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/rect.h"
#include "ui/gfx/size.h"
using content::BrowserThread;
+using extensions::ExtensionRegistry;
namespace {
@@ -39,18 +39,17 @@ HelpAppLauncher::HelpAppLauncher(gfx::NativeWindow parent_window)
void HelpAppLauncher::ShowHelpTopic(HelpTopic help_topic_id) {
Profile* profile = ProfileHelper::GetSigninProfile();
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
- DCHECK(service);
- if (!service)
+ DCHECK(registry);
+ if (!registry)
return;
GURL url(base::StringPrintf(kHelpAppFormat,
static_cast<int>(help_topic_id)));
// HelpApp component extension presents only in official builds so we can
// show help only when the extensions is installed.
- if (service->extensions()->GetByID(url.host()))
+ if (registry->enabled_extensions().GetByID(url.host()))
ShowHelpTopicDialog(profile, GURL(url));
}
diff --git a/chrome/browser/content_settings/content_settings_internal_extension_provider.cc b/chrome/browser/content_settings/content_settings_internal_extension_provider.cc
index ab4f54d..68d970b 100644
--- a/chrome/browser/content_settings/content_settings_internal_extension_provider.cc
+++ b/chrome/browser/content_settings/content_settings_internal_extension_provider.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/content_settings/content_settings_internal_extension_provider.h"
-#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_content_client.h"
#include "chrome/common/extensions/api/plugins/plugins_handler.h"
#include "components/content_settings/core/browser/content_settings_rule.h"
@@ -13,6 +13,7 @@
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
#include "extensions/browser/extension_host.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/notification_types.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
@@ -23,17 +24,14 @@ using extensions::UnloadedExtensionInfo;
namespace content_settings {
-InternalExtensionProvider::InternalExtensionProvider(
- ExtensionService* extension_service)
+InternalExtensionProvider::InternalExtensionProvider(Profile* profile)
: registrar_(new content::NotificationRegistrar) {
// Whitelist all extensions loaded so far.
- const extensions::ExtensionSet* extensions = extension_service->extensions();
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- if (extensions::PluginInfo::HasPlugins(it->get()))
- SetContentSettingForExtension(it->get(), CONTENT_SETTING_ALLOW);
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) {
+ if (extensions::PluginInfo::HasPlugins(extension.get()))
+ SetContentSettingForExtension(extension.get(), CONTENT_SETTING_ALLOW);
}
- Profile* profile = extension_service->profile();
registrar_->Add(this,
extensions::NOTIFICATION_EXTENSION_HOST_CREATED,
content::Source<Profile>(profile));
diff --git a/chrome/browser/content_settings/content_settings_internal_extension_provider.h b/chrome/browser/content_settings/content_settings_internal_extension_provider.h
index ddc91bf..2fcb498 100644
--- a/chrome/browser/content_settings/content_settings_internal_extension_provider.h
+++ b/chrome/browser/content_settings/content_settings_internal_extension_provider.h
@@ -13,7 +13,7 @@
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
-class ExtensionService;
+class Profile;
namespace extensions {
class Extension;
@@ -25,7 +25,7 @@ namespace content_settings {
class InternalExtensionProvider : public ObservableProvider,
public content::NotificationObserver {
public:
- explicit InternalExtensionProvider(ExtensionService* extension_service);
+ explicit InternalExtensionProvider(Profile* profile);
~InternalExtensionProvider() override;
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc
index c80de2c..ef572d7 100644
--- a/chrome/browser/devtools/devtools_sanity_browsertest.cc
+++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -45,6 +45,7 @@
#include "content/public/browser/worker_service_observer.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/notification_types.h"
#include "extensions/common/switches.h"
@@ -315,7 +316,9 @@ class DevToolsExtensionTest : public DevToolsSanityTest,
bool LoadExtensionFromPath(const base::FilePath& path) {
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
- size_t num_before = service->extensions()->size();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ size_t num_before = registry->enabled_extensions().size();
{
content::NotificationRegistrar registrar;
registrar.Add(this,
@@ -329,7 +332,7 @@ class DevToolsExtensionTest : public DevToolsSanityTest,
content::RunMessageLoop();
timeout.Cancel();
}
- size_t num_after = service->extensions()->size();
+ size_t num_after = registry->enabled_extensions().size();
if (num_after != (num_before + 1))
return false;
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
index c5dcca5..2dcdbe6 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -16,7 +16,6 @@
#include "chrome/browser/chrome_page_zoom.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/themes/theme_properties.h"
@@ -45,8 +44,7 @@
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/renderer_preferences.h"
#include "content/public/common/url_constants.h"
-#include "extensions/browser/extension_system.h"
-#include "extensions/common/extension_set.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/permissions/permissions_data.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/page_transition_types.h"
@@ -796,27 +794,26 @@ void DevToolsUIBindings::UpdateTheme() {
}
void DevToolsUIBindings::AddDevToolsExtensionsToClient() {
- const ExtensionService* extension_service = extensions::ExtensionSystem::Get(
- profile_->GetOriginalProfile())->extension_service();
- if (!extension_service)
+ const extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile_->GetOriginalProfile());
+ if (!registry)
return;
- const extensions::ExtensionSet* extensions = extension_service->extensions();
base::ListValue results;
- for (extensions::ExtensionSet::const_iterator extension(extensions->begin());
- extension != extensions->end(); ++extension) {
- if (extensions::chrome_manifest_urls::GetDevToolsPage(extension->get())
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
+ if (extensions::chrome_manifest_urls::GetDevToolsPage(extension.get())
.is_empty())
continue;
base::DictionaryValue* extension_info = new base::DictionaryValue();
extension_info->Set(
"startPage",
new base::StringValue(extensions::chrome_manifest_urls::GetDevToolsPage(
- extension->get()).spec()));
- extension_info->Set("name", new base::StringValue((*extension)->name()));
+ extension.get()).spec()));
+ extension_info->Set("name", new base::StringValue(extension->name()));
extension_info->Set("exposeExperimentalAPIs",
new base::FundamentalValue(
- (*extension)->permissions_data()->HasAPIPermission(
+ extension->permissions_data()->HasAPIPermission(
extensions::APIPermission::kExperimental)));
results.Append(extension_info);
}
diff --git a/chrome/browser/extensions/all_urls_apitest.cc b/chrome/browser/extensions/all_urls_apitest.cc
index 6422c64..b251d72 100644
--- a/chrome/browser/extensions/all_urls_apitest.cc
+++ b/chrome/browser/extensions/all_urls_apitest.cc
@@ -4,13 +4,12 @@
#include "base/command_line.h"
#include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/test_switches.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/crx_file/id_util.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extensions_client.h"
#include "extensions/test/extension_test_message_listener.h"
@@ -46,12 +45,12 @@ IN_PROC_BROWSER_TEST_F(AllUrlsApiTest, MAYBE_WhitelistedExtension) {
extensions::ExtensionsClient::Get()->SetScriptingWhitelist(whitelist);
// Then load extensions.
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- const size_t size_before = service->extensions()->size();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
ASSERT_TRUE(LoadExtension(extension_dir1));
ASSERT_TRUE(LoadExtension(extension_dir2));
- EXPECT_EQ(size_before + 2, service->extensions()->size());
+ EXPECT_EQ(size_before + 2, registry->enabled_extensions().size());
std::string url;
@@ -107,12 +106,12 @@ IN_PROC_BROWSER_TEST_F(AllUrlsApiTest, RegularExtensions) {
base::FilePath extension_dir2 = test_data_dir_.AppendASCII("all_urls")
.AppendASCII("execute_script");
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- const size_t size_before = service->extensions()->size();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
ASSERT_TRUE(LoadExtension(extension_dir1));
ASSERT_TRUE(LoadExtension(extension_dir2));
- EXPECT_EQ(size_before + 2, service->extensions()->size());
+ EXPECT_EQ(size_before + 2, registry->enabled_extensions().size());
// Now verify we can script a regular http page.
ASSERT_TRUE(StartEmbeddedTestServer());
diff --git a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
index d557eb3..53744d7 100644
--- a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
+++ b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
@@ -20,6 +20,7 @@
#include "extensions/browser/api/declarative/rules_cache_delegate.h"
#include "extensions/browser/api/declarative/test_rules_registry.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/value_store/testing_value_store.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
@@ -345,7 +346,9 @@ TEST_F(RulesRegistryWithCacheTest, RulesPreservedAcrossRestart) {
&error));
ASSERT_TRUE(error.empty());
extension_service->AddExtension(extension.get());
- EXPECT_TRUE(extension_service->extensions()->Contains(extension->id()));
+ EXPECT_TRUE(extensions::ExtensionRegistry::Get(env_.profile())
+ ->enabled_extensions()
+ .Contains(extension->id()));
EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
APIPermission::kDeclarativeWebRequest));
env_.GetExtensionSystem()->SetReady();
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc
index cf5c23d..bb47bd6 100644
--- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc
+++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc
@@ -8,7 +8,6 @@
#include "base/strings/stringprintf.h"
#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
#include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/net/nss_context.h"
#include "chrome/browser/net/url_request_mock_util.h"
#include "chromeos/chromeos_switches.h"
@@ -21,6 +20,7 @@
#include "content/public/test/test_utils.h"
#include "crypto/nss_util_internal.h"
#include "crypto/scoped_test_system_nss_key_slot.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/notification_types.h"
#include "net/base/net_errors.h"
#include "net/cert/nss_cert_database.h"
@@ -373,10 +373,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest,
base::FilePath extension_path =
test_data_dir_.AppendASCII("enterprise_platform_keys");
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile())->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile());
const extensions::Extension* extension =
- GetExtensionByPath(service->extensions(), extension_path);
+ GetExtensionByPath(registry->enabled_extensions(), extension_path);
ASSERT_FALSE(extension->install_warnings().empty());
EXPECT_EQ(
"'enterprise.platformKeys' is not allowed for specified install "
diff --git a/chrome/browser/extensions/api/messaging/message_service.cc b/chrome/browser/extensions/api/messaging/message_service.cc
index 68fa086..19f72f0 100644
--- a/chrome/browser/extensions/api/messaging/message_service.cc
+++ b/chrome/browser/extensions/api/messaging/message_service.cc
@@ -31,6 +31,7 @@
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_host.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/lazy_background_task_queue.h"
@@ -244,10 +245,9 @@ void MessageService::OpenChannelToExtension(
return;
BrowserContext* context = source->GetBrowserContext();
- ExtensionSystem* extension_system = ExtensionSystem::Get(context);
- DCHECK(extension_system);
- const Extension* target_extension = extension_system->extension_service()->
- extensions()->GetByID(target_extension_id);
+ ExtensionRegistry* registry = ExtensionRegistry::Get(context);
+ const Extension* target_extension =
+ registry->enabled_extensions().GetByID(target_extension_id);
if (!target_extension) {
DispatchOnDisconnect(
source, receiver_port_id, kReceivingEndDoesntExistError);
@@ -724,9 +724,9 @@ void MessageService::GotChannelID(scoped_ptr<OpenChannelParams> params,
BrowserContext* context = params->source->GetBrowserContext();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(context);
const Extension* target_extension =
- ExtensionSystem::Get(context)->extension_service()->extensions()->GetByID(
- params->target_extension_id);
+ registry->enabled_extensions().GetByID(params->target_extension_id);
if (!target_extension) {
pending_tls_channel_id_channels_.erase(channel_id);
DispatchOnDisconnect(
diff --git a/chrome/browser/extensions/api/preference/chrome_direct_setting_api.cc b/chrome/browser/extensions/api/preference/chrome_direct_setting_api.cc
index fe1325a..93eb8d7 100644
--- a/chrome/browser/extensions/api/preference/chrome_direct_setting_api.cc
+++ b/chrome/browser/extensions/api/preference/chrome_direct_setting_api.cc
@@ -11,9 +11,8 @@
#include "base/prefs/pref_service.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/extensions/api/preference/preference_api_constants.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
namespace extensions {
namespace chromedirectsetting {
@@ -137,12 +136,9 @@ void ChromeDirectSettingAPI::OnPrefChanged(
base::ListValue args;
args.Append(result.release());
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile_)->extension_service();
- const ExtensionSet* extensions = extension_service->extensions();
- for (ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- const std::string& extension_id = (*it)->id();
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ ExtensionRegistry::Get(profile_)->enabled_extensions()) {
+ const std::string& extension_id = extension->id();
if (router->ExtensionHasEventListener(extension_id, event_name)) {
scoped_ptr<base::ListValue> args_copy(args.DeepCopy());
scoped_ptr<Event> event(new Event(event_name, args_copy.Pass()));
diff --git a/chrome/browser/extensions/api/preference/preference_helpers.cc b/chrome/browser/extensions/api/preference/preference_helpers.cc
index 237e365..86f39d5 100644
--- a/chrome/browser/extensions/api/preference/preference_helpers.cc
+++ b/chrome/browser/extensions/api/preference/preference_helpers.cc
@@ -8,12 +8,11 @@
#include "base/prefs/pref_service.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/preference/preference_api.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_prefs.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
#include "extensions/common/permissions/permissions_data.h"
@@ -93,23 +92,20 @@ void DispatchEventToExtensions(
EventRouter* router = EventRouter::Get(profile);
if (!router || !router->HasEventListener(event_name))
return;
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile)->extension_service();
- const ExtensionSet* extensions = extension_service->extensions();
- for (ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- std::string extension_id = (*it)->id();
+
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ ExtensionRegistry::Get(profile)->enabled_extensions()) {
// TODO(bauerb): Only iterate over registered event listeners.
- if (router->ExtensionHasEventListener(extension_id, event_name) &&
- (*it)->permissions_data()->HasAPIPermission(permission) &&
- (!incognito || IncognitoInfo::IsSplitMode(it->get()) ||
- util::CanCrossIncognito(it->get(), profile))) {
+ if (router->ExtensionHasEventListener(extension->id(), event_name) &&
+ extension->permissions_data()->HasAPIPermission(permission) &&
+ (!incognito || IncognitoInfo::IsSplitMode(extension.get()) ||
+ util::CanCrossIncognito(extension.get(), profile))) {
// Inject level of control key-value.
base::DictionaryValue* dict;
bool rv = args->GetDictionary(0, &dict);
DCHECK(rv);
std::string level_of_control =
- GetLevelOfControl(profile, extension_id, browser_pref, incognito);
+ GetLevelOfControl(profile, extension->id(), browser_pref, incognito);
dict->SetString(kLevelOfControlKey, level_of_control);
// If the extension is in incognito split mode,
@@ -118,15 +114,12 @@ void DispatchEventToExtensions(
// incognito pref has not alredy been set
Profile* restrict_to_profile = NULL;
bool from_incognito = false;
- if (IncognitoInfo::IsSplitMode(it->get())) {
- if (incognito &&
- util::IsIncognitoEnabled(extension_id, profile)) {
+ if (IncognitoInfo::IsSplitMode(extension.get())) {
+ if (incognito && util::IsIncognitoEnabled(extension->id(), profile)) {
restrict_to_profile = profile->GetOffTheRecordProfile();
} else if (!incognito &&
PreferenceAPI::Get(profile)->DoesExtensionControlPref(
- extension_id,
- browser_pref,
- &from_incognito) &&
+ extension->id(), browser_pref, &from_incognito) &&
from_incognito) {
restrict_to_profile = profile;
}
@@ -135,7 +128,7 @@ void DispatchEventToExtensions(
scoped_ptr<base::ListValue> args_copy(args->DeepCopy());
scoped_ptr<Event> event(new Event(event_name, args_copy.Pass()));
event->restrict_to_browser_context = restrict_to_profile;
- router->DispatchEventToExtension(extension_id, event.Pass());
+ router->DispatchEventToExtension(extension->id(), event.Pass());
}
}
}
diff --git a/chrome/browser/extensions/api/push_messaging/push_messaging_canary_test.cc b/chrome/browser/extensions/api/push_messaging/push_messaging_canary_test.cc
index 76a3ef5..af48842 100644
--- a/chrome/browser/extensions/api/push_messaging/push_messaging_canary_test.cc
+++ b/chrome/browser/extensions/api/push_messaging/push_messaging_canary_test.cc
@@ -9,13 +9,12 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/api/push_messaging/sync_setup_helper.h"
#include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/render_frame_host.h"
-#include "extensions/common/extension_set.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/test/result_catcher.h"
#include "net/dns/mock_host_resolver.h"
@@ -133,19 +132,19 @@ class PushMessagingCanaryTest : public ExtensionApiTest {
IN_PROC_BROWSER_TEST_F(PushMessagingCanaryTest, MANUAL_ReceivesPush) {
InitializeSync();
- const ExtensionSet* installed_extensions = extension_service()->extensions();
- if (!installed_extensions->Contains(kTestExtensionId)) {
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
+ if (!registry->enabled_extensions().GetByID(kTestExtensionId)) {
const Extension* extension =
LoadExtension(test_data_dir_.AppendASCII("push_messaging_canary"));
ASSERT_TRUE(extension);
}
- ASSERT_TRUE(installed_extensions->Contains(kTestExtensionId));
+ ASSERT_TRUE(registry->enabled_extensions().GetByID(kTestExtensionId));
ResultCatcher catcher;
catcher.RestrictToBrowserContext(profile());
const Extension* extension =
- extension_service()->extensions()->GetByID(kTestExtensionId);
+ registry->enabled_extensions().GetByID(kTestExtensionId);
ASSERT_TRUE(extension);
ui_test_utils::NavigateToURL(
browser(), extension->GetResourceURL("push_messaging_canary.html"));
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
index fdc9df0..2d07290 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
@@ -8,14 +8,13 @@
#include "base/strings/string_number_conversions.h"
#include "base/task_runner_util.h"
#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/media_device_id.h"
#include "content/public/browser/resource_context.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/event_router.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/permissions/permissions_data.h"
#include "media/audio/audio_manager_base.h"
@@ -84,14 +83,12 @@ void WebrtcAudioPrivateEventService::SignalEvent() {
EventRouter* router = EventRouter::Get(browser_context_);
if (!router || !router->HasEventListener(kEventName))
return;
- ExtensionService* extension_service =
- ExtensionSystem::Get(browser_context_)->extension_service();
- const ExtensionSet* extensions = extension_service->extensions();
- for (ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- const std::string& extension_id = (*it)->id();
+
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ ExtensionRegistry::Get(browser_context_)->enabled_extensions()) {
+ const std::string& extension_id = extension->id();
if (router->ExtensionHasEventListener(extension_id, kEventName) &&
- (*it)->permissions_data()->HasAPIPermission("webrtcAudioPrivate")) {
+ extension->permissions_data()->HasAPIPermission("webrtcAudioPrivate")) {
scoped_ptr<Event> event(
new Event(kEventName, make_scoped_ptr(new base::ListValue()).Pass()));
router->DispatchEventToExtension(extension_id, event.Pass());
diff --git a/chrome/browser/extensions/bookmark_app_helper_unittest.cc b/chrome/browser/extensions/bookmark_app_helper_unittest.cc
index 6850826..9092c51 100644
--- a/chrome/browser/extensions/bookmark_app_helper_unittest.cc
+++ b/chrome/browser/extensions/bookmark_app_helper_unittest.cc
@@ -53,7 +53,7 @@ class BookmarkAppHelperExtensionServiceTest
extensions::ExtensionServiceTestBase::SetUp();
InitializeEmptyExtensionService();
service_->Init();
- EXPECT_EQ(0u, service_->extensions()->size());
+ EXPECT_EQ(0u, registry()->enabled_extensions().size());
}
void TearDown() override {
@@ -171,7 +171,7 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) {
const Extension* extension =
service_->GetInstalledExtension(helper.extension()->id());
EXPECT_TRUE(extension);
- EXPECT_EQ(1u, service_->extensions()->size());
+ EXPECT_EQ(1u, registry()->enabled_extensions().size());
EXPECT_TRUE(extension->from_bookmark());
EXPECT_EQ(kAppTitle, extension->name());
EXPECT_EQ(kAppDescription, extension->description());
@@ -203,7 +203,7 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppWithManifest) {
const Extension* extension =
service_->GetInstalledExtension(helper.extension()->id());
EXPECT_TRUE(extension);
- EXPECT_EQ(1u, service_->extensions()->size());
+ EXPECT_EQ(1u, registry()->enabled_extensions().size());
EXPECT_TRUE(extension->from_bookmark());
EXPECT_EQ(kAppTitle, extension->name());
EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension));
@@ -226,7 +226,7 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) {
const Extension* extension =
service_->GetInstalledExtension(helper.extension()->id());
EXPECT_TRUE(extension);
- EXPECT_EQ(1u, service_->extensions()->size());
+ EXPECT_EQ(1u, registry()->enabled_extensions().size());
EXPECT_TRUE(extension->from_bookmark());
EXPECT_EQ(kAppTitle, extension->name());
EXPECT_EQ(kAppDescription, extension->description());
@@ -264,7 +264,8 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) {
{
EXPECT_EQ(1u, registry()->enabled_extensions().size());
- const Extension* extension = service_->extensions()->begin()->get();
+ const Extension* extension =
+ registry()->enabled_extensions().begin()->get();
EXPECT_TRUE(extension->from_bookmark());
EXPECT_EQ(kAppTitle, extension->name());
EXPECT_EQ(kAppDescription, extension->description());
@@ -282,7 +283,8 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) {
{
EXPECT_EQ(1u, registry()->enabled_extensions().size());
- const Extension* extension = service_->extensions()->begin()->get();
+ const Extension* extension =
+ registry()->enabled_extensions().begin()->get();
EXPECT_TRUE(extension->from_bookmark());
EXPECT_EQ(kAlternativeAppTitle, extension->name());
EXPECT_EQ(kAppDescription, extension->description());
@@ -313,10 +315,9 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) {
EXPECT_EQ(1u, registry()->enabled_extensions().size());
base::RunLoop run_loop;
extensions::GetWebApplicationInfoFromApp(
- profile_.get(),
- service_->extensions()->begin()->get(),
- base::Bind(
- &ValidateWebApplicationInfo, run_loop.QuitClosure(), web_app_info));
+ profile_.get(), registry()->enabled_extensions().begin()->get(),
+ base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(),
+ web_app_info));
run_loop.Run();
}
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
index a807334..f2f95b0 100644
--- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
+++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
@@ -41,6 +41,7 @@
#include "extensions/common/manifest_handlers/web_accessible_resources_info.h"
#include "extensions/common/switches.h"
+using content::BrowserContext;
using content::BrowserThread;
using content::BrowserURLHandler;
using content::RenderViewHost;
@@ -65,7 +66,7 @@ enum RenderProcessHostPrivilege {
RenderProcessHostPrivilege GetPrivilegeRequiredByUrl(
const GURL& url,
- ExtensionService* service) {
+ ExtensionRegistry* registry) {
// Default to a normal renderer cause it is lower privileged. This should only
// occur if the URL on a site instance is either malformed, or uninitialized.
// If it is malformed, then there is no need for better privileges anyways.
@@ -78,7 +79,8 @@ RenderProcessHostPrivilege GetPrivilegeRequiredByUrl(
if (!url.SchemeIs(kExtensionScheme))
return PRIV_NORMAL;
- const Extension* extension = service->extensions()->GetByID(url.host());
+ const Extension* extension =
+ registry->enabled_extensions().GetByID(url.host());
if (extension && AppIsolationInfo::HasIsolatedStorage(extension))
return PRIV_ISOLATED;
if (extension && extension->is_hosted_app())
@@ -89,15 +91,15 @@ RenderProcessHostPrivilege GetPrivilegeRequiredByUrl(
RenderProcessHostPrivilege GetProcessPrivilege(
content::RenderProcessHost* process_host,
ProcessMap* process_map,
- ExtensionService* service) {
+ ExtensionRegistry* registry) {
std::set<std::string> extension_ids =
process_map->GetExtensionsInProcess(process_host->GetID());
if (extension_ids.empty())
return PRIV_NORMAL;
- for (std::set<std::string>::iterator iter = extension_ids.begin();
- iter != extension_ids.end(); ++iter) {
- const Extension* extension = service->GetExtensionById(*iter, false);
+ for (const std::string& extension_id : extension_ids) {
+ const Extension* extension =
+ registry->enabled_extensions().GetByID(extension_id);
if (extension && AppIsolationInfo::HasIsolatedStorage(extension))
return PRIV_ISOLATED;
if (extension && extension->is_hosted_app())
@@ -124,13 +126,12 @@ GURL ChromeContentBrowserClientExtensionsPart::GetEffectiveURL(
// If the input |url| is part of an installed app, the effective URL is an
// extension URL with the ID of that extension as the host. This has the
// effect of grouping apps together in a common SiteInstance.
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!extension_service)
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
+ if (!registry)
return url;
const Extension* extension =
- extension_service->extensions()->GetHostedAppByURL(url);
+ registry->enabled_extensions().GetHostedAppByURL(url);
if (!extension)
return url;
@@ -150,13 +151,12 @@ bool ChromeContentBrowserClientExtensionsPart::ShouldUseProcessPerSite(
if (!effective_url.SchemeIs(kExtensionScheme))
return false;
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!extension_service)
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
+ if (!registry)
return false;
const Extension* extension =
- extension_service->extensions()->GetExtensionOrAppByURL(effective_url);
+ registry->enabled_extensions().GetByID(effective_url.host());
if (!extension)
return false;
@@ -186,20 +186,17 @@ bool ChromeContentBrowserClientExtensionsPart::CanCommitURL(
// load in any process (e.g., in an iframe). However, the Chrome Web Store
// cannot be loaded in iframes and should never be requested outside its
// process.
- Profile* profile =
- Profile::FromBrowserContext(process_host->GetBrowserContext());
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ ExtensionRegistry* registry =
+ ExtensionRegistry::Get(process_host->GetBrowserContext());
+ if (!registry)
return true;
const Extension* new_extension =
- service->extensions()->GetExtensionOrAppByURL(url);
- if (new_extension &&
- new_extension->is_hosted_app() &&
+ registry->enabled_extensions().GetExtensionOrAppByURL(url);
+ if (new_extension && new_extension->is_hosted_app() &&
new_extension->id() == extensions::kWebStoreAppId &&
- !ProcessMap::Get(profile)->Contains(
- new_extension->id(), process_host->GetID())) {
+ !ProcessMap::Get(process_host->GetBrowserContext())
+ ->Contains(new_extension->id(), process_host->GetID())) {
return false;
}
return true;
@@ -212,21 +209,20 @@ bool ChromeContentBrowserClientExtensionsPart::IsSuitableHost(
const GURL& site_url) {
DCHECK(profile);
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
ProcessMap* process_map = ProcessMap::Get(profile);
// These may be NULL during tests. In that case, just assume any site can
// share any host.
- if (!service || !process_map)
+ if (!registry || !process_map)
return true;
// Otherwise, just make sure the process privilege matches the privilege
// required by the site.
RenderProcessHostPrivilege privilege_required =
- GetPrivilegeRequiredByUrl(site_url, service);
- return GetProcessPrivilege(process_host, process_map, service) ==
- privilege_required;
+ GetPrivilegeRequiredByUrl(site_url, registry);
+ return GetProcessPrivilege(process_host, process_map, registry) ==
+ privilege_required;
}
// static
@@ -237,14 +233,14 @@ ChromeContentBrowserClientExtensionsPart::ShouldTryToUseExistingProcessHost(
// with background pages. It uses a globally set percentage of processes to
// run such extensions and if the limit is exceeded, it returns true, to
// indicate to the content module to group extensions together.
- ExtensionService* service = profile ?
- ExtensionSystem::Get(profile)->extension_service() : NULL;
- if (!service)
+ ExtensionRegistry* registry =
+ profile ? ExtensionRegistry::Get(profile) : NULL;
+ if (!registry)
return false;
// We have to have a valid extension with background page to proceed.
const Extension* extension =
- service->extensions()->GetExtensionOrAppByURL(url);
+ registry->enabled_extensions().GetExtensionOrAppByURL(url);
if (!extension)
return false;
if (!BackgroundInfo::HasBackgroundPage(extension))
@@ -277,13 +273,11 @@ bool ChromeContentBrowserClientExtensionsPart::
ShouldSwapBrowsingInstancesForNavigation(SiteInstance* site_instance,
const GURL& current_url,
const GURL& new_url) {
- // If we don't have an ExtensionService, then rely on the SiteInstance logic
+ // If we don't have an ExtensionRegistry, then rely on the SiteInstance logic
// in RenderFrameHostManager to decide when to swap.
- Profile* profile =
- Profile::FromBrowserContext(site_instance->GetBrowserContext());
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ ExtensionRegistry* registry =
+ ExtensionRegistry::Get(site_instance->GetBrowserContext());
+ if (!registry)
return false;
// We must use a new BrowsingInstance (forcing a process swap and disabling
@@ -296,14 +290,14 @@ bool ChromeContentBrowserClientExtensionsPart::
// to/from a hosted app will still trigger a SiteInstance swap in
// RenderFrameHostManager.
const Extension* current_extension =
- service->extensions()->GetExtensionOrAppByURL(current_url);
+ registry->enabled_extensions().GetExtensionOrAppByURL(current_url);
if (current_extension &&
current_extension->is_hosted_app() &&
current_extension->id() != extensions::kWebStoreAppId)
current_extension = NULL;
const Extension* new_extension =
- service->extensions()->GetExtensionOrAppByURL(new_url);
+ registry->enabled_extensions().GetExtensionOrAppByURL(new_url);
if (new_extension &&
new_extension->is_hosted_app() &&
new_extension->id() != extensions::kWebStoreAppId)
@@ -312,7 +306,7 @@ bool ChromeContentBrowserClientExtensionsPart::
// First do a process check. We should force a BrowsingInstance swap if the
// current process doesn't know about new_extension, even if current_extension
// is somehow the same as new_extension.
- ProcessMap* process_map = ProcessMap::Get(profile);
+ ProcessMap* process_map = ProcessMap::Get(site_instance->GetBrowserContext());
if (new_extension &&
site_instance->HasProcess() &&
!process_map->Contains(
@@ -349,20 +343,19 @@ bool ChromeContentBrowserClientExtensionsPart::ShouldAllowOpenURL(
(from_url.SchemeIsHTTPOrHTTPS() || from_url.SchemeIs(kExtensionScheme))) {
Profile* profile = Profile::FromBrowserContext(
site_instance->GetProcess()->GetBrowserContext());
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service) {
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
+ if (!registry) {
*result = true;
return true;
}
const Extension* extension =
- service->extensions()->GetExtensionOrAppByURL(to_url);
+ registry->enabled_extensions().GetExtensionOrAppByURL(to_url);
if (!extension) {
*result = true;
return true;
}
const Extension* from_extension =
- service->extensions()->GetExtensionOrAppByURL(
+ registry->enabled_extensions().GetExtensionOrAppByURL(
site_instance->GetSiteURL());
if (from_extension && from_extension->id() == extension->id()) {
*result = true;
@@ -404,68 +397,59 @@ void ChromeContentBrowserClientExtensionsPart::RenderProcessWillLaunch(
void ChromeContentBrowserClientExtensionsPart::SiteInstanceGotProcess(
SiteInstance* site_instance) {
- Profile* profile = Profile::FromBrowserContext(
- site_instance->GetProcess()->GetBrowserContext());
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ BrowserContext* context = site_instance->GetProcess()->GetBrowserContext();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(context);
+ if (!registry)
return;
- const Extension* extension = service->extensions()->GetExtensionOrAppByURL(
- site_instance->GetSiteURL());
+ const Extension* extension =
+ registry->enabled_extensions().GetExtensionOrAppByURL(
+ site_instance->GetSiteURL());
if (!extension)
return;
- ProcessMap::Get(profile)->Insert(extension->id(),
+ ProcessMap::Get(context)->Insert(extension->id(),
site_instance->GetProcess()->GetID(),
site_instance->GetId());
- BrowserThread::PostTask(BrowserThread::IO,
- FROM_HERE,
- base::Bind(&InfoMap::RegisterExtensionProcess,
- ExtensionSystem::Get(profile)->info_map(),
- extension->id(),
- site_instance->GetProcess()->GetID(),
- site_instance->GetId()));
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&InfoMap::RegisterExtensionProcess,
+ ExtensionSystem::Get(context)->info_map(), extension->id(),
+ site_instance->GetProcess()->GetID(), site_instance->GetId()));
}
void ChromeContentBrowserClientExtensionsPart::SiteInstanceDeleting(
SiteInstance* site_instance) {
- Profile* profile =
- Profile::FromBrowserContext(site_instance->GetBrowserContext());
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ BrowserContext* context = site_instance->GetBrowserContext();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(context);
+ if (!registry)
return;
- const Extension* extension = service->extensions()->GetExtensionOrAppByURL(
- site_instance->GetSiteURL());
+ const Extension* extension =
+ registry->enabled_extensions().GetExtensionOrAppByURL(
+ site_instance->GetSiteURL());
if (!extension)
return;
- ProcessMap::Get(profile)->Remove(extension->id(),
+ ProcessMap::Get(context)->Remove(extension->id(),
site_instance->GetProcess()->GetID(),
site_instance->GetId());
- BrowserThread::PostTask(BrowserThread::IO,
- FROM_HERE,
- base::Bind(&InfoMap::UnregisterExtensionProcess,
- ExtensionSystem::Get(profile)->info_map(),
- extension->id(),
- site_instance->GetProcess()->GetID(),
- site_instance->GetId()));
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&InfoMap::UnregisterExtensionProcess,
+ ExtensionSystem::Get(context)->info_map(), extension->id(),
+ site_instance->GetProcess()->GetID(), site_instance->GetId()));
}
void ChromeContentBrowserClientExtensionsPart::OverrideWebkitPrefs(
RenderViewHost* rvh,
const GURL& url,
WebPreferences* web_prefs) {
- Profile* profile =
- Profile::FromBrowserContext(rvh->GetProcess()->GetBrowserContext());
-
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ const ExtensionRegistry* registry =
+ ExtensionRegistry::Get(rvh->GetProcess()->GetBrowserContext());
+ if (!registry)
return;
// Note: it's not possible for kExtensionsScheme to change during the lifetime
@@ -481,7 +465,8 @@ void ChromeContentBrowserClientExtensionsPart::OverrideWebkitPrefs(
WebContents* web_contents = WebContents::FromRenderViewHost(rvh);
ViewType view_type = GetViewType(web_contents);
- const Extension* extension = service->extensions()->GetByID(site_url.host());
+ const Extension* extension =
+ registry->enabled_extensions().GetByID(site_url.host());
extension_webkit_preferences::SetPreferences(extension, view_type, web_prefs);
}
diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc
index a608afb..55d592c 100644
--- a/chrome/browser/extensions/component_loader_unittest.cc
+++ b/chrome/browser/extensions/component_loader_unittest.cc
@@ -16,6 +16,7 @@
#include "chrome/test/base/testing_profile.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "content/public/test/test_browser_thread_bundle.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -30,23 +31,25 @@ class MockExtensionService : public TestExtensionService {
private:
bool ready_;
size_t unloaded_count_;
- ExtensionSet extension_set_;
+ ExtensionRegistry* registry_;
public:
- MockExtensionService() : ready_(false), unloaded_count_(0) {
- }
+ explicit MockExtensionService(Profile* profile)
+ : ready_(false),
+ unloaded_count_(0),
+ registry_(ExtensionRegistry::Get(profile)) {}
void AddComponentExtension(const Extension* extension) override {
- EXPECT_FALSE(extension_set_.Contains(extension->id()));
+ EXPECT_FALSE(registry_->enabled_extensions().Contains(extension->id()));
// ExtensionService must become the owner of the extension object.
- extension_set_.Insert(extension);
+ registry_->AddEnabled(extension);
}
void UnloadExtension(const std::string& extension_id,
UnloadedExtensionInfo::Reason reason) override {
- ASSERT_TRUE(extension_set_.Contains(extension_id));
+ ASSERT_TRUE(registry_->enabled_extensions().Contains(extension_id));
// Remove the extension with the matching id.
- extension_set_.Remove(extension_id);
+ registry_->RemoveEnabled(extension_id);
unloaded_count_++;
}
@@ -56,8 +59,6 @@ class MockExtensionService : public TestExtensionService {
bool is_ready() override { return ready_; }
- const ExtensionSet* extensions() const override { return &extension_set_; }
-
void set_ready(bool ready) {
ready_ = ready;
}
@@ -66,9 +67,7 @@ class MockExtensionService : public TestExtensionService {
return unloaded_count_;
}
- void clear_extensions() {
- extension_set_.Clear();
- }
+ void clear_extensions() { registry_->ClearAll(); }
};
} // namespace
@@ -78,11 +77,11 @@ class ComponentLoaderTest : public testing::Test {
ComponentLoaderTest()
// Note: we pass the same pref service here, to stand in for both
// user prefs and local state.
- : component_loader_(&extension_service_,
+ : extension_service_(&profile_),
+ component_loader_(&extension_service_,
&prefs_,
&local_state_,
- &profile_) {
- }
+ &profile_) {}
void SetUp() override {
extension_path_ =
@@ -104,10 +103,10 @@ class ComponentLoaderTest : public testing::Test {
}
protected:
+ TestingProfile profile_;
MockExtensionService extension_service_;
TestingPrefServiceSyncable prefs_;
TestingPrefServiceSimple local_state_;
- TestingProfile profile_;
ComponentLoader component_loader_;
// The root directory of the text extension.
@@ -180,7 +179,8 @@ TEST_F(ComponentLoaderTest, AddWhenNotReady) {
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
EXPECT_NE("", extension_id);
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
}
// Test that it *is* loaded when the extension service *is* ready.
@@ -189,54 +189,57 @@ TEST_F(ComponentLoaderTest, AddWhenReady) {
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
EXPECT_NE("", extension_id);
- EXPECT_EQ(1u, extension_service_.extensions()->size());
- EXPECT_TRUE(extension_service_.extensions()->GetByID(extension_id));
+ ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
+ EXPECT_EQ(1u, registry->enabled_extensions().size());
+ EXPECT_TRUE(registry->enabled_extensions().GetByID(extension_id));
}
TEST_F(ComponentLoaderTest, Remove) {
extension_service_.set_ready(false);
+ ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
// Removing an extension that was never added should be ok.
component_loader_.Remove(extension_path_);
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
// Try adding and removing before LoadAll() is called.
component_loader_.Add(manifest_contents_, extension_path_);
component_loader_.Remove(extension_path_);
component_loader_.LoadAll();
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
// Load an extension, and check that it's unloaded when Remove() is called.
extension_service_.set_ready(true);
std::string extension_id =
component_loader_.Add(manifest_contents_, extension_path_);
- EXPECT_EQ(1u, extension_service_.extensions()->size());
+ EXPECT_EQ(1u, registry->enabled_extensions().size());
component_loader_.Remove(extension_path_);
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
// And after calling LoadAll(), it shouldn't get loaded.
component_loader_.LoadAll();
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
}
TEST_F(ComponentLoaderTest, LoadAll) {
extension_service_.set_ready(false);
+ ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
// No extensions should be loaded if none were added.
component_loader_.LoadAll();
- EXPECT_EQ(0u, extension_service_.extensions()->size());
+ EXPECT_EQ(0u, registry->enabled_extensions().size());
// Use LoadAll() to load the default extensions.
component_loader_.AddDefaultComponentExtensions(false);
component_loader_.LoadAll();
- unsigned int default_count = extension_service_.extensions()->size();
+ unsigned int default_count = registry->enabled_extensions().size();
// Clear the list of loaded extensions, and reload with one more.
extension_service_.clear_extensions();
component_loader_.Add(manifest_contents_, extension_path_);
component_loader_.LoadAll();
- EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+ EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
}
TEST_F(ComponentLoaderTest, AddOrReplace) {
@@ -260,13 +263,14 @@ TEST_F(ComponentLoaderTest, AddOrReplace) {
extension_service_.set_ready(true);
component_loader_.LoadAll();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(&profile_);
- EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+ EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
EXPECT_EQ(0u, extension_service_.unloaded_count());
// replace loaded component extension.
component_loader_.AddOrReplace(known_extension);
- EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
+ EXPECT_EQ(default_count + 1, registry->enabled_extensions().size());
EXPECT_EQ(1u, extension_service_.unloaded_count());
// Add an invalid component extension.
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc
index e269ead..788567e 100644
--- a/chrome/browser/extensions/crx_installer.cc
+++ b/chrome/browser/extensions/crx_installer.cc
@@ -39,6 +39,7 @@
#include "content/public/browser/resource_dispatcher_host.h"
#include "content/public/browser/user_metrics.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/install/crx_installer_error.h"
#include "extensions/browser/install/extension_install_ui.h"
@@ -597,8 +598,9 @@ void CrxInstaller::ConfirmInstall() {
CheckUpdateFromSettingsPage();
GURL overlapping_url;
+ ExtensionRegistry* registry = ExtensionRegistry::Get(service->profile());
const Extension* overlapping_extension =
- service->extensions()->GetHostedAppByOverlappingWebExtent(
+ registry->enabled_extensions().GetHostedAppByOverlappingWebExtent(
extension()->web_extent());
if (overlapping_extension &&
overlapping_extension->id() != extension()->id()) {
diff --git a/chrome/browser/extensions/extension_apitest.cc b/chrome/browser/extensions/extension_apitest.cc
index 90be1ca..ecf88fd 100644
--- a/chrome/browser/extensions/extension_apitest.cc
+++ b/chrome/browser/extensions/extension_apitest.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/test/base/ui_test_utils.h"
#include "extensions/browser/api/test/test_api.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -325,34 +326,33 @@ bool ExtensionApiTest::RunExtensionTestImpl(const std::string& extension_name,
// Test that exactly one extension is loaded, and return it.
const extensions::Extension* ExtensionApiTest::GetSingleLoadedExtension() {
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
- const extensions::Extension* extension = NULL;
- for (extensions::ExtensionSet::const_iterator it =
- service->extensions()->begin();
- it != service->extensions()->end(); ++it) {
+ const extensions::Extension* result = NULL;
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
// Ignore any component extensions. They are automatically loaded into all
// profiles and aren't the extension we're looking for here.
- if ((*it)->location() == extensions::Manifest::COMPONENT)
+ if (extension->location() == extensions::Manifest::COMPONENT)
continue;
- if (extension != NULL) {
+ if (result != NULL) {
// TODO(yoz): this is misleading; it counts component extensions.
message_ = base::StringPrintf(
"Expected only one extension to be present. Found %u.",
- static_cast<unsigned>(service->extensions()->size()));
+ static_cast<unsigned>(registry->enabled_extensions().size()));
return NULL;
}
- extension = it->get();
+ result = extension.get();
}
- if (!extension) {
+ if (!result) {
message_ = "extension pointer is NULL.";
return NULL;
}
- return extension;
+ return result;
}
bool ExtensionApiTest::StartEmbeddedTestServer() {
diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc
index 579967c..d1ec36b 100644
--- a/chrome/browser/extensions/extension_browsertest.cc
+++ b/chrome/browser/extensions/extension_browsertest.cc
@@ -43,6 +43,7 @@
#include "content/public/test/test_utils.h"
#include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/notification_types.h"
#include "extensions/browser/uninstall_reason.h"
@@ -56,6 +57,7 @@
using extensions::Extension;
using extensions::ExtensionCreator;
+using extensions::ExtensionRegistry;
using extensions::FeatureSwitch;
using extensions::Manifest;
@@ -97,13 +99,13 @@ Profile* ExtensionBrowserTest::profile() {
// static
const Extension* ExtensionBrowserTest::GetExtensionByPath(
- const extensions::ExtensionSet* extensions, const base::FilePath& path) {
+ const extensions::ExtensionSet& extensions,
+ const base::FilePath& path) {
base::FilePath extension_path = base::MakeAbsoluteFilePath(path);
EXPECT_TRUE(!extension_path.empty());
- for (extensions::ExtensionSet::const_iterator iter = extensions->begin();
- iter != extensions->end(); ++iter) {
- if ((*iter)->path() == extension_path) {
- return iter->get();
+ for (const scoped_refptr<const Extension>& extension : extensions) {
+ if (extension->path() == extension_path) {
+ return extension.get();
}
}
return NULL;
@@ -163,6 +165,7 @@ ExtensionBrowserTest::LoadExtensionWithInstallParam(
const std::string& install_param) {
ExtensionService* service = extensions::ExtensionSystem::Get(
profile())->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
{
observer_->Watch(extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
content::NotificationService::AllSources());
@@ -179,7 +182,8 @@ ExtensionBrowserTest::LoadExtensionWithInstallParam(
// Find the loaded extension by its path. See crbug.com/59531 for why
// we cannot just use last_loaded_extension_id().
- const Extension* extension = GetExtensionByPath(service->extensions(), path);
+ const Extension* extension =
+ GetExtensionByPath(registry->enabled_extensions(), path);
if (!extension)
return NULL;
@@ -208,7 +212,7 @@ ExtensionBrowserTest::LoadExtensionWithInstallParam(
extensions::ExtensionPrefs::Get(profile())
->SetInstallParam(extension_id, install_param);
// Re-enable the extension if needed.
- if (service->extensions()->Contains(extension_id)) {
+ if (registry->enabled_extensions().Contains(extension_id)) {
content::WindowedNotificationObserver load_signal(
extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
content::Source<Profile>(profile()));
@@ -264,6 +268,7 @@ const Extension* ExtensionBrowserTest::LoadExtensionAsComponentWithManifest(
const base::FilePath::CharType* manifest_relative_path) {
ExtensionService* service = extensions::ExtensionSystem::Get(
profile())->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
std::string manifest;
if (!base::ReadFileToString(path.Append(manifest_relative_path), &manifest)) {
@@ -271,7 +276,8 @@ const Extension* ExtensionBrowserTest::LoadExtensionAsComponentWithManifest(
}
std::string extension_id = service->component_loader()->Add(manifest, path);
- const Extension* extension = service->extensions()->GetByID(extension_id);
+ const Extension* extension =
+ registry->enabled_extensions().GetByID(extension_id);
if (!extension)
return NULL;
observer_->set_last_loaded_extension_id(extension->id());
@@ -467,8 +473,9 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension(
bool is_ephemeral) {
ExtensionService* service =
extensions::ExtensionSystem::Get(profile())->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
service->set_show_extensions_prompts(false);
- size_t num_before = service->extensions()->size();
+ size_t num_before = registry->enabled_extensions().size();
{
scoped_ptr<ExtensionInstallPrompt> install_ui;
@@ -512,17 +519,16 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension(
observer_->Wait();
}
- size_t num_after = service->extensions()->size();
+ size_t num_after = registry->enabled_extensions().size();
EXPECT_EQ(num_before + expected_change, num_after);
if (num_before + expected_change != num_after) {
VLOG(1) << "Num extensions before: " << base::IntToString(num_before)
<< " num after: " << base::IntToString(num_after)
<< " Installed extensions follow:";
- for (extensions::ExtensionSet::const_iterator it =
- service->extensions()->begin();
- it != service->extensions()->end(); ++it)
- VLOG(1) << " " << (*it)->id();
+ for (const scoped_refptr<const Extension>& extension :
+ registry->enabled_extensions())
+ VLOG(1) << " " << extension->id();
VLOG(1) << "Errors follow:";
const std::vector<base::string16>* errors =
diff --git a/chrome/browser/extensions/extension_browsertest.h b/chrome/browser/extensions/extension_browsertest.h
index 7f41236..254aa1e 100644
--- a/chrome/browser/extensions/extension_browsertest.h
+++ b/chrome/browser/extensions/extension_browsertest.h
@@ -72,7 +72,8 @@ class ExtensionBrowserTest : virtual public InProcessBrowserTest {
virtual Profile* profile();
static const extensions::Extension* GetExtensionByPath(
- const extensions::ExtensionSet* extensions, const base::FilePath& path);
+ const extensions::ExtensionSet& extensions,
+ const base::FilePath& path);
// InProcessBrowserTest
void SetUp() override;
diff --git a/chrome/browser/extensions/extension_functional_browsertest.cc b/chrome/browser/extensions/extension_functional_browsertest.cc
index 079b638..6221e34 100644
--- a/chrome/browser/extensions/extension_functional_browsertest.cc
+++ b/chrome/browser/extensions/extension_functional_browsertest.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/ui/browser_commands.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/notification_types.h"
@@ -20,7 +21,8 @@ class ExtensionFunctionalTest : public ExtensionBrowserTest {
void InstallExtensionSilently(ExtensionService* service,
const char* filename) {
service->set_show_extensions_prompts(false);
- size_t num_before = service->extensions()->size();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
+ size_t num_before = registry->enabled_extensions().size();
base::FilePath path = test_data_dir_.AppendASCII(filename);
@@ -43,23 +45,19 @@ class ExtensionFunctionalTest : public ExtensionBrowserTest {
installer->InstallCrx(path);
observer_->Wait();
- size_t num_after = service->extensions()->size();
+ size_t num_after = registry->enabled_extensions().size();
EXPECT_EQ(num_before + 1, num_after);
extension_loaded_observer.Wait();
- const Extension* extension = service->GetExtensionById(
- last_loaded_extension_id(), false);
- EXPECT_TRUE(extension != NULL);
- }
-
- ExtensionService* GetExtensionService() {
- return ExtensionSystem::Get(profile())->extension_service();
+ const Extension* extension =
+ registry->enabled_extensions().GetByID(last_loaded_extension_id());
+ EXPECT_TRUE(extension);
}
};
IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest,
PRE_TestAdblockExtensionCrash) {
- InstallExtensionSilently(GetExtensionService(), "adblock.crx");
+ InstallExtensionSilently(extension_service(), "adblock.crx");
}
// Timing out on XP and Vista: http://crbug.com/387866
@@ -70,7 +68,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest,
#endif
IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest,
MAYBE_TestAdblockExtensionCrash) {
- ExtensionService* service = GetExtensionService();
+ ExtensionService* service = extension_service();
// Verify that the extension is enabled and allowed in incognito
// is disabled.
EXPECT_TRUE(service->IsExtensionEnabled(last_loaded_extension_id()));
@@ -84,11 +82,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest,
#define MAYBE_TestSetExtensionsState TestSetExtensionsState
#endif
IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest, MAYBE_TestSetExtensionsState) {
- InstallExtensionSilently(GetExtensionService(), "google_talk.crx");
+ InstallExtensionSilently(extension_service(), "google_talk.crx");
// Disable the extension and verify.
util::SetIsIncognitoEnabled(last_loaded_extension_id(), profile(), false);
- ExtensionService* service = GetExtensionService();
+ ExtensionService* service = extension_service();
service->DisableExtension(last_loaded_extension_id(),
Extension::DISABLE_USER_ACTION);
EXPECT_FALSE(service->IsExtensionEnabled(last_loaded_extension_id()));
diff --git a/chrome/browser/extensions/extension_keybinding_registry.cc b/chrome/browser/extensions/extension_keybinding_registry.cc
index 40c7712..dae15fd 100644
--- a/chrome/browser/extensions/extension_keybinding_registry.cc
+++ b/chrome/browser/extensions/extension_keybinding_registry.cc
@@ -6,13 +6,11 @@
#include "base/values.h"
#include "chrome/browser/extensions/active_tab_permission_granter.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/command.h"
#include "content/public/browser/browser_context.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_system.h"
#include "extensions/browser/notification_types.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/manifest_constants.h"
@@ -75,16 +73,14 @@ void ExtensionKeybindingRegistry::RemoveExtensionKeybinding(
}
void ExtensionKeybindingRegistry::Init() {
- ExtensionService* service =
- ExtensionSystem::Get(browser_context_)->extension_service();
- if (!service)
- return; // ExtensionService can be null during testing.
-
- const ExtensionSet* extensions = service->extensions();
- ExtensionSet::const_iterator iter = extensions->begin();
- for (; iter != extensions->end(); ++iter)
- if (ExtensionMatchesFilter(iter->get()))
- AddExtensionKeybinding(iter->get(), std::string());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
+ if (!registry)
+ return; // ExtensionRegistry can be null during testing.
+
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions())
+ if (ExtensionMatchesFilter(extension.get()))
+ AddExtensionKeybinding(extension.get(), std::string());
}
bool ExtensionKeybindingRegistry::ShouldIgnoreCommand(
@@ -100,10 +96,9 @@ bool ExtensionKeybindingRegistry::NotifyEventTargets(
void ExtensionKeybindingRegistry::CommandExecuted(
const std::string& extension_id, const std::string& command) {
- ExtensionService* service =
- ExtensionSystem::Get(browser_context_)->extension_service();
-
- const Extension* extension = service->extensions()->GetByID(extension_id);
+ const Extension* extension = ExtensionRegistry::Get(browser_context_)
+ ->enabled_extensions()
+ .GetByID(extension_id);
if (!extension)
return;
@@ -194,10 +189,9 @@ void ExtensionKeybindingRegistry::Observe(
content::Details<std::pair<const std::string, const std::string> >(
details).ptr();
- const Extension* extension = ExtensionSystem::Get(browser_context_)
- ->extension_service()
- ->extensions()
- ->GetByID(payload->first);
+ const Extension* extension = ExtensionRegistry::Get(browser_context_)
+ ->enabled_extensions()
+ .GetByID(payload->first);
// During install and uninstall the extension won't be found. We'll catch
// those events above, with the LOADED/UNLOADED, so we ignore this event.
if (!extension)
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index d8e601b..5728126 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -341,10 +341,6 @@ ExtensionService::ExtensionService(Profile* profile,
install_directory_.value().length(), 0, 500, 100);
}
-const ExtensionSet* ExtensionService::extensions() const {
- return &registry_->enabled_extensions();
-}
-
extensions::PendingExtensionManager*
ExtensionService::pending_extension_manager() {
return &pending_extension_manager_;
@@ -1918,7 +1914,7 @@ void ExtensionService::RegisterContentSettings(
host_content_settings_map->RegisterProvider(
HostContentSettingsMap::INTERNAL_EXTENSION_PROVIDER,
scoped_ptr<content_settings::ObservableProvider>(
- new content_settings::InternalExtensionProvider(this)));
+ new content_settings::InternalExtensionProvider(profile_)));
host_content_settings_map->RegisterProvider(
HostContentSettingsMap::CUSTOM_EXTENSION_PROVIDER,
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h
index 556adb0..86dea9df 100644
--- a/chrome/browser/extensions/extension_service.h
+++ b/chrome/browser/extensions/extension_service.h
@@ -73,11 +73,6 @@ class ExtensionServiceInterface
public:
virtual ~ExtensionServiceInterface() {}
- // DEPRECATED: Use ExtensionRegistry::enabled_extensions() instead.
- //
- // ExtensionRegistry also has the disabled, terminated and blacklisted sets.
- virtual const extensions::ExtensionSet* extensions() const = 0;
-
// Gets the object managing the set of pending extensions.
virtual extensions::PendingExtensionManager* pending_extension_manager() = 0;
@@ -205,7 +200,6 @@ class ExtensionService
// ExtensionServiceInterface implementation.
//
// NOTE: Many of these methods are DEPRECATED. See the interface for details.
- const extensions::ExtensionSet* extensions() const override;
extensions::PendingExtensionManager* pending_extension_manager() override;
const extensions::Extension* GetExtensionById(
const std::string& id,
diff --git a/chrome/browser/extensions/extension_startup_browsertest.cc b/chrome/browser/extensions/extension_startup_browsertest.cc
index bfd1496..25e761d 100644
--- a/chrome/browser/extensions/extension_startup_browsertest.cc
+++ b/chrome/browser/extensions/extension_startup_browsertest.cc
@@ -109,15 +109,14 @@ class ExtensionStartupTestBase : public InProcessBrowserTest {
void WaitForServicesToStart(int num_expected_extensions,
bool expect_extensions_enabled) {
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
// Count the number of non-component extensions.
int found_extensions = 0;
- for (extensions::ExtensionSet::const_iterator it =
- service->extensions()->begin();
- it != service->extensions()->end(); ++it) {
- if ((*it)->location() != extensions::Manifest::COMPONENT)
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
+ if (extension->location() != extensions::Manifest::COMPONENT)
found_extensions++;
}
@@ -126,6 +125,9 @@ class ExtensionStartupTestBase : public InProcessBrowserTest {
ASSERT_EQ(static_cast<uint32>(num_expected_extensions),
static_cast<uint32>(found_extensions));
+
+ ExtensionService* service = extensions::ExtensionSystem::Get(
+ browser()->profile())->extension_service();
ASSERT_EQ(expect_extensions_enabled, service->extensions_enabled());
content::WindowedNotificationObserver user_scripts_observer(
diff --git a/chrome/browser/extensions/extension_view_host_factory.cc b/chrome/browser/extensions/extension_view_host_factory.cc
index db04a28..38e2e73 100644
--- a/chrome/browser/extensions/extension_view_host_factory.cc
+++ b/chrome/browser/extensions/extension_view_host_factory.cc
@@ -4,13 +4,12 @@
#include "chrome/browser/extensions/extension_view_host_factory.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/extension_view_host.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/common/url_constants.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/process_manager.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
#include "extensions/common/view_type.h"
@@ -77,15 +76,14 @@ ExtensionViewHost* CreateViewHostForIncognito(const Extension* extension,
// Returns the extension associated with |url| in |profile|. Returns NULL if
// the extension does not exist.
const Extension* GetExtensionForUrl(Profile* profile, const GURL& url) {
- ExtensionService* service =
- ExtensionSystem::Get(profile)->extension_service();
- if (!service)
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
+ if (!registry)
return NULL;
std::string extension_id = url.host();
if (url.SchemeIs(content::kChromeUIScheme) &&
url.host() == chrome::kChromeUIExtensionInfoHost)
extension_id = url.path().substr(1);
- return service->extensions()->GetByID(extension_id);
+ return registry->enabled_extensions().GetByID(extension_id);
}
// Creates and initializes an ExtensionViewHost for the extension with |url|.
diff --git a/chrome/browser/extensions/menu_manager.cc b/chrome/browser/extensions/menu_manager.cc
index 60f9301..95993c9 100644
--- a/chrome/browser/extensions/menu_manager.cc
+++ b/chrome/browser/extensions/menu_manager.cc
@@ -13,7 +13,6 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/extensions/menu_manager_factory.h"
#include "chrome/browser/extensions/tab_helper.h"
@@ -27,7 +26,6 @@
#include "content/public/common/context_menu_params.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_system.h"
#include "extensions/browser/guest_view/web_view/web_view_guest.h"
#include "extensions/browser/state_store.h"
#include "extensions/common/extension.h"
@@ -36,7 +34,6 @@
#include "ui/gfx/text_elider.h"
using content::WebContents;
-using extensions::ExtensionSystem;
namespace extensions {
@@ -616,11 +613,9 @@ void MenuManager::ExecuteCommand(content::BrowserContext* context,
if (!item)
return;
- // ExtensionService/Extension can be NULL in unit tests :(
- ExtensionService* service =
- ExtensionSystem::Get(browser_context_)->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
const Extension* extension =
- service ? service->extensions()->GetByID(item->extension_id()) : NULL;
+ registry->enabled_extensions().GetByID(item->extension_id());
if (item->type() == MenuItem::RADIO)
RadioItemSelected(item);
@@ -804,10 +799,9 @@ void MenuManager::WriteToStorage(const Extension* extension,
void MenuManager::ReadFromStorage(const std::string& extension_id,
scoped_ptr<base::Value> value) {
- const Extension* extension = ExtensionSystem::Get(browser_context_)
- ->extension_service()
- ->extensions()
- ->GetByID(extension_id);
+ const Extension* extension = ExtensionRegistry::Get(browser_context_)
+ ->enabled_extensions()
+ .GetByID(extension_id);
if (!extension)
return;
diff --git a/chrome/browser/extensions/options_page_apitest.cc b/chrome/browser/extensions/options_page_apitest.cc
index 04183c6..2b4d466 100644
--- a/chrome/browser/extensions/options_page_apitest.cc
+++ b/chrome/browser/extensions/options_page_apitest.cc
@@ -3,7 +3,6 @@
// found in the LICENSE file.
#include "chrome/browser/extensions/extension_browsertest.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/test_extension_dir.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -11,7 +10,7 @@
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/browser_test_utils.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/value_builder.h"
#include "extensions/test/extension_test_message_listener.h"
@@ -30,14 +29,13 @@ static const char kScriptClickOptionButton[] =
// extension's options page.
// Disabled because of flakiness. See http://crbug.com/174934.
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, DISABLED_OptionsPage) {
- ExtensionService* service =
- ExtensionSystem::Get(browser()->profile())->extension_service();
- size_t installed_extensions = service->extensions()->size();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ size_t installed_extensions = registry->enabled_extensions().size();
// Install an extension with an options page.
const Extension* extension =
InstallExtension(test_data_dir_.AppendASCII("options.crx"), 1);
ASSERT_TRUE(extension);
- EXPECT_EQ(installed_extensions + 1, service->extensions()->size());
+ EXPECT_EQ(installed_extensions + 1, registry->enabled_extensions().size());
// Go to the Extension Settings page and click the Options button.
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIExtensionsURL));
diff --git a/chrome/browser/extensions/page_action_browsertest.cc b/chrome/browser/extensions/page_action_browsertest.cc
index b8f91f2..3a36a4f 100644
--- a/chrome/browser/extensions/page_action_browsertest.cc
+++ b/chrome/browser/extensions/page_action_browsertest.cc
@@ -7,13 +7,12 @@
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/extensions/extension_action_test_util.h"
#include "chrome/browser/extensions/extension_browsertest.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/switches.h"
@@ -122,10 +121,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, UnloadPageAction) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
base::TimeTicks start_time = base::TimeTicks::Now();
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
+ ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
- size_t size_before = service->extensions()->size();
+ size_t size_before = registry->enabled_extensions().size();
base::FilePath base_path = test_data_dir_.AppendASCII("browsertest")
.AppendASCII("crash_44415");
@@ -133,7 +132,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
const Extension* extensionA = LoadExtension(base_path.AppendASCII("ExtA"));
ASSERT_TRUE(extensionA);
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1));
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
LOG(INFO) << "Load extension A done : "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
@@ -143,7 +142,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
const Extension* extensionB = LoadExtension(base_path.AppendASCII("ExtB"));
ASSERT_TRUE(extensionB);
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(2));
- ASSERT_EQ(size_before + 2, service->extensions()->size());
+ ASSERT_EQ(size_before + 2, registry->enabled_extensions().size());
LOG(INFO) << "Load extension B done : "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
@@ -152,8 +151,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
std::string idA = extensionA->id();
ReloadExtension(extensionA->id());
// ExtensionA has changed, so refetch it.
- ASSERT_EQ(size_before + 2, service->extensions()->size());
- extensionA = service->extensions()->GetByID(idA);
+ ASSERT_EQ(size_before + 2, registry->enabled_extensions().size());
+ extensionA = registry->enabled_extensions().GetByID(idA);
LOG(INFO) << "Reload extension A done: "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
@@ -178,9 +177,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) {
ASSERT_TRUE(test_server()->Start());
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- const size_t size_before = service->extensions()->size();
+ ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
base::FilePath extension_path(test_data_dir_.AppendASCII("browsertest")
.AppendASCII("title_localized_pa"));
@@ -192,7 +191,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) {
ui_test_utils::NavigateToURL(browser(), url);
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1));
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
EXPECT_STREQ(base::WideToUTF8(L"Hreggvi\u00F0ur: l10n page action").c_str(),
extension->description().c_str());
diff --git a/chrome/browser/extensions/plugin_apitest.cc b/chrome/browser/extensions/plugin_apitest.cc
index cfd825f..f129958 100644
--- a/chrome/browser/extensions/plugin_apitest.cc
+++ b/chrome/browser/extensions/plugin_apitest.cc
@@ -18,6 +18,7 @@
#include "content/public/browser/plugin_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "net/base/filename_util.h"
@@ -63,11 +64,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
service->set_show_extensions_prompts(false);
- const size_t size_before = service->extensions()->size();
+ const size_t size_before = registry->enabled_extensions().size();
const Extension* extension = LoadExtension(extension_dir);
ASSERT_TRUE(extension);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
// Now the plugin should be in the cache.
ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
tab, "testPluginWorks()", &result));
@@ -78,9 +81,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
EXPECT_TRUE(result);
#endif
- EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
UnloadExtension(extension->id());
- EXPECT_EQ(size_before, service->extensions()->size());
+ EXPECT_EQ(size_before, registry->enabled_extensions().size());
// Now the plugin should be unloaded, and the page should be broken.
@@ -91,7 +94,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
// If we reload the extension and page, it should work again.
ASSERT_TRUE(LoadExtension(extension_dir));
- EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
{
content::WindowedNotificationObserver observer(
content::NOTIFICATION_LOAD_STOP,
@@ -143,11 +146,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginPrivate) {
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
service->set_show_extensions_prompts(false);
- const size_t size_before = service->extensions()->size();
+ const size_t size_before = registry->enabled_extensions().size();
const Extension* extension = LoadExtension(extension_dir);
ASSERT_TRUE(extension);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
// Load the test page through the extension URL, and the plugin should work.
ui_test_utils::NavigateToURL(browser(),
diff --git a/chrome/browser/extensions/test_extension_service.cc b/chrome/browser/extensions/test_extension_service.cc
index e8385e4..c5ae36a 100644
--- a/chrome/browser/extensions/test_extension_service.cc
+++ b/chrome/browser/extensions/test_extension_service.cc
@@ -10,11 +10,6 @@ using extensions::Extension;
TestExtensionService::~TestExtensionService() {}
-const extensions::ExtensionSet* TestExtensionService::extensions() const {
- ADD_FAILURE();
- return NULL;
-}
-
extensions::PendingExtensionManager*
TestExtensionService::pending_extension_manager() {
ADD_FAILURE();
diff --git a/chrome/browser/extensions/test_extension_service.h b/chrome/browser/extensions/test_extension_service.h
index 0bc13ac..e4409e3 100644
--- a/chrome/browser/extensions/test_extension_service.h
+++ b/chrome/browser/extensions/test_extension_service.h
@@ -23,7 +23,6 @@ class TestExtensionService : public ExtensionServiceInterface {
~TestExtensionService() override;
// ExtensionServiceInterface implementation.
- const extensions::ExtensionSet* extensions() const override;
extensions::PendingExtensionManager* pending_extension_manager() override;
bool UpdateExtension(const std::string& id,
diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc
index 0d9b6d4..e50c426 100644
--- a/chrome/browser/extensions/updater/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -457,10 +457,6 @@ class ServiceForManifestTests : public MockService {
return registry_->disabled_extensions().GetByID(id);
}
- const ExtensionSet* extensions() const override {
- return &registry_->enabled_extensions();
- }
-
PendingExtensionManager* pending_extension_manager() override {
return &pending_extension_manager_;
}
diff --git a/chrome/browser/extensions/user_script_listener_unittest.cc b/chrome/browser/extensions/user_script_listener_unittest.cc
index b4cc28e..a8269f3 100644
--- a/chrome/browser/extensions/user_script_listener_unittest.cc
+++ b/chrome/browser/extensions/user_script_listener_unittest.cc
@@ -191,8 +191,10 @@ class UserScriptListenerTest : public ExtensionServiceTestBase {
}
void UnloadTestExtension() {
- ASSERT_FALSE(service_->extensions()->is_empty());
- service_->UnloadExtension((*service_->extensions()->begin())->id(),
+ const extensions::ExtensionSet& extensions =
+ registry()->enabled_extensions();
+ ASSERT_FALSE(extensions.is_empty());
+ service_->UnloadExtension((*extensions.begin())->id(),
UnloadedExtensionInfo::REASON_DISABLE);
}
diff --git a/chrome/browser/extensions/webstore_startup_installer_browsertest.cc b/chrome/browser/extensions/webstore_startup_installer_browsertest.cc
index a67482d..1662694 100644
--- a/chrome/browser/extensions/webstore_startup_installer_browsertest.cc
+++ b/chrome/browser/extensions/webstore_startup_installer_browsertest.cc
@@ -65,9 +65,10 @@ IN_PROC_BROWSER_TEST_F(WebstoreStartupInstallerTest, Install) {
RunTest("runTest");
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
const extensions::Extension* extension =
- extensions::ExtensionRegistry::Get(
- browser()->profile())->enabled_extensions().GetByID(kTestExtensionId);
+ registry->enabled_extensions().GetByID(kTestExtensionId);
EXPECT_TRUE(extension);
}
@@ -162,15 +163,17 @@ IN_PROC_BROWSER_TEST_F(WebstoreStartupInstallerTest, InstallFromHostedApp) {
ExtensionService* extension_service =
extensions::ExtensionSystem::Get(browser()->profile())->
extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
extension_service->AddExtension(hosted_app.get());
- EXPECT_TRUE(extension_service->extensions()->Contains(hosted_app->id()));
+ EXPECT_TRUE(registry->enabled_extensions().GetByID(hosted_app->id()));
ui_test_utils::NavigateToURL(browser(), kInstallUrl);
- EXPECT_FALSE(extension_service->extensions()->Contains(kTestExtensionId));
+ EXPECT_FALSE(registry->enabled_extensions().GetByID(kTestExtensionId));
RunTest("runTest");
- EXPECT_TRUE(extension_service->extensions()->Contains(kTestExtensionId));
+ EXPECT_TRUE(registry->enabled_extensions().GetByID(kTestExtensionId));
}
class WebstoreStartupInstallerSupervisedUsersTest
diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
index e334630..254b14e 100644
--- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
+++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
@@ -7,14 +7,13 @@
#include "base/json/json_string_value_serializer.h"
#include "base/sys_info.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/sync/about_sync_util.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/chrome_version_info.h"
#include "content/public/browser/browser_thread.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -109,17 +108,11 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!primary_profile)
return;
- ExtensionService* service =
- extensions::ExtensionSystem::Get(primary_profile)->extension_service();
- if (!service)
- return;
-
+ extensions::ExtensionRegistry* extension_registry =
+ extensions::ExtensionRegistry::Get(primary_profile);
std::string extensions_list;
- const extensions::ExtensionSet* extensions = service->extensions();
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end();
- ++it) {
- const extensions::Extension* extension = it->get();
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extension_registry->enabled_extensions()) {
if (extensions_list.empty()) {
extensions_list = extension->name();
} else {
diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
index dda868b..48e484f 100644
--- a/chrome/browser/media/media_capture_devices_dispatcher.cc
+++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
@@ -54,10 +54,9 @@
#if defined(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "extensions/browser/app_window/app_window.h"
#include "extensions/browser/app_window/app_window_registry.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#endif
@@ -222,10 +221,9 @@ const extensions::Extension* GetExtensionForOrigin(
if (!security_origin.SchemeIs(extensions::kExtensionScheme))
return NULL;
- ExtensionService* extensions_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
const extensions::Extension* extension =
- extensions_service->extensions()->GetByID(security_origin.host());
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+ security_origin.host());
DCHECK(extension);
return extension;
}
diff --git a/chrome/browser/media_galleries/media_file_system_registry.cc b/chrome/browser/media_galleries/media_file_system_registry.cc
index e5f8dfb..a01845e 100644
--- a/chrome/browser/media_galleries/media_file_system_registry.cc
+++ b/chrome/browser/media_galleries/media_file_system_registry.cc
@@ -12,7 +12,6 @@
#include "base/files/file_path.h"
#include "base/prefs/pref_service.h"
#include "base/stl_util.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h"
#include "chrome/browser/media_galleries/fileapi/mtp_device_map_service.h"
#include "chrome/browser/media_galleries/gallery_watch_manager.h"
@@ -34,7 +33,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
#include "storage/browser/fileapi/external_mount_points.h"
@@ -769,10 +768,8 @@ void MediaFileSystemRegistry::OnGalleryRemoved(
Profile* profile = prefs->profile();
// Get the Extensions, MediaGalleriesPreferences and ExtensionHostMap for
// |profile|.
- const ExtensionService* extension_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- const extensions::ExtensionSet* extensions_set =
- extension_service->extensions();
+ const extensions::ExtensionRegistry* extension_registry =
+ extensions::ExtensionRegistry::Get(profile);
ExtensionGalleriesHostMap::const_iterator host_map_it =
extension_hosts_map_.find(profile);
DCHECK(host_map_it != extension_hosts_map_.end());
@@ -786,7 +783,8 @@ void MediaFileSystemRegistry::OnGalleryRemoved(
for (ExtensionHostMap::const_iterator it = extension_host_map.begin();
it != extension_host_map.end();
++it) {
- extensions.push_back(extensions_set->GetByID(it->first));
+ extensions.push_back(
+ extension_registry->enabled_extensions().GetByID(it->first));
}
for (size_t i = 0; i < extensions.size(); ++i) {
if (!ContainsKey(extension_hosts_map_, profile))
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc
index ed5b223..eb5cd15 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc
@@ -17,7 +17,6 @@
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/media_galleries/fileapi/iapps_finder.h"
#include "chrome/browser/media_galleries/fileapi/picasa_finder.h"
#include "chrome/browser/media_galleries/imported_media_gallery_registry.h"
@@ -33,7 +32,7 @@
#include "components/storage_monitor/storage_monitor.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_prefs.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/pref_names.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/permissions/api_permission.h"
@@ -92,16 +91,11 @@ int NumberExtensionsUsingMediaGalleries(Profile* profile) {
int count = 0;
if (!profile)
return count;
- ExtensionService* extension_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- if (!extension_service)
- return count;
- const extensions::ExtensionSet* extensions = extension_service->extensions();
- for (extensions::ExtensionSet::const_iterator i = extensions->begin();
- i != extensions->end(); ++i) {
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) {
const extensions::PermissionsData* permissions_data =
- (*i)->permissions_data();
+ extension->permissions_data();
if (permissions_data->HasAPIPermission(
extensions::APIPermission::kMediaGalleries) ||
permissions_data->HasAPIPermission(
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 851986c..b2d22fb 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -32,8 +32,7 @@
#endif
#if defined(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_service.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/process_manager.h"
#include "extensions/browser/process_map.h"
#include "extensions/browser/view_type_utils.h"
@@ -286,8 +285,8 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
#if defined(ENABLE_EXTENSIONS)
content::BrowserContext* context =
render_process_host->GetBrowserContext();
- ExtensionService* extension_service =
- extensions::ExtensionSystem::Get(context)->extension_service();
+ extensions::ExtensionRegistry* extension_registry =
+ extensions::ExtensionRegistry::Get(context);
extensions::ProcessMap* extension_process_map =
extensions::ProcessMap::Get(context);
is_extension = extension_process_map->Contains(
@@ -317,7 +316,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
for (std::set<std::string>::iterator iter = extension_ids.begin();
iter != extension_ids.end(); ++iter) {
const Extension* extension =
- extension_service->GetExtensionById(*iter, false);
+ extension_registry->enabled_extensions().GetByID(*iter);
if (extension && !extension->is_hosted_app()) {
process.renderer_type =
ProcessMemoryInformation::RENDERER_EXTENSION;
@@ -329,7 +328,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
#if defined(ENABLE_EXTENSIONS)
if (is_extension) {
const Extension* extension =
- extension_service->extensions()->GetByID(url.host());
+ extension_registry->enabled_extensions().GetByID(url.host());
if (extension) {
base::string16 title = base::UTF8ToUTF16(extension->name());
process.titles.push_back(title);
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 753d1673..89fb7f1 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -722,12 +722,12 @@ class PolicyTest : public InProcessBrowserTest {
installer->Load(extension_path);
observer.Wait();
- const extensions::ExtensionSet* extensions =
- extension_service()->extensions();
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- if ((*it)->path() == extension_path)
- return it->get();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
+ if (extension->path() == extension_path)
+ return extension.get();
}
return NULL;
}
diff --git a/chrome/browser/profile_resetter/profile_resetter_unittest.cc b/chrome/browser/profile_resetter/profile_resetter_unittest.cc
index b487a46..b34d6be 100644
--- a/chrome/browser/profile_resetter/profile_resetter_unittest.cc
+++ b/chrome/browser/profile_resetter/profile_resetter_unittest.cc
@@ -29,6 +29,7 @@
#include "components/search_engines/template_url_service_client.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/test_browser_thread.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
#include "net/http/http_response_headers.h"
@@ -628,16 +629,16 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisabling) {
extensions::Manifest::TYPE_EXTENSION,
false);
service_->AddExtension(ext6.get());
- EXPECT_EQ(6u, service_->extensions()->size());
+ EXPECT_EQ(6u, registry()->enabled_extensions().size());
ResetAndWait(ProfileResetter::EXTENSIONS);
- EXPECT_EQ(4u, service_->extensions()->size());
- EXPECT_FALSE(service_->extensions()->Contains(theme->id()));
- EXPECT_FALSE(service_->extensions()->Contains(ext2->id()));
- EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
- EXPECT_TRUE(service_->extensions()->Contains(ext4->id()));
- EXPECT_TRUE(service_->extensions()->Contains(ext5->id()));
- EXPECT_TRUE(service_->extensions()->Contains(ext6->id()));
+ EXPECT_EQ(4u, registry()->enabled_extensions().size());
+ EXPECT_FALSE(registry()->enabled_extensions().Contains(theme->id()));
+ EXPECT_FALSE(registry()->enabled_extensions().Contains(ext2->id()));
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext3->id()));
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext4->id()));
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext5->id()));
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext6->id()));
EXPECT_TRUE(theme_service->UsingDefaultTheme());
}
@@ -657,15 +658,15 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisablingNonOrganic) {
extensions::Manifest::TYPE_EXTENSION,
false);
service_->AddExtension(ext3.get());
- EXPECT_EQ(2u, service_->extensions()->size());
+ EXPECT_EQ(2u, registry()->enabled_extensions().size());
std::string master_prefs(kDistributionConfig);
ReplaceString(&master_prefs, "placeholder_for_id", ext3->id());
ResetAndWait(ProfileResetter::EXTENSIONS, master_prefs);
- EXPECT_EQ(1u, service_->extensions()->size());
- EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
+ EXPECT_EQ(1u, registry()->enabled_extensions().size());
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext3->id()));
}
TEST_F(ProfileResetterTest, ResetExtensionsAndDefaultApps) {
@@ -703,14 +704,14 @@ TEST_F(ProfileResetterTest, ResetExtensionsAndDefaultApps) {
extensions::Manifest::TYPE_HOSTED_APP,
true);
service_->AddExtension(ext3.get());
- EXPECT_EQ(3u, service_->extensions()->size());
+ EXPECT_EQ(3u, registry()->enabled_extensions().size());
ResetAndWait(ProfileResetter::EXTENSIONS);
- EXPECT_EQ(1u, service_->extensions()->size());
- EXPECT_FALSE(service_->extensions()->Contains(ext1->id()));
- EXPECT_FALSE(service_->extensions()->Contains(ext2->id()));
- EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
+ EXPECT_EQ(1u, registry()->enabled_extensions().size());
+ EXPECT_FALSE(registry()->enabled_extensions().Contains(ext1->id()));
+ EXPECT_FALSE(registry()->enabled_extensions().Contains(ext2->id()));
+ EXPECT_TRUE(registry()->enabled_extensions().Contains(ext3->id()));
EXPECT_TRUE(theme_service->UsingDefaultTheme());
}
diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
index 46b4fc6..884833c 100644
--- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
+++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
@@ -5,9 +5,6 @@
#include "chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h"
#include "chrome/browser/browser_process.h"
-#if defined(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_service.h"
-#endif
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_switches.h"
@@ -17,7 +14,7 @@
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/render_view_host.h"
#if defined(ENABLE_EXTENSIONS)
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -103,18 +100,9 @@ Profile* PepperIsolatedFileSystemMessageFilter::GetProfile() {
std::string PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(
Profile* profile) {
#if defined(ENABLE_EXTENSIONS)
- extensions::ExtensionSystem* extension_system =
- extensions::ExtensionSystem::Get(profile);
- if (!extension_system)
- return std::string();
-
- const ExtensionService* extension_service =
- extension_system->extension_service();
- if (!extension_service)
- return std::string();
-
const extensions::Extension* extension =
- extension_service->GetExtensionById(document_url_.host(), false);
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+ document_url_.host());
if (!extension)
return std::string();
@@ -153,9 +141,8 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem(
Profile* profile = GetProfile();
const extensions::ExtensionSet* extension_set = NULL;
if (profile) {
- extension_set = extensions::ExtensionSystem::Get(profile)
- ->extension_service()
- ->extensions();
+ extension_set =
+ &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
}
if (!IsExtensionOrSharedModuleWhitelisted(
document_url_, extension_set, allowed_crxfs_origins_) &&
diff --git a/chrome/browser/resources/pdf/pdf_extension_test.cc b/chrome/browser/resources/pdf/pdf_extension_test.cc
index bdfea35..01245ac 100644
--- a/chrome/browser/resources/pdf/pdf_extension_test.cc
+++ b/chrome/browser/resources/pdf/pdf_extension_test.cc
@@ -13,6 +13,7 @@
#include "chrome/common/extensions/manifest_handlers/mime_types_handler.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/test/result_catcher.h"
#include "grit/browser_resources.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
@@ -51,7 +52,9 @@ class PDFExtensionTest : public ExtensionApiTest {
service->component_loader()->Add(IDR_PDF_MANIFEST,
base::FilePath(FILE_PATH_LITERAL("pdf")));
const extensions::Extension* extension =
- service->extensions()->GetByID("mhjfbmdgcfjbbpaeojofohoefgiehjai");
+ extensions::ExtensionRegistry::Get(profile())
+ ->enabled_extensions()
+ .GetByID("mhjfbmdgcfjbbpaeojofohoefgiehjai");
ASSERT_TRUE(extension);
ASSERT_TRUE(MimeTypesHandler::GetHandler(
extension)->CanHandleMIMEType("application/pdf"));
diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc
index 0fe1f84..5e2d409 100644
--- a/chrome/browser/supervised_user/supervised_user_service.cc
+++ b/chrome/browser/supervised_user/supervised_user_service.cc
@@ -562,7 +562,7 @@ SupervisedUserService::GetActiveSiteLists() {
return site_lists.Pass();
for (const scoped_refptr<const extensions::Extension>& extension :
- *extension_service->extensions()) {
+ extensions::ExtensionRegistry::Get(profile_)->enabled_extensions()) {
if (!extension_service->IsExtensionEnabled(extension->id()))
continue;
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_worker_unittest.cc
index ee98464..8c2d173 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_worker_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_worker_unittest.cc
@@ -60,10 +60,6 @@ class MockExtensionService : public TestExtensionService {
MockExtensionService() {}
~MockExtensionService() override {}
- const extensions::ExtensionSet* extensions() const override {
- return &extensions_;
- }
-
void AddExtension(const extensions::Extension* extension) override {
extensions_.Insert(make_scoped_refptr(extension));
}
diff --git a/chrome/browser/themes/theme_syncable_service_unittest.cc b/chrome/browser/themes/theme_syncable_service_unittest.cc
index 265133d..49abbb0 100644
--- a/chrome/browser/themes/theme_syncable_service_unittest.cc
+++ b/chrome/browser/themes/theme_syncable_service_unittest.cc
@@ -17,6 +17,7 @@
#include "chrome/test/base/testing_profile.h"
#include "content/public/test/test_browser_thread.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_url_handlers.h"
@@ -187,7 +188,9 @@ class ThemeSyncableServiceTest : public testing::Test {
extensions::ExtensionPrefs::Get(profile_.get())
->AddGrantedPermissions(theme_extension_->id(), permissions.get());
service->AddExtension(theme_extension_.get());
- ASSERT_EQ(1u, service->extensions()->size());
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile_.get());
+ ASSERT_EQ(1u, registry->enabled_extensions().size());
}
// Overridden in PolicyInstalledThemeTest below.
diff --git a/chrome/browser/ui/app_list/app_list_test_util.cc b/chrome/browser/ui/app_list/app_list_test_util.cc
index da8f079..e67800b 100644
--- a/chrome/browser/ui/app_list/app_list_test_util.cc
+++ b/chrome/browser/ui/app_list/app_list_test_util.cc
@@ -7,6 +7,7 @@
#include "base/files/file_path.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/common/chrome_constants.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension_set.h"
const char AppListTestBase::kHostedAppId[] =
@@ -38,6 +39,5 @@ void AppListTestBase::SetUp() {
service_->Init();
// There should be 5 extensions in the test profile.
- const extensions::ExtensionSet* extensions = service_->extensions();
- ASSERT_EQ(static_cast<size_t>(5), extensions->size());
+ ASSERT_EQ(5U, registry()->enabled_extensions().size());
}
diff --git a/chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc b/chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc
index 07634c6..ee01e82 100644
--- a/chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc
+++ b/chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc
@@ -7,7 +7,6 @@
#include "ash/display/display_controller.h"
#include "ash/shell.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/media/media_capture_devices_dispatcher.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -15,7 +14,7 @@
#include "content/public/browser/web_contents.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function_dispatcher.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/view_type_utils.h"
#include "extensions/common/api/virtual_keyboard_private.h"
#include "extensions/common/constants.h"
@@ -97,10 +96,9 @@ void AshKeyboardControllerProxy::RequestAudioInput(
const extensions::Extension* extension = NULL;
GURL origin(request.security_origin);
if (origin.SchemeIs(extensions::kExtensionScheme)) {
- ExtensionService* extensions_service =
- extensions::ExtensionSystem::Get(
- GetBrowserContext())->extension_service();
- extension = extensions_service->extensions()->GetByID(origin.host());
+ const extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(GetBrowserContext());
+ extension = registry->enabled_extensions().GetByID(origin.host());
DCHECK(extension);
}
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index eda6e62..97ae8c6 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2440,8 +2440,9 @@ bool Browser::MaybeCreateBackgroundContents(
// can create BackgroundContents. We don't have to check for background
// permission as that is checked in RenderMessageFilter when the CreateWindow
// message is processed.
- const Extension* extension =
- extensions_service->extensions()->GetHostedAppByURL(opener_url);
+ const Extension* extension = extensions::ExtensionRegistry::Get(profile_)
+ ->enabled_extensions()
+ .GetHostedAppByURL(opener_url);
if (!extension)
return false;
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index e22312c..2b735c7 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -81,6 +81,7 @@
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_navigation_observer.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/uninstall_reason.h"
#include "extensions/common/extension.h"
@@ -334,13 +335,12 @@ class BrowserTest : public ExtensionBrowserTest {
// Returns the app extension aptly named "App Test".
const Extension* GetExtension() {
- const extensions::ExtensionSet* extensions =
- extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service()->extensions();
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- if ((*it)->name() == "App Test")
- return it->get();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser()->profile());
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
+ if (extension->name() == "App Test")
+ return extension.get();
}
NOTREACHED();
return NULL;
diff --git a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm
index 0b52383..a576002 100644
--- a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm
+++ b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm
@@ -20,7 +20,7 @@
#include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
#include "chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h"
#include "chrome/grit/generated_resources.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#import "third_party/google_toolbox_for_mac/src/AppKit/GTMNSAnimation+Duration.h"
#include "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h"
#import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h"
@@ -258,10 +258,10 @@ const float kHideDuration = 0.7;
- (NSString*)getLabelText {
if (bubbleType_ == FEB_TYPE_NONE)
return @"";
- ExtensionService* extension_service = extensions::ExtensionSystem::Get(
- browser_->profile())->extension_service();
- return SysUTF16ToNSString(fullscreen_bubble::GetLabelTextForType(
- bubbleType_, url_, extension_service));
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(browser_->profile());
+ return SysUTF16ToNSString(
+ fullscreen_bubble::GetLabelTextForType(bubbleType_, url_, registry));
}
// This looks at the Main Menu and determines what the user has set as the
diff --git a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc
index 18d1f11..ffd5d0a 100644
--- a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc
+++ b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc
@@ -11,7 +11,7 @@
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
#include "chrome/grit/generated_resources.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/rect.h"
#include "ui/strings/grit/ui_strings.h"
@@ -132,8 +132,7 @@ void FullscreenExitBubble::Cancel() {
base::string16 FullscreenExitBubble::GetCurrentMessageText() const {
return fullscreen_bubble::GetLabelTextForType(
bubble_type_, url_,
- extensions::ExtensionSystem::Get(
- browser_->profile())->extension_service());
+ extensions::ExtensionRegistry::Get(browser_->profile()));
}
base::string16 FullscreenExitBubble::GetCurrentDenyButtonText() const {
diff --git a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.cc b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.cc
index 36c0949..0c8c076 100644
--- a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.cc
+++ b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.cc
@@ -5,9 +5,9 @@
#include "chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -17,14 +17,11 @@ namespace fullscreen_bubble {
base::string16 GetLabelTextForType(FullscreenExitBubbleType type,
const GURL& url,
- ExtensionService* extension_service) {
+ extensions::ExtensionRegistry* registry) {
base::string16 host(base::UTF8ToUTF16(url.host()));
- if (extension_service) {
- const extensions::ExtensionSet* extensions =
- extension_service->extensions();
- DCHECK(extensions);
+ if (registry) {
const extensions::Extension* extension =
- extensions->GetExtensionOrAppByURL(url);
+ registry->enabled_extensions().GetExtensionOrAppByURL(url);
if (extension) {
host = base::UTF8ToUTF16(extension->name());
} else if (url.SchemeIs(extensions::kExtensionScheme)) {
diff --git a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h
index 885cc4f..d36d122 100644
--- a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h
+++ b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h
@@ -8,7 +8,9 @@
#include "base/strings/string16.h"
#include "url/gurl.h"
-class ExtensionService;
+namespace extensions {
+class ExtensionRegistry;
+}
// Describes the contents of the fullscreen exit bubble.
// For example, if the user already agreed to fullscreen mode and the
@@ -36,7 +38,7 @@ namespace fullscreen_bubble {
base::string16 GetLabelTextForType(FullscreenExitBubbleType type,
const GURL& url,
- ExtensionService* extension_service);
+ extensions::ExtensionRegistry* registry);
base::string16 GetDenyButtonTextForType(FullscreenExitBubbleType type);
bool ShowButtonsForType(FullscreenExitBubbleType type);
void PermissionRequestedByType(FullscreenExitBubbleType type,
diff --git a/chrome/browser/ui/location_bar/origin_chip_info.cc b/chrome/browser/ui/location_bar/origin_chip_info.cc
index 923ee68c..633b13d2 100644
--- a/chrome/browser/ui/location_bar/origin_chip_info.cc
+++ b/chrome/browser/ui/location_bar/origin_chip_info.cc
@@ -9,7 +9,6 @@
#include "base/prefs/pref_service.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/client_side_detection_host.h"
@@ -22,7 +21,7 @@
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_icon_image.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "grit/components_strings.h"
@@ -123,8 +122,9 @@ bool OriginChipInfo::Update(const content::WebContents* web_contents,
if (displayed_url_.SchemeIs(extensions::kExtensionScheme)) {
const extensions::Extension* extension =
- extensions::ExtensionSystem::Get(profile_)->extension_service()->
- extensions()->GetExtensionOrAppByURL(displayed_url_);
+ extensions::ExtensionRegistry::Get(profile_)
+ ->enabled_extensions()
+ .GetByID(displayed_url_.host());
if (extension) {
icon_ = IDR_EXTENSIONS_FAVICON;
@@ -197,10 +197,10 @@ base::string16 OriginChip::LabelFromURLForProfile(const GURL& provided_url,
// For chrome-extension URLs, return the extension name.
if (url.SchemeIs(extensions::kExtensionScheme)) {
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
const extensions::Extension* extension =
- service->extensions()->GetExtensionOrAppByURL(url);
+ extensions::ExtensionRegistry::Get(profile)
+ ->enabled_extensions()
+ .GetByID(url.host());
return extension ?
base::UTF8ToUTF16(extension->name()) : base::UTF8ToUTF16(url.host());
}
diff --git a/chrome/browser/ui/media_utils.cc b/chrome/browser/ui/media_utils.cc
index 52d4633..4520a19 100644
--- a/chrome/browser/ui/media_utils.cc
+++ b/chrome/browser/ui/media_utils.cc
@@ -9,8 +9,7 @@
#include "content/public/browser/web_contents.h"
#if defined(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_service.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#endif
@@ -22,10 +21,9 @@ const extensions::Extension* GetExtensionForOrigin(Profile* profile,
if (!security_origin.SchemeIs(extensions::kExtensionScheme))
return NULL;
- ExtensionService* extensions_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
const extensions::Extension* extension =
- extensions_service->extensions()->GetByID(security_origin.host());
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+ security_origin.host());
DCHECK(extension);
return extension;
}
diff --git a/chrome/browser/ui/sync/profile_signin_confirmation_helper.cc b/chrome/browser/ui/sync/profile_signin_confirmation_helper.cc
index 98d68a1..ef5fbb4 100644
--- a/chrome/browser/ui/sync/profile_signin_confirmation_helper.cc
+++ b/chrome/browser/ui/sync/profile_signin_confirmation_helper.cc
@@ -22,10 +22,9 @@
#include "ui/native_theme/native_theme.h"
#if defined(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/extensions/sync_helper.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -204,21 +203,19 @@ bool HasBeenShutdown(Profile* profile) {
bool HasSyncedExtensions(Profile* profile) {
#if defined(ENABLE_EXTENSIONS)
- extensions::ExtensionSystem* system =
- extensions::ExtensionSystem::Get(profile);
- if (system && system->extension_service()) {
- const extensions::ExtensionSet* extensions =
- system->extension_service()->extensions();
- for (extensions::ExtensionSet::const_iterator iter = extensions->begin();
- iter != extensions->end(); ++iter) {
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile);
+ if (registry) {
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
// The webstore is synced so that it stays put on the new tab
// page, but since it's installed by default we don't want to
// consider it when determining if the profile is dirty.
- if (extensions::sync_helper::IsSyncable(iter->get()) &&
- (*iter)->id() != extensions::kWebStoreAppId &&
- (*iter)->id() != extension_misc::kChromeAppId) {
+ if (extensions::sync_helper::IsSyncable(extension.get()) &&
+ extension->id() != extensions::kWebStoreAppId &&
+ extension->id() != extension_misc::kChromeAppId) {
DVLOG(1) << "ProfileSigninConfirmationHelper: "
- << "profile contains a synced extension: " << (*iter)->id();
+ << "profile contains a synced extension: " << extension->id();
return true;
}
}
diff --git a/chrome/browser/ui/views/location_bar/origin_chip_view.cc b/chrome/browser/ui/views/location_bar/origin_chip_view.cc
index 5ee0eed..1100065 100644
--- a/chrome/browser/ui/views/location_bar/origin_chip_view.cc
+++ b/chrome/browser/ui/views/location_bar/origin_chip_view.cc
@@ -9,7 +9,6 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
@@ -28,7 +27,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
#include "extensions/browser/extension_icon_image.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "grit/theme_resources.h"
@@ -127,9 +126,9 @@ const int kEVImages[3][9] = {
const extensions::Extension* GetExtension(const GURL& url, Profile* profile) {
if (!url.SchemeIs(extensions::kExtensionScheme))
return NULL;
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- return service->extensions()->GetExtensionOrAppByURL(url);
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile);
+ return registry->enabled_extensions().GetByID(url.host());
}
} // namespace
diff --git a/chrome/browser/ui/webui/extensions/extension_info_ui.cc b/chrome/browser/ui/webui/extensions/extension_info_ui.cc
index 439d3f6..5e1080f 100644
--- a/chrome/browser/ui/webui/extensions/extension_info_ui.cc
+++ b/chrome/browser/ui/webui/extensions/extension_info_ui.cc
@@ -8,7 +8,6 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/extensions/extension_basic_info.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
@@ -18,7 +17,7 @@
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "extensions/browser/extension_prefs.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_icon_set.h"
#include "grit/browser_resources.h"
@@ -57,10 +56,9 @@ GURL ExtensionInfoUI::GetURL(const std::string& extension_id) {
void ExtensionInfoUI::AddExtensionDataToSource(
const std::string& extension_id) {
Profile* profile = Profile::FromWebUI(web_ui());
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile)->extension_service();
const Extension* extension =
- extension_service->extensions()->GetByID(extension_id);
+ ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+ extension_id);
if (!extension)
return;
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
index 3327752..4bfe6e2 100644
--- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
+++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
@@ -24,6 +24,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension_set.h"
@@ -76,8 +77,10 @@ const Extension* ExtensionSettingsUIBrowserTest::InstallExtension(
Profile* profile = this->GetProfile();
ExtensionService* service =
extensions::ExtensionSystem::Get(profile)->extension_service();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(profile);
service->set_show_extensions_prompts(false);
- size_t num_before = service->extensions()->size();
+ size_t num_before = registry->enabled_extensions().size();
{
scoped_ptr<ExtensionInstallPrompt> install_ui;
install_ui.reset(new MockAutoConfirmExtensionInstallPrompt(
@@ -106,16 +109,15 @@ const Extension* ExtensionSettingsUIBrowserTest::InstallExtension(
observer_->Wait();
}
- size_t num_after = service->extensions()->size();
+ size_t num_after = registry->enabled_extensions().size();
if (num_before + 1 != num_after) {
VLOG(1) << "Num extensions before: " << base::IntToString(num_before)
<< " num after: " << base::IntToString(num_after)
<< " Installed extensions follow:";
- for (extensions::ExtensionSet::const_iterator it =
- service->extensions()->begin();
- it != service->extensions()->end(); ++it)
- VLOG(1) << " " << (*it)->id();
+ for (const scoped_refptr<const Extension>& extension :
+ registry->enabled_extensions())
+ VLOG(1) << " " << extension->id();
VLOG(1) << "Errors follow:";
const std::vector<base::string16>* errors =
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
index d00eaf3..1d4b6f7 100644
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
@@ -864,12 +864,13 @@ void ExtensionSettingsHandler::AppInfoDialogClosed() {
}
void ExtensionSettingsHandler::ReloadUnpackedExtensions() {
- const ExtensionSet* extensions = extension_service_->extensions();
+ ExtensionRegistry* registry =
+ ExtensionRegistry::Get(extension_service_->profile());
std::vector<const Extension*> unpacked_extensions;
- for (ExtensionSet::const_iterator extension = extensions->begin();
- extension != extensions->end(); ++extension) {
- if (Manifest::IsUnpackedLocation((*extension)->location()))
- unpacked_extensions.push_back(extension->get());
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
+ if (Manifest::IsUnpackedLocation(extension->location()))
+ unpacked_extensions.push_back(extension.get());
}
for (std::vector<const Extension*>::iterator iter =
@@ -998,10 +999,11 @@ void ExtensionSettingsHandler::HandleInspectMessage(
if (render_process_id == -1) {
// This message is for a lazy background page. Start the page if necessary.
+ Profile* profile = Profile::FromWebUI(web_ui());
const Extension* extension =
- extension_service_->extensions()->GetByID(extension_id);
+ ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+ extension_id);
DCHECK(extension);
- Profile* profile = Profile::FromWebUI(web_ui());
if (incognito)
profile = profile->GetOffTheRecordProfile();
devtools_util::InspectBackgroundPage(extension, profile);
diff --git a/chrome/browser/ui/webui/identity_internals_ui.cc b/chrome/browser/ui/webui/identity_internals_ui.cc
index c536177..becbe8f 100644
--- a/chrome/browser/ui/webui/identity_internals_ui.cc
+++ b/chrome/browser/ui/webui/identity_internals_ui.cc
@@ -12,7 +12,6 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/identity/identity_api.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
@@ -20,7 +19,7 @@
#include "content/public/browser/web_ui_controller.h"
#include "content/public/browser/web_ui_data_source.h"
#include "content/public/browser/web_ui_message_handler.h"
-#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_registry.h"
#include "google_apis/gaia/gaia_auth_fetcher.h"
#include "google_apis/gaia/gaia_constants.h"
#include "grit/browser_resources.h"
@@ -161,10 +160,10 @@ void IdentityInternalsUIMessageHandler::OnTokenRevokerDone(
const std::string IdentityInternalsUIMessageHandler::GetExtensionName(
const extensions::ExtensionTokenKey& token_cache_key) {
- ExtensionService* extension_service = extensions::ExtensionSystem::Get(
- Profile::FromWebUI(web_ui()))->extension_service();
+ const extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui()));
const extensions::Extension* extension =
- extension_service->extensions()->GetByID(token_cache_key.extension_id);
+ registry->enabled_extensions().GetByID(token_cache_key.extension_id);
if (!extension)
return std::string();
return extension->name();
diff --git a/chrome/browser/ui/webui/options/website_settings_handler.cc b/chrome/browser/ui/webui/options/website_settings_handler.cc
index 3373be7..dae5467 100644
--- a/chrome/browser/ui/webui/options/website_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/website_settings_handler.cc
@@ -4,7 +4,6 @@
#include "chrome/browser/ui/webui/options/website_settings_handler.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_iterator.h"
@@ -21,7 +20,6 @@
#include "content/public/browser/web_ui.h"
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_system.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "ui/base/l10n/l10n_util.h"
@@ -756,12 +754,10 @@ void WebsiteSettingsHandler::DeleteLocalStorage(const GURL& site_url) {
const std::string& WebsiteSettingsHandler::GetReadableName(
const GURL& site_url) {
if (site_url.SchemeIs(extensions::kExtensionScheme)) {
- Profile* profile = GetProfile();
- ExtensionService* extension_service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
-
+ const extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(GetProfile());
const extensions::Extension* extension =
- extension_service->extensions()->GetExtensionOrAppByURL(site_url);
+ registry->enabled_extensions().GetByID(site_url.host());
// If extension is NULL, it was removed and we cannot look up its name.
if (!extension)
return site_url.spec();
diff --git a/chrome/browser/ui/webui/policy_ui.cc b/chrome/browser/ui/webui/policy_ui.cc
index 726cb0e..773f23b 100644
--- a/chrome/browser/ui/webui/policy_ui.cc
+++ b/chrome/browser/ui/webui/policy_ui.cc
@@ -67,9 +67,8 @@
#include "content/public/browser/web_contents.h"
#endif
-#if !defined(OS_ANDROID) && !defined(OS_IOS)
-#include "chrome/browser/extensions/extension_service.h"
-#include "extensions/browser/extension_system.h"
+#if defined(ENABLE_EXTENSIONS)
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/manifest.h"
@@ -633,18 +632,12 @@ void PolicyUIHandler::SendPolicyNames() const {
}
names.Set("chromePolicyNames", chrome_policy_names);
-#if !defined(OS_ANDROID) && !defined(OS_IOS)
+#if defined(ENABLE_EXTENSIONS)
// Add extension policy names.
base::DictionaryValue* extension_policy_names = new base::DictionaryValue;
- extensions::ExtensionSystem* extension_system =
- extensions::ExtensionSystem::Get(profile);
- const extensions::ExtensionSet* extensions =
- extension_system->extension_service()->extensions();
-
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- const extensions::Extension* extension = it->get();
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) {
// Skip this extension if it's not an enterprise extension.
if (!extension->manifest()->HasPath(
extensions::manifest_keys::kStorageManagedSchema))
@@ -667,7 +660,7 @@ void PolicyUIHandler::SendPolicyNames() const {
extension_policy_names->Set(extension->id(), extension_value);
}
names.Set("extensionPolicyNames", extension_policy_names);
-#endif
+#endif // defined(ENABLE_EXTENSIONS)
web_ui()->CallJavascriptFunction("policy.Page.setPolicyNames", names);
}
@@ -680,17 +673,14 @@ void PolicyUIHandler::SendPolicyValues() const {
GetChromePolicyValues(chrome_policies);
all_policies.Set("chromePolicies", chrome_policies);
-#if !defined(OS_ANDROID) && !defined(OS_IOS)
+#if defined(ENABLE_EXTENSIONS)
// Add extension policy values.
- extensions::ExtensionSystem* extension_system =
- extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()));
- const extensions::ExtensionSet* extensions =
- extension_system->extension_service()->extensions();
+ extensions::ExtensionRegistry* registry =
+ extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui()));
base::DictionaryValue* extension_values = new base::DictionaryValue;
- for (extensions::ExtensionSet::const_iterator it = extensions->begin();
- it != extensions->end(); ++it) {
- const extensions::Extension* extension = it->get();
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ registry->enabled_extensions()) {
// Skip this extension if it's not an enterprise extension.
if (!extension->manifest()->HasPath(
extensions::manifest_keys::kStorageManagedSchema))
diff --git a/chrome/test/remoting/remote_desktop_browsertest.cc b/chrome/test/remoting/remote_desktop_browsertest.cc
index 82bf6e7..e03736e 100644
--- a/chrome/test/remoting/remote_desktop_browsertest.cc
+++ b/chrome/test/remoting/remote_desktop_browsertest.cc
@@ -18,6 +18,7 @@
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
@@ -134,34 +135,31 @@ void RemoteDesktopBrowserTest::UninstallChromotingApp() {
}
void RemoteDesktopBrowserTest::VerifyChromotingLoaded(bool expected) {
- const extensions::ExtensionSet* extensions =
- extension_service()->extensions();
- scoped_refptr<const extensions::Extension> extension;
bool installed = false;
- for (extensions::ExtensionSet::const_iterator iter = extensions->begin();
- iter != extensions->end(); ++iter) {
- extension = *iter;
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ extensions::ExtensionRegistry::Get(profile())->enabled_extensions()) {
// Is there a better way to recognize the chromoting extension
// than name comparison?
if (extension->name() == extension_name_) {
+ if (extension_) {
+ EXPECT_EQ(extension.get(), extension_);
+ } else {
+ extension_ = extension.get();
+ }
+
installed = true;
break;
}
}
if (installed) {
- if (extension_)
- EXPECT_EQ(extension.get(), extension_);
- else
- extension_ = extension.get();
-
// Either a V1 (TYPE_LEGACY_PACKAGED_APP) or a V2 (TYPE_PLATFORM_APP ) app.
- extensions::Manifest::Type type = extension->GetType();
+ extensions::Manifest::Type type = extension_->GetType();
EXPECT_TRUE(type == extensions::Manifest::TYPE_PLATFORM_APP ||
type == extensions::Manifest::TYPE_LEGACY_PACKAGED_APP);
- EXPECT_TRUE(extension->ShouldDisplayInAppLauncher());
+ EXPECT_TRUE(extension_->ShouldDisplayInAppLauncher());
}
ASSERT_EQ(installed, expected);