diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-22 19:41:55 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-22 19:41:55 +0000 |
commit | 03d25818b737701e17bb2e800f272be24a194767 (patch) | |
tree | 88ff93da0ae82dcfe436f6eff723e522088909a8 | |
parent | 61592f511e5e92b71458ece4200b8db9721cd10e (diff) | |
download | chromium_src-03d25818b737701e17bb2e800f272be24a194767.zip chromium_src-03d25818b737701e17bb2e800f272be24a194767.tar.gz chromium_src-03d25818b737701e17bb2e800f272be24a194767.tar.bz2 |
Cleanup: Remove most deprecated Profile::GetExtensionService() usage.
Review URL: https://codereview.chromium.org/329893002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279017 0039d316-1c4b-4281-b951-d872f2087c98
56 files changed, 429 insertions, 423 deletions
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc index d2c79d2..cf055d0 100644 --- a/chrome/browser/background/background_mode_manager.cc +++ b/chrome/browser/background/background_mode_manager.cc @@ -665,17 +665,20 @@ void BackgroundModeManager::OnBackgroundAppInstalled( void BackgroundModeManager::CheckReloadStatus( const Extension* extension, bool* is_being_reloaded) { - // Walk the BackgroundModeData for all profiles to see if one of their - // extensions is being reloaded. - for (BackgroundModeInfoMap::const_iterator it = - background_mode_data_.begin(); - it != background_mode_data_.end(); - ++it) { - Profile* profile = it->first; - // If the extension is being reloaded, no need to show a notification. - if (profile->GetExtensionService()->IsBeingReloaded(extension->id())) - *is_being_reloaded = true; + // Walk the BackgroundModeData for all profiles to see if one of their + // extensions is being reloaded. + for (BackgroundModeInfoMap::const_iterator it = + background_mode_data_.begin(); + it != background_mode_data_.end(); + ++it) { + ExtensionService* service = + extensions::ExtensionSystem::Get(it->first)->extension_service(); + // If the extension is being reloaded, no need to show a notification. + if (service->IsBeingReloaded(extension->id())) { + *is_being_reloaded = true; + return; } + } } void BackgroundModeManager::CreateStatusTrayIcon() { diff --git a/chrome/browser/background/background_mode_manager_unittest.cc b/chrome/browser/background/background_mode_manager_unittest.cc index ce9ca5f..f543385 100644 --- a/chrome/browser/background/background_mode_manager_unittest.cc +++ b/chrome/browser/background/background_mode_manager_unittest.cc @@ -19,6 +19,7 @@ #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" #include "content/public/test/test_browser_thread_bundle.h" +#include "extensions/browser/extension_system.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_unittest_util.h" @@ -107,6 +108,7 @@ class TestBackgroundModeManager : public BackgroundModeManager { } bool HaveStatusTray() const { return have_status_tray_; } bool IsLaunchOnStartup() const { return launch_on_startup_; } + private: bool enabled_; int app_count_; @@ -509,7 +511,8 @@ TEST_F(BackgroundModeManagerTest, BackgroundMenuGeneration) { CommandLine::ForCurrentProcess(), base::FilePath(), false); - ExtensionService* service = profile->GetExtensionService(); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); service->Init(); service->AddComponentExtension(component_extension); @@ -646,7 +649,8 @@ TEST_F(BackgroundModeManagerTest, BackgroundMenuGenerationMultipleProfile) { CommandLine::ForCurrentProcess(), base::FilePath(), false); - ExtensionService* service1 = profile1->GetExtensionService(); + ExtensionService* service1 = + extensions::ExtensionSystem::Get(profile1)->extension_service(); service1->Init(); service1->AddComponentExtension(component_extension); @@ -659,7 +663,8 @@ TEST_F(BackgroundModeManagerTest, BackgroundMenuGenerationMultipleProfile) { CommandLine::ForCurrentProcess(), base::FilePath(), false); - ExtensionService* service2 = profile2->GetExtensionService(); + ExtensionService* service2 = + extensions::ExtensionSystem::Get(profile2)->extension_service(); service2->Init(); service2->AddComponentExtension(component_extension); diff --git a/chrome/browser/devtools/devtools_target_impl.cc b/chrome/browser/devtools/devtools_target_impl.cc index eb32924..6a867e5 100644 --- a/chrome/browser/devtools/devtools_target_impl.cc +++ b/chrome/browser/devtools/devtools_target_impl.cc @@ -7,7 +7,6 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/devtools/devtools_window.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/guest_view/guest_view_base.h" #include "chrome/browser/profiles/profile.h" @@ -21,7 +20,9 @@ #include "content/public/browser/render_view_host.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/process_manager.h" #include "extensions/common/constants.h" using content::BrowserThread; @@ -98,33 +99,37 @@ RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab) if (is_tab) { set_type(kTargetTypePage); tab_id_ = extensions::ExtensionTabUtil::GetTabId(web_contents); - } else { - Profile* profile = - Profile::FromBrowserContext(web_contents->GetBrowserContext()); - if (profile) { - ExtensionService* extension_service = profile->GetExtensionService(); - const extensions::Extension* extension = extension_service-> - extensions()->GetByID(GetURL().host()); - if (extension) { - set_title(extension->name()); - extensions::ExtensionHost* extension_host = - extensions::ExtensionSystem::Get(profile)->process_manager()-> - GetBackgroundHostForExtension(extension->id()); - if (extension_host && - extension_host->host_contents() == web_contents) { - set_type(kTargetTypeBackgroundPage); - extension_id_ = extension->id(); - } else if (extension->is_hosted_app() - || extension->is_legacy_packaged_app() - || extension->is_platform_app()) { - set_type(kTargetTypeApp); - } - set_favicon_url(extensions::ExtensionIconSource::GetIconURL( - extension, extension_misc::EXTENSION_ICON_SMALLISH, - ExtensionIconSet::MATCH_BIGGER, false, NULL)); - } - } + return; + } + + const extensions::Extension* extension = extensions::ExtensionRegistry::Get( + web_contents->GetBrowserContext())->enabled_extensions().GetByID( + GetURL().host()); + if (!extension) + return; + + Profile* profile = + Profile::FromBrowserContext(web_contents->GetBrowserContext()); + if (!profile) + return; + extensions::ExtensionSystem* extension_system = + extensions::ExtensionSystem::Get(profile); + set_title(extension->name()); + extensions::ExtensionHost* extension_host = + extension_system->process_manager()->GetBackgroundHostForExtension( + extension->id()); + if (extension_host && + extension_host->host_contents() == web_contents) { + set_type(kTargetTypeBackgroundPage); + extension_id_ = extension->id(); + } else if (extension->is_hosted_app() + || extension->is_legacy_packaged_app() + || extension->is_platform_app()) { + set_type(kTargetTypeApp); } + set_favicon_url(extensions::ExtensionIconSource::GetIconURL( + extension, extension_misc::EXTENSION_ICON_SMALLISH, + ExtensionIconSet::MATCH_BIGGER, false, NULL)); } bool RenderViewHostTarget::Activate() const { @@ -282,7 +287,7 @@ std::string DevToolsTargetImpl::GetExtensionId() const { return std::string(); } -void DevToolsTargetImpl::Inspect(Profile*) const { +void DevToolsTargetImpl::Inspect(Profile* /*profile*/) const { } void DevToolsTargetImpl::Reload() const { diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc index 2d11ae2..3408545 100644 --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc @@ -90,11 +90,14 @@ namespace developer_private = api::developer_private; namespace { -const base::FilePath::CharType kUnpackedAppsFolder[] - = FILE_PATH_LITERAL("apps_target"); +const char kUnpackedAppsFolder[] = "apps_target"; + +ExtensionService* GetExtensionService(Profile* profile) { + return ExtensionSystem::Get(profile)->extension_service(); +} ExtensionUpdater* GetExtensionUpdater(Profile* profile) { - return profile->GetExtensionService()->updater(); + return GetExtensionService(profile)->updater(); } GURL GetImageURLFromData(const std::string& contents) { @@ -583,7 +586,7 @@ ItemInspectViewList DeveloperPrivateGetItemsInfoFunction:: BackgroundInfo::HasGeneratedBackgroundPage(extension))); } - ExtensionService* service = GetProfile()->GetExtensionService(); + ExtensionService* service = GetExtensionService(GetProfile()); // Repeat for the incognito process, if applicable. Don't try to get // app windows for incognito process. if (service->profile()->HasOffTheRecordProfile() && @@ -724,8 +727,8 @@ bool DeveloperPrivateReloadFunction::RunSync() { scoped_ptr<Reload::Params> params(Reload::Params::Create(*args_)); EXTENSION_FUNCTION_VALIDATE(params.get()); - ExtensionService* service = GetProfile()->GetExtensionService(); CHECK(!params->item_id.empty()); + ExtensionService* service = GetExtensionService(GetProfile()); service->ReloadExtension(params->item_id); return true; } @@ -765,12 +768,12 @@ DeveloperPrivateReloadFunction::~DeveloperPrivateReloadFunction() {} // This is called when the user clicks "Revoke File Access." void DeveloperPrivateShowPermissionsDialogFunction::InstallUIProceed() { - apps::SavedFilesService::Get(GetProfile()) - ->ClearQueue(GetProfile()->GetExtensionService()->GetExtensionById( - extension_id_, true)); - if (apps::AppRestoreService::Get(GetProfile()) - ->IsAppRestorable(extension_id_)) - apps::AppLoadService::Get(GetProfile())->RestartApplication(extension_id_); + Profile* profile = GetProfile(); + const Extension* extension = ExtensionRegistry::Get( + profile)->GetExtensionById(extension_id_, ExtensionRegistry::EVERYTHING); + apps::SavedFilesService::Get(profile)->ClearQueue(extension); + if (apps::AppRestoreService::Get(profile)->IsAppRestorable(extension_id_)) + apps::AppLoadService::Get(profile)->RestartApplication(extension_id_); SendResponse(true); Release(); } @@ -796,8 +799,8 @@ bool DeveloperPrivateEnableFunction::RunSync() { std::string extension_id = params->item_id; const Extension* extension = - ExtensionRegistry::Get(GetProfile()) - ->GetExtensionById(extension_id, ExtensionRegistry::EVERYTHING); + ExtensionRegistry::Get(GetProfile())->GetExtensionById( + extension_id, ExtensionRegistry::EVERYTHING); if (!extension) { LOG(ERROR) << "Did not find extension with id " << extension_id; return false; @@ -857,8 +860,7 @@ void DeveloperPrivateEnableFunction::OnRequirementsChecked( const std::string& extension_id, std::vector<std::string> requirements_errors) { if (requirements_errors.empty()) { - ExtensionService* service = GetProfile()->GetExtensionService(); - service->EnableExtension(extension_id); + GetExtensionService(GetProfile())->EnableExtension(extension_id); } else { ExtensionErrorReporter::GetInstance()->ReportError( base::UTF8ToUTF16(JoinString(requirements_errors, ' ')), @@ -881,12 +883,8 @@ bool DeveloperPrivateInspectFunction::RunSync() { if (render_process_id == -1) { // This is a lazy background page. Identify if it is a normal // or incognito background page. - ExtensionService* service = GetProfile()->GetExtensionService(); - if (options.incognito) - service = ExtensionSystem::Get( - service->profile()->GetOffTheRecordProfile())->extension_service(); - const Extension* extension = service->extensions()->GetByID( - options.extension_id); + const Extension* extension = ExtensionRegistry::Get( + GetProfile())->enabled_extensions().GetByID(options.extension_id); DCHECK(extension); // Wakes up the background page and opens the inspect window. devtools_util::InspectBackgroundPage(extension, GetProfile()); @@ -926,7 +924,7 @@ bool DeveloperPrivateLoadUnpackedFunction::RunAsync() { void DeveloperPrivateLoadUnpackedFunction::FileSelected( const base::FilePath& path) { - ExtensionService* service = GetProfile()->GetExtensionService(); + ExtensionService* service = GetExtensionService(GetProfile()); UnpackedInstaller::Create(service)->Load(path); DeveloperPrivateAPI::Get(GetProfile())->SetLastUnpackedDirectory(path); SendResponse(true); @@ -1094,7 +1092,7 @@ bool DeveloperPrivateLoadDirectoryFunction::RunAsync() { project_base_url_ = directory_url_str.substr(0, pos + 1); base::FilePath project_path(GetProfile()->GetPath()); - project_path = project_path.Append(kUnpackedAppsFolder); + project_path = project_path.AppendASCII(kUnpackedAppsFolder); project_path = project_path.Append( base::FilePath::FromUTF8Unsafe(project_name)); @@ -1121,7 +1119,7 @@ bool DeveloperPrivateLoadDirectoryFunction::RunAsync() { } void DeveloperPrivateLoadDirectoryFunction::Load() { - ExtensionService* service = GetProfile()->GetExtensionService(); + ExtensionService* service = GetExtensionService(GetProfile()); UnpackedInstaller::Create(service)->Load(project_base_path_); // TODO(grv) : The unpacked installer should fire an event when complete @@ -1134,7 +1132,7 @@ void DeveloperPrivateLoadDirectoryFunction::ClearExistingDirectoryContent( const base::FilePath& project_path) { // Clear the project directory before copying new files. - base::DeleteFile(project_path, true/*recursive*/); + base::DeleteFile(project_path, true /*recursive*/); pending_copy_operations_count_ = 1; diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc index 489a25e..b8f7c06 100644 --- a/chrome/browser/extensions/api/management/management_api.cc +++ b/chrome/browser/extensions/api/management/management_api.cc @@ -287,11 +287,11 @@ void AddExtensionInfo(const ExtensionSet& extensions, } // namespace ExtensionService* ManagementFunction::service() { - return GetProfile()->GetExtensionService(); + return extensions::ExtensionSystem::Get(GetProfile())->extension_service(); } ExtensionService* AsyncManagementFunction::service() { - return GetProfile()->GetExtensionService(); + return extensions::ExtensionSystem::Get(GetProfile())->extension_service(); } bool ManagementGetAllFunction::RunSync() { @@ -665,7 +665,6 @@ void ManagementUninstallFunctionBase::Finish(bool should_uninstall) { keys::kUninstallCanceledError, extension_id_); SendResponse(false); } - } void ManagementUninstallFunctionBase::ExtensionUninstallAccepted() { diff --git a/chrome/browser/extensions/api/media_galleries_private/gallery_watch_state_tracker.cc b/chrome/browser/extensions/api/media_galleries_private/gallery_watch_state_tracker.cc index a7b4e72..2c4f4e7 100644 --- a/chrome/browser/extensions/api/media_galleries_private/gallery_watch_state_tracker.cc +++ b/chrome/browser/extensions/api/media_galleries_private/gallery_watch_state_tracker.cc @@ -16,7 +16,6 @@ #include "chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager.h" #include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h" #include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_event_router.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/state_store.h" #include "chrome/browser/media_galleries/media_file_system_registry.h" #include "chrome/browser/media_galleries/media_galleries_preferences.h" @@ -63,10 +62,8 @@ scoped_ptr<base::ListValue> WatchedGalleryIdsToValue( // Looks up an extension by ID. Does not include disabled extensions. const Extension* GetExtensionById(Profile* profile, const std::string& extension_id) { - ExtensionService* service = profile->GetExtensionService(); - if (!service) - return NULL; - return service->GetExtensionById(extension_id, false); + return ExtensionRegistry::Get(profile)->enabled_extensions().GetByID( + extension_id); } } // namespace diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc index 17b2922..9af7934 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc @@ -4,30 +4,27 @@ #include "base/basictypes.h" #include "base/command_line.h" -#if defined(OS_MACOSX) -#include "base/mac/mac_util.h" -#endif #include "base/strings/stringprintf.h" -#include "base/win/windows_version.h" #include "chrome/browser/extensions/extension_apitest.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_test_message_listener.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" -#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" -#include "chrome/test/base/test_switches.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" -#include "content/public/common/content_switches.h" -#include "extensions/common/feature_switch.h" -#include "extensions/common/features/base_feature_provider.h" -#include "extensions/common/features/complex_feature.h" -#include "extensions/common/features/feature.h" -#include "extensions/common/features/simple_feature.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/switches.h" -#include "ui/compositor/compositor_switches.h" + +#if defined(OS_WIN) +#include "base/win/windows_version.h" +#endif + +#if defined(OS_WIN) && defined(USE_ASH) +#include "chrome/test/base/test_switches.h" +#endif + +namespace extensions { namespace { @@ -37,7 +34,7 @@ class TabCaptureApiTest : public ExtensionApiTest { public: void AddExtensionToCommandLineWhitelist() { CommandLine::ForCurrentProcess()->AppendSwitchASCII( - extensions::switches::kWhitelistedExtensionID, kExtensionId); + switches::kWhitelistedExtensionID, kExtensionId); } }; @@ -49,12 +46,10 @@ class TabCaptureApiPixelTest : public TabCaptureApiTest { } }; -} // namespace - IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, ApiTests) { #if defined(OS_WIN) && defined(USE_ASH) // Disable this test in Metro+Ash for now (http://crbug.com/262796). - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) + if (CommandLine::ForCurrentProcess()->HasSwitch(::switches::kAshBrowserTests)) return; #endif @@ -163,12 +158,10 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_ActiveTabPermission) { // Grant permission and make sure capture succeeds. EXPECT_TRUE(before_grant_permission.WaitUntilSatisfied()); - ExtensionService* extension_service = - Profile::FromBrowserContext(web_contents->GetBrowserContext()) - ->GetExtensionService(); - const extensions::Extension* extension = - extension_service->GetExtensionById(kExtensionId, false); - extensions::TabHelper::FromWebContents(web_contents) + const Extension* extension = ExtensionRegistry::Get( + web_contents->GetBrowserContext())->enabled_extensions().GetByID( + kExtensionId); + TabHelper::FromWebContents(web_contents) ->active_tab_permission_granter()->GrantIfRequested(extension); before_grant_permission.Reply(""); @@ -259,12 +252,11 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_GrantForChromePages) { NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false); content::WebContents* web_contents = browser()->OpenURL(params); - ExtensionService* extension_service = - Profile::FromBrowserContext(web_contents->GetBrowserContext()) - ->GetExtensionService(); - extensions::TabHelper::FromWebContents(web_contents) - ->active_tab_permission_granter()->GrantIfRequested( - extension_service->GetExtensionById(kExtensionId, false)); + const Extension* extension = ExtensionRegistry::Get( + web_contents->GetBrowserContext())->enabled_extensions().GetByID( + kExtensionId); + TabHelper::FromWebContents(web_contents) + ->active_tab_permission_granter()->GrantIfRequested(extension); before_open_tab.Reply(""); ResultCatcher catcher; @@ -297,3 +289,7 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_Constraints) { ASSERT_TRUE(RunExtensionSubtest("tab_capture", "constraints.html")) << message_; } + +} // namespace + +} // namespace extensions diff --git a/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc b/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc index 9b51433..ef3a201 100644 --- a/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc +++ b/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc @@ -4,19 +4,21 @@ #include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension_constants.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension.h" +namespace extensions { + namespace { const char kCroshExtensionEntryPoint[] = "/html/crosh.html"; -const extensions::Extension* GetTerminalExtension(Profile* profile) { +const Extension* GetTerminalExtension(Profile* profile) { // Search order for terminal extensions. // We prefer hterm-dev, then hterm, then the builtin crosh extension. - static const char* kPossibleAppIds[] = { + static const char* const kPossibleAppIds[] = { extension_misc::kHTermDevAppId, extension_misc::kHTermAppId, extension_misc::kCroshBuiltinAppId, @@ -25,10 +27,11 @@ const extensions::Extension* GetTerminalExtension(Profile* profile) { // The hterm-dev should be first in the list. DCHECK_EQ(kPossibleAppIds[0], extension_misc::kHTermDevAppId); - ExtensionService* service = profile->GetExtensionService(); - for (size_t x = 0; x < arraysize(kPossibleAppIds); ++x) { - const extensions::Extension* extension = service->GetExtensionById( - kPossibleAppIds[x], false); + const ExtensionSet& extensions = + ExtensionRegistry::Get(profile)->enabled_extensions(); + for (size_t i = 0; i < arraysize(kPossibleAppIds); ++i) { + const extensions::Extension* extension = + extensions.GetByID(kPossibleAppIds[i]); if (extension) return extension; } @@ -38,14 +41,12 @@ const extensions::Extension* GetTerminalExtension(Profile* profile) { } // namespace -namespace extensions { - GURL TerminalExtensionHelper::GetCroshExtensionURL(Profile* profile) { + GURL url; const extensions::Extension* extension = GetTerminalExtension(profile); - if (!extension) - return GURL(); - - return extension->GetResourceURL(kCroshExtensionEntryPoint); + if (extension) + url = extension->GetResourceURL(kCroshExtensionEntryPoint); + return url; } } // namespace extensions diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc index 0d78574..34db2a3 100644 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc @@ -37,6 +37,7 @@ #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/test/browser_test_utils.h" +#include "extensions/browser/extension_system.h" #include "gpu/config/gpu_feature_type.h" #include "gpu/config/gpu_info.h" #include "net/dns/mock_host_resolver.h" @@ -222,7 +223,7 @@ class ExtensionWebstorePrivateApiTest : public ExtensionApiTest { } ExtensionService* service() { - return browser()->profile()->GetExtensionService(); + return ExtensionSystem::Get(browser()->profile())->extension_service(); } FakeSigninManagerForTesting* signin_manager_; @@ -275,7 +276,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest, InstallAccepted) { } // Test having the default download directory missing. - IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest, MissingDownloadDir) { +IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest, MissingDownloadDir) { // Set a non-existent directory as the download path. base::ScopedTempDir temp_dir; EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); diff --git a/chrome/browser/extensions/chrome_app_api_browsertest.cc b/chrome/browser/extensions/chrome_app_api_browsertest.cc index 86428bf..13e37c6 100644 --- a/chrome/browser/extensions/chrome_app_api_browsertest.cc +++ b/chrome/browser/extensions/chrome_app_api_browsertest.cc @@ -286,15 +286,17 @@ IN_PROC_BROWSER_TEST_F(ChromeAppAPITest, InstallAndRunningState) { EXPECT_TRUE(IsAppInstalledInMainFrame()); // Disable the extension and verify the state. - browser()->profile()->GetExtensionService()->DisableExtension( - extension->id(), Extension::DISABLE_PERMISSIONS_INCREASE); + ExtensionService* service = extensions::ExtensionSystem::Get( + browser()->profile())->extension_service(); + service->DisableExtension(extension->id(), + Extension::DISABLE_PERMISSIONS_INCREASE); ui_test_utils::NavigateToURL(browser(), app_url); EXPECT_EQ("disabled", InstallStateInMainFrame()); EXPECT_EQ("cannot_run", RunningStateInMainFrame()); EXPECT_FALSE(IsAppInstalledInMainFrame()); - browser()->profile()->GetExtensionService()->EnableExtension(extension->id()); + service->EnableExtension(extension->id()); EXPECT_EQ("installed", InstallStateInMainFrame()); EXPECT_EQ("ready_to_run", RunningStateInMainFrame()); EXPECT_FALSE(IsAppInstalledInMainFrame()); @@ -309,7 +311,6 @@ IN_PROC_BROWSER_TEST_F(ChromeAppAPITest, InstallAndRunningState) { EXPECT_EQ("installed", InstallStateInIFrame()); EXPECT_EQ("cannot_run", RunningStateInIFrame()); EXPECT_FALSE(IsAppInstalledInIFrame()); - } IN_PROC_BROWSER_TEST_F(ChromeAppAPITest, InstallAndRunningStateFrame) { diff --git a/chrome/browser/extensions/convert_web_app_browsertest.cc b/chrome/browser/extensions/convert_web_app_browsertest.cc index b53893e..57e8f13 100644 --- a/chrome/browser/extensions/convert_web_app_browsertest.cc +++ b/chrome/browser/extensions/convert_web_app_browsertest.cc @@ -21,6 +21,7 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" #include "extensions/common/manifest_handlers/icons_handler.h" @@ -62,8 +63,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionFromWebAppTest, DISABLED_Basic) { return; #endif - browser()->profile()->GetExtensionService()->set_show_extensions_prompts( - false); + ExtensionService* service = + ExtensionSystem::Get(browser()->profile())->extension_service(); + service->set_show_extensions_prompts(false); content::NotificationRegistrar registrar; registrar.Add(this, diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc index f57284f..b0477b2 100644 --- a/chrome/browser/extensions/extension_browsertest.cc +++ b/chrome/browser/extensions/extension_browsertest.cc @@ -455,7 +455,8 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension( Extension::InitFromValueFlags creation_flags, bool install_immediately, bool is_ephemeral) { - ExtensionService* service = profile()->GetExtensionService(); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile())->extension_service(); service->set_show_extensions_prompts(false); size_t num_before = service->extensions()->size(); diff --git a/chrome/browser/extensions/extension_context_menu_browsertest.cc b/chrome/browser/extensions/extension_context_menu_browsertest.cc index 8891138..e13aba9 100644 --- a/chrome/browser/extensions/extension_context_menu_browsertest.cc +++ b/chrome/browser/extensions/extension_context_menu_browsertest.cc @@ -5,7 +5,6 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/extensions/extension_browsertest.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_test_message_listener.h" #include "chrome/browser/extensions/lazy_background_page_test_util.h" #include "chrome/browser/profiles/profile.h" @@ -15,7 +14,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/common/context_menu_params.h" -#include "extensions/browser/extension_system.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/test_management_policy.h" #include "extensions/common/extension_set.h" #include "extensions/common/switches.h" @@ -67,10 +66,11 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest { // Returns a pointer to the currently loaded extension with |name|, or null // if not found. const extensions::Extension* GetExtensionNamed(const std::string& name) { - const extensions::ExtensionSet* extensions = - browser()->profile()->GetExtensionService()->extensions(); - for (extensions::ExtensionSet::const_iterator i = extensions->begin(); - i != extensions->end(); ++i) { + const extensions::ExtensionSet& extensions = + extensions::ExtensionRegistry::Get( + browser()->profile())->enabled_extensions(); + for (extensions::ExtensionSet::const_iterator i = extensions.begin(); + i != extensions.end(); ++i) { if ((*i)->name() == name) { return i->get(); } @@ -140,8 +140,8 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest { ASSERT_EQ(!enabled, menu->IsCommandIdEnabled(command_id)); } - bool MenuHasExtensionItemWithLabel(TestRenderViewContextMenu* menu, - const std::string& label) { + bool MenuHasExtensionItemWithLabel(TestRenderViewContextMenu* menu, + const std::string& label) { base::string16 label16 = base::UTF8ToUTF16(label); std::map<int, MenuItem::Id>::iterator i; for (i = menu->extension_items().extension_item_map_.begin(); diff --git a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc index 5082ded..3f577d7 100644 --- a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc +++ b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc @@ -48,7 +48,8 @@ class ExtensionCrashRecoveryTestBase : public ExtensionBrowserTest { virtual size_t CountBalloons() = 0; ExtensionService* GetExtensionService() { - return browser()->profile()->GetExtensionService(); + return extensions::ExtensionSystem::Get(browser()->profile())-> + extension_service(); } extensions::ProcessManager* GetProcessManager() { @@ -127,8 +128,7 @@ class ExtensionCrashRecoveryTestBase : public ExtensionBrowserTest { std::string second_extension_id_; }; -class MAYBE_ExtensionCrashRecoveryTest - : public ExtensionCrashRecoveryTestBase { +class MAYBE_ExtensionCrashRecoveryTest : public ExtensionCrashRecoveryTestBase { protected: virtual void AcceptNotification(size_t index) OVERRIDE { message_center::MessageCenter* message_center = @@ -136,8 +136,8 @@ class MAYBE_ExtensionCrashRecoveryTest ASSERT_GT(message_center->NotificationCount(), index); message_center::NotificationList::Notifications::reverse_iterator it = message_center->GetVisibleNotifications().rbegin(); - for (size_t i=0; i < index; ++i) - it++; + for (size_t i = 0; i < index; ++i) + ++it; std::string id = (*it)->id(); message_center->ClickOnNotification(id); WaitForExtensionLoad(); @@ -149,7 +149,8 @@ class MAYBE_ExtensionCrashRecoveryTest ASSERT_GT(message_center->NotificationCount(), index); message_center::NotificationList::Notifications::reverse_iterator it = message_center->GetVisibleNotifications().rbegin(); - for (size_t i=0; i < index; i++) { it++; } + for (size_t i = 0; i < index; ++i) + ++it; ASSERT_TRUE(g_browser_process->notification_ui_manager()-> CancelById((*it)->id())); } diff --git a/chrome/browser/extensions/extension_disabled_ui_browsertest.cc b/chrome/browser/extensions/extension_disabled_ui_browsertest.cc index 5cd748a..4a523e7 100644 --- a/chrome/browser/extensions/extension_disabled_ui_browsertest.cc +++ b/chrome/browser/extensions/extension_disabled_ui_browsertest.cc @@ -22,6 +22,7 @@ #include "content/test/net/url_request_prepackaged_interceptor.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "net/url_request/url_fetcher.h" #include "sync/protocol/extension_specifics.pb.h" @@ -41,22 +42,24 @@ class ExtensionDisabledGlobalErrorTest : public ExtensionBrowserTest { virtual void SetUpOnMainThread() OVERRIDE { EXPECT_TRUE(scoped_temp_dir_.CreateUniqueTempDir()); - service_ = browser()->profile()->GetExtensionService(); + service_ = extensions::ExtensionSystem::Get( + browser()->profile())->extension_service(); registry_ = ExtensionRegistry::Get(browser()->profile()); - base::FilePath pem_path = test_data_dir_. - AppendASCII("permissions_increase").AppendASCII("permissions.pem"); + const base::FilePath test_dir = + test_data_dir_.AppendASCII("permissions_increase"); + const base::FilePath pem_path = test_dir.AppendASCII("permissions.pem"); path_v1_ = PackExtensionWithOptions( - test_data_dir_.AppendASCII("permissions_increase").AppendASCII("v1"), + test_dir.AppendASCII("v1"), scoped_temp_dir_.path().AppendASCII("permissions1.crx"), pem_path, base::FilePath()); path_v2_ = PackExtensionWithOptions( - test_data_dir_.AppendASCII("permissions_increase").AppendASCII("v2"), + test_dir.AppendASCII("v2"), scoped_temp_dir_.path().AppendASCII("permissions2.crx"), pem_path, base::FilePath()); path_v3_ = PackExtensionWithOptions( - test_data_dir_.AppendASCII("permissions_increase").AppendASCII("v3"), + test_dir.AppendASCII("v3"), scoped_temp_dir_.path().AppendASCII("permissions3.crx"), pem_path, base::FilePath()); diff --git a/chrome/browser/extensions/extension_functional_browsertest.cc b/chrome/browser/extensions/extension_functional_browsertest.cc index 21500d1..ec9c0bf 100644 --- a/chrome/browser/extensions/extension_functional_browsertest.cc +++ b/chrome/browser/extensions/extension_functional_browsertest.cc @@ -11,11 +11,12 @@ #include "chrome/browser/ui/browser_commands.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/notification_service.h" +#include "extensions/browser/extension_system.h" namespace extensions { class ExtensionFunctionalTest : public ExtensionBrowserTest { -public: + public: void InstallExtensionSilently(ExtensionService* service, const char* filename) { service->set_show_extensions_prompts(false); @@ -50,16 +51,19 @@ public: last_loaded_extension_id(), false); EXPECT_TRUE(extension != NULL); } + + ExtensionService* GetExtensionService() { + return ExtensionSystem::Get(profile())->extension_service(); + } }; IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest, PRE_TestAdblockExtensionCrash) { - ExtensionService* service = profile()->GetExtensionService(); - InstallExtensionSilently(service, "adblock.crx"); + InstallExtensionSilently(GetExtensionService(), "adblock.crx"); } IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest, TestAdblockExtensionCrash) { - ExtensionService* service = profile()->GetExtensionService(); + ExtensionService* service = GetExtensionService(); // Verify that the extension is enabled and allowed in incognito // is disabled. EXPECT_TRUE(service->IsExtensionEnabled(last_loaded_extension_id())); @@ -67,11 +71,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest, TestAdblockExtensionCrash) { } IN_PROC_BROWSER_TEST_F(ExtensionFunctionalTest, TestSetExtensionsState) { - ExtensionService* service = profile()->GetExtensionService(); - InstallExtensionSilently(service, "google_talk.crx"); + InstallExtensionSilently(GetExtensionService(), "google_talk.crx"); // Disable the extension and verify. util::SetIsIncognitoEnabled(last_loaded_extension_id(), profile(), false); + ExtensionService* service = GetExtensionService(); 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_message_bubble_controller_unittest.cc b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc index b33c31b..082d662 100644 --- a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc +++ b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc @@ -24,6 +24,7 @@ #include "extensions/browser/extension_pref_value_map_factory.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "extensions/common/extension_builder.h" #include "extensions/common/feature_switch.h" @@ -394,7 +395,7 @@ class ExtensionMessageBubbleTest : public testing::Test { CommandLine::ForCurrentProcess(), base::FilePath(), false); - service_ = profile_->GetExtensionService(); + service_ = ExtensionSystem::Get(profile())->extension_service(); service_->Init(); } diff --git a/chrome/browser/extensions/extension_web_ui.cc b/chrome/browser/extensions/extension_web_ui.cc index 4b395dc..d75eaae 100644 --- a/chrome/browser/extensions/extension_web_ui.cc +++ b/chrome/browser/extensions/extension_web_ui.cc @@ -13,7 +13,6 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/favicon/favicon_service.h" @@ -155,9 +154,8 @@ ExtensionWebUI::ExtensionWebUI(content::WebUI* web_ui, const GURL& url) : WebUIController(web_ui), url_(url) { Profile* profile = Profile::FromWebUI(web_ui); - ExtensionService* service = profile->GetExtensionService(); - const Extension* extension = - service->extensions()->GetExtensionOrAppByURL(url); + const Extension* extension = extensions::ExtensionRegistry::Get( + profile)->enabled_extensions().GetExtensionOrAppByURL(url); DCHECK(extension); // The base class defaults to enabling WebUI bindings, but we don't need @@ -407,14 +405,8 @@ void ExtensionWebUI::GetFaviconForURL( Profile* profile, const GURL& page_url, const favicon_base::FaviconResultsCallback& callback) { - // Even when the extensions service is enabled by default, it's still - // disabled in incognito mode. - ExtensionService* service = profile->GetExtensionService(); - if (!service) { - RunFaviconCallbackAsync(callback, gfx::Image()); - return; - } - const Extension* extension = service->extensions()->GetByID(page_url.host()); + const Extension* extension = extensions::ExtensionRegistry::Get( + profile)->enabled_extensions().GetByID(page_url.host()); if (!extension) { RunFaviconCallbackAsync(callback, gfx::Image()); return; diff --git a/chrome/browser/extensions/extension_web_ui_unittest.cc b/chrome/browser/extensions/extension_web_ui_unittest.cc index 9596fc6..7d69656 100644 --- a/chrome/browser/extensions/extension_web_ui_unittest.cc +++ b/chrome/browser/extensions/extension_web_ui_unittest.cc @@ -9,6 +9,7 @@ #include "chrome/browser/extensions/test_extension_system.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "extensions/common/extension_builder.h" #include "extensions/common/manifest_constants.h" @@ -57,18 +58,18 @@ class ExtensionWebUITest : public testing::Test { // non-component extension url overrides. TEST_F(ExtensionWebUITest, ExtensionURLOverride) { // Register a non-component extension. - extensions::DictionaryBuilder manifest; + DictionaryBuilder manifest; manifest.Set(manifest_keys::kName, "ext1") .Set(manifest_keys::kVersion, "0.1") .Set(std::string(manifest_keys::kChromeURLOverrides), - extensions::DictionaryBuilder().Set("bookmarks", "1.html")); + DictionaryBuilder().Set("bookmarks", "1.html")); scoped_refptr<Extension> ext_unpacked( - extensions::ExtensionBuilder() + ExtensionBuilder() .SetManifest(manifest) .SetLocation(Manifest::UNPACKED) .SetID("abcdefghijabcdefghijabcdefghijaa") .Build()); - profile_->GetExtensionService()->AddExtension(ext_unpacked.get()); + extension_service_->AddExtension(ext_unpacked.get()); GURL expected_unpacked_override_url(std::string(ext_unpacked->url().spec()) + "1.html"); @@ -77,18 +78,18 @@ TEST_F(ExtensionWebUITest, ExtensionURLOverride) { EXPECT_EQ(url, expected_unpacked_override_url); // Register a component extension - extensions::DictionaryBuilder manifest2; + DictionaryBuilder manifest2; manifest2.Set(manifest_keys::kName, "ext2") .Set(manifest_keys::kVersion, "0.1") .Set(std::string(manifest_keys::kChromeURLOverrides), - extensions::DictionaryBuilder().Set("bookmarks", "2.html")); + DictionaryBuilder().Set("bookmarks", "2.html")); scoped_refptr<Extension> ext_component( - extensions::ExtensionBuilder() + ExtensionBuilder() .SetManifest(manifest2) .SetLocation(Manifest::COMPONENT) .SetID("bbabcdefghijabcdefghijabcdefghij") .Build()); - profile_->GetExtensionService()->AddComponentExtension(ext_component.get()); + extension_service_->AddComponentExtension(ext_component.get()); // Despite being registered more recently, the component extension should // not take precedence over the non-component extension. diff --git a/chrome/browser/extensions/isolated_app_browsertest.cc b/chrome/browser/extensions/isolated_app_browsertest.cc index 26187c2..ca76039 100644 --- a/chrome/browser/extensions/isolated_app_browsertest.cc +++ b/chrome/browser/extensions/isolated_app_browsertest.cc @@ -5,8 +5,6 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.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/browser/ui/browser_commands.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" @@ -18,6 +16,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" #include "extensions/browser/extension_host.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/process_map.h" #include "extensions/common/switches.h" #include "net/dns/mock_host_resolver.h" @@ -28,8 +27,10 @@ using content::ExecuteScript; using content::ExecuteScriptAndExtractString; using content::NavigationController; -using content::WebContents; using content::RenderViewHost; +using content::WebContents; + +namespace extensions { namespace { @@ -107,35 +108,29 @@ class IsolatedAppTest : public ExtensionBrowserTest { return actual_cookie.find(cookie) != std::string::npos; } - const extensions::Extension* GetInstalledApp(WebContents* contents) { - const extensions::Extension* installed_app = NULL; - Profile* profile = - Profile::FromBrowserContext(contents->GetBrowserContext()); - ExtensionService* service = profile->GetExtensionService(); - if (service) { - std::set<std::string> extension_ids = - extensions::ProcessMap::Get(profile)->GetExtensionsInProcess( - contents->GetRenderViewHost()->GetProcess()->GetID()); - for (std::set<std::string>::iterator iter = extension_ids.begin(); - iter != extension_ids.end(); ++iter) { - installed_app = service->extensions()->GetByID(*iter); - if (installed_app && installed_app->is_app()) - return installed_app; - } + const Extension* GetInstalledApp(WebContents* contents) { + content::BrowserContext* browser_context = contents->GetBrowserContext(); + ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context); + std::set<std::string> extension_ids = + ProcessMap::Get(browser_context)->GetExtensionsInProcess( + contents->GetRenderViewHost()->GetProcess()->GetID()); + for (std::set<std::string>::iterator iter = extension_ids.begin(); + iter != extension_ids.end(); ++iter) { + const Extension* installed_app = + registry->enabled_extensions().GetByID(*iter); + if (installed_app && installed_app->is_app()) + return installed_app; } return NULL; } private: - virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { + virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE { ExtensionBrowserTest::SetUpCommandLine(command_line); - command_line->AppendSwitch( - extensions::switches::kEnableExperimentalExtensionApis); + command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); } }; -} // namespace - IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossProcessClientRedirect) { host_resolver()->AddRule("*", "127.0.0.1"); ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); @@ -304,7 +299,6 @@ IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_CookieIsolation) { EXPECT_TRUE(HasCookie(tab0, "app1=3")); EXPECT_FALSE(HasCookie(tab0, "app2")); EXPECT_FALSE(HasCookie(tab0, "normalPage")); - } // This test is disabled due to being flaky. http://crbug.com/145588 @@ -595,3 +589,7 @@ IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_SessionStorage) { kRetrieveSessionStorage.c_str(), &result)); EXPECT_EQ("ss_normal", result); } + +} // namespace + +} // namespace extensions diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc index e6ad1bc..43df23d 100644 --- a/chrome/browser/extensions/tab_helper.cc +++ b/chrome/browser/extensions/tab_helper.cc @@ -219,7 +219,7 @@ SkBitmap* TabHelper::GetExtensionAppIcon() { } void TabHelper::FinishCreateBookmarkApp( - const extensions::Extension* extension, + const Extension* extension, const WebApplicationInfo& web_app_info) { pending_web_app_action_ = NONE; @@ -370,7 +370,8 @@ void TabHelper::OnDidGetApplicationInfo(int32 page_id, web_app_info_.title = base::UTF8ToUTF16(web_app_info_.app_url.spec()); bookmark_app_helper_.reset(new BookmarkAppHelper( - profile_->GetExtensionService(), web_app_info_, web_contents())); + ExtensionSystem::Get(profile_)->extension_service(), + web_app_info_, web_contents())); bookmark_app_helper_->Create(base::Bind( &TabHelper::FinishCreateBookmarkApp, base::Unretained(this))); break; @@ -499,15 +500,9 @@ const Extension* TabHelper::GetExtension(const std::string& extension_app_id) { if (extension_app_id.empty()) return NULL; - Profile* profile = - Profile::FromBrowserContext(web_contents()->GetBrowserContext()); - ExtensionService* extension_service = profile->GetExtensionService(); - if (!extension_service || !extension_service->is_ready()) - return NULL; - - const Extension* extension = - extension_service->GetExtensionById(extension_app_id, false); - return extension; + content::BrowserContext* context = web_contents()->GetBrowserContext(); + return ExtensionRegistry::Get(context)->enabled_extensions().GetByID( + extension_app_id); } void TabHelper::UpdateExtensionAppIcon(const Extension* extension) { @@ -519,7 +514,7 @@ void TabHelper::UpdateExtensionAppIcon(const Extension* extension) { if (extension) { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); - extensions::ImageLoader* loader = extensions::ImageLoader::Get(profile); + ImageLoader* loader = ImageLoader::Get(profile); loader->LoadImageAsync( extension, IconsInfo::GetIconResource(extension, diff --git a/chrome/browser/extensions/theme_installed_infobar_delegate.cc b/chrome/browser/extensions/theme_installed_infobar_delegate.cc index e3f5c8c..398dae3 100644 --- a/chrome/browser/extensions/theme_installed_infobar_delegate.cc +++ b/chrome/browser/extensions/theme_installed_infobar_delegate.cc @@ -17,6 +17,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "components/infobars/core/infobar.h" #include "content/public/browser/notification_source.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" @@ -51,7 +52,8 @@ void ThemeInstalledInfoBarDelegate::Create( scoped_ptr<infobars::InfoBar> new_infobar( ConfirmInfoBarDelegate::CreateInfoBar(scoped_ptr<ConfirmInfoBarDelegate>( new ThemeInstalledInfoBarDelegate( - profile->GetExtensionService(), theme_service, new_theme, + extensions::ExtensionSystem::Get(profile)->extension_service(), + theme_service, new_theme, previous_theme_id, previous_using_system_theme)))); // If there's a previous theme infobar, just replace that instead of adding a diff --git a/chrome/browser/extensions/user_script_listener.cc b/chrome/browser/extensions/user_script_listener.cc index 96b94fc..4b3be2a 100644 --- a/chrome/browser/extensions/user_script_listener.cc +++ b/chrome/browser/extensions/user_script_listener.cc @@ -6,13 +6,13 @@ #include "base/bind.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/resource_controller.h" #include "content/public/browser/resource_throttle.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension.h" #include "extensions/common/url_pattern.h" #include "net/url_request/url_request.h" @@ -232,10 +232,11 @@ void UserScriptListener::Observe(int type, return; // no patterns to delete for this extension. // Clear all our patterns and reregister all the still-loaded extensions. + const ExtensionSet& extensions = + ExtensionRegistry::Get(profile)->enabled_extensions(); URLPatterns new_patterns; - ExtensionService* service = profile->GetExtensionService(); - for (ExtensionSet::const_iterator it = service->extensions()->begin(); - it != service->extensions()->end(); ++it) { + for (ExtensionSet::const_iterator it = extensions.begin(); + it != extensions.end(); ++it) { if (it->get() != unloaded_extension) CollectURLPatterns(it->get(), &new_patterns); } diff --git a/chrome/browser/extensions/webstore_startup_installer_browsertest.cc b/chrome/browser/extensions/webstore_startup_installer_browsertest.cc index d57b066..7dcd1dd 100644 --- a/chrome/browser/extensions/webstore_startup_installer_browsertest.cc +++ b/chrome/browser/extensions/webstore_startup_installer_browsertest.cc @@ -23,6 +23,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" #include "extensions/browser/extension_host.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" #include "extensions/common/extension_builder.h" #include "extensions/common/value_builder.h" @@ -62,8 +63,9 @@ IN_PROC_BROWSER_TEST_F(WebstoreStartupInstallerTest, Install) { RunTest("runTest"); - const extensions::Extension* extension = browser()->profile()-> - GetExtensionService()->GetExtensionById(kTestExtensionId, false); + const extensions::Extension* extension = + extensions::ExtensionRegistry::Get( + browser()->profile())->enabled_extensions().GetByID(kTestExtensionId); EXPECT_TRUE(extension); } diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc index 4ff2c5d..eee0b03 100644 --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc @@ -62,6 +62,7 @@ #include "content/public/browser/notification_types.h" #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/extension_system.h" #include "google_apis/gaia/gaia_auth_util.h" #include "url/gurl.h" @@ -137,8 +138,10 @@ class FirstRunDelayedTasks : public content::NotificationObserver { const content::NotificationDetails& details) OVERRIDE { // After processing the notification we always delete ourselves. if (type == chrome::NOTIFICATION_EXTENSIONS_READY) { - DoExtensionWork( - content::Source<Profile>(source).ptr()->GetExtensionService()); + Profile* profile = content::Source<Profile>(source).ptr(); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); + DoExtensionWork(service); } delete this; } diff --git a/chrome/browser/infobars/infobars_browsertest.cc b/chrome/browser/infobars/infobars_browsertest.cc index 7465ce5..f8fec63 100644 --- a/chrome/browser/infobars/infobars_browsertest.cc +++ b/chrome/browser/infobars/infobars_browsertest.cc @@ -18,6 +18,7 @@ #include "chrome/test/base/test_switches.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/notification_service.h" +#include "extensions/browser/extension_system.h" #include "net/test/embedded_test_server/embedded_test_server.h" class InfoBarsTest : public InProcessBrowserTest { @@ -33,8 +34,8 @@ class InfoBarsTest : public InProcessBrowserTest { base::FilePath path = ui_test_utils::GetTestFilePath( base::FilePath().AppendASCII("extensions"), base::FilePath().AppendASCII(filename)); - Profile* profile = browser()->profile(); - ExtensionService* service = profile->GetExtensionService(); + ExtensionService* service = extensions::ExtensionSystem::Get( + browser()->profile())->extension_service(); content::WindowedNotificationObserver observer( chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, diff --git a/chrome/browser/media/media_stream_capture_indicator.cc b/chrome/browser/media/media_stream_capture_indicator.cc index 2522a65..c5c4410 100644 --- a/chrome/browser/media/media_stream_capture_indicator.cc +++ b/chrome/browser/media/media_stream_capture_indicator.cc @@ -12,7 +12,6 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/status_icons/status_icon.h" #include "chrome/browser/status_icons/status_tray.h" @@ -25,6 +24,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_observer.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -45,16 +45,9 @@ const extensions::Extension* GetExtension(WebContents* web_contents) { if (!web_contents) return NULL; - Profile* profile = - Profile::FromBrowserContext(web_contents->GetBrowserContext()); - if (!profile) - return NULL; - - ExtensionService* extension_service = profile->GetExtensionService(); - if (!extension_service) - return NULL; - - return extension_service->extensions()->GetExtensionOrAppByURL( + extensions::ExtensionRegistry* registry = + extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext()); + return registry->enabled_extensions().GetExtensionOrAppByURL( web_contents->GetURL()); } diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc index 3979226..858e193 100644 --- a/chrome/browser/memory_details.cc +++ b/chrome/browser/memory_details.cc @@ -24,6 +24,7 @@ #include "content/public/browser/render_widget_host_iterator.h" #include "content/public/browser/web_contents.h" #include "content/public/common/bindings_policy.h" +#include "extensions/browser/extension_system.h" #include "extensions/browser/process_manager.h" #include "extensions/browser/process_map.h" #include "extensions/browser/view_type_utils.h" @@ -228,14 +229,14 @@ void MemoryDetails::CollectChildInfoOnUIThread() { continue; } process.process_type = content::PROCESS_TYPE_RENDERER; - Profile* profile = - Profile::FromBrowserContext( - render_process_host->GetBrowserContext()); - ExtensionService* extension_service = profile->GetExtensionService(); + content::BrowserContext* context = + render_process_host->GetBrowserContext(); + ExtensionService* extension_service = + extensions::ExtensionSystem::Get(context)->extension_service(); extensions::ProcessMap* extension_process_map = NULL; // No extensions on Android. So extension_service can be NULL. if (extension_service) - extension_process_map = extensions::ProcessMap::Get(profile); + extension_process_map = extensions::ProcessMap::Get(context); // The RenderProcessHost may host multiple WebContentses. Any // of them which contain diagnostics information make the whole @@ -478,7 +479,6 @@ void MemoryDetails::UpdateHistograms() { #if defined(OS_CHROMEOS) UpdateSwapHistograms(); #endif - } #if defined(OS_CHROMEOS) diff --git a/chrome/browser/notifications/message_center_settings_controller.cc b/chrome/browser/notifications/message_center_settings_controller.cc index 3259183..397815f 100644 --- a/chrome/browser/notifications/message_center_settings_controller.cc +++ b/chrome/browser/notifications/message_center_settings_controller.cc @@ -14,7 +14,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/app_icon_loader_impl.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" @@ -32,7 +31,7 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "extensions/browser/event_router.h" -#include "extensions/browser/extension_system.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_util.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -215,9 +214,8 @@ void MessageCenterSettingsController::GetNotifierList( if (!U_FAILURE(error)) comparator.reset(new NotifierComparator(collator.get())); - ExtensionService* extension_service = profile->GetExtensionService(); - const extensions::ExtensionSet* extension_set = - extension_service->extensions(); + const extensions::ExtensionSet& extension_set = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); // The extension icon size has to be 32x32 at least to load bigger icons if // the icon doesn't exist for the specified size, and in that case it falls // back to the default icon. The fetched icon will be resized in the settings @@ -225,8 +223,8 @@ void MessageCenterSettingsController::GetNotifierList( // crbug.com/222931 app_icon_loader_.reset(new extensions::AppIconLoaderImpl( profile, extension_misc::EXTENSION_ICON_SMALL, this)); - for (extensions::ExtensionSet::const_iterator iter = extension_set->begin(); - iter != extension_set->end(); + for (extensions::ExtensionSet::const_iterator iter = extension_set.begin(); + iter != extension_set.end(); ++iter) { const extensions::Extension* extension = iter->get(); if (!extension->permissions_data()->HasAPIPermission( diff --git a/chrome/browser/performance_monitor/performance_monitor_browsertest.cc b/chrome/browser/performance_monitor/performance_monitor_browsertest.cc index 96629f9..b773c44 100644 --- a/chrome/browser/performance_monitor/performance_monitor_browsertest.cc +++ b/chrome/browser/performance_monitor/performance_monitor_browsertest.cc @@ -40,6 +40,8 @@ #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_navigation_observer.h" #include "content/public/test/test_utils.h" +#include "extensions/browser/extension_registry.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #if defined(OS_CHROMEOS) @@ -499,8 +501,8 @@ IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, UpdateExtensionEvent) { std::vector<ExtensionBasicInfo> extension_infos; extension_infos.push_back(ExtensionBasicInfo(extension)); - ExtensionService* extension_service = - browser()->profile()->GetExtensionService(); + ExtensionService* extension_service = extensions::ExtensionSystem::Get( + browser()->profile())->extension_service(); extensions::CrxInstaller* crx_installer = NULL; @@ -508,12 +510,13 @@ IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, UpdateExtensionEvent) { content::WindowedNotificationObserver windowed_observer( chrome::NOTIFICATION_CRX_INSTALLER_DONE, content::Source<extensions::CrxInstaller>(crx_installer)); - ASSERT_TRUE(extension_service-> - UpdateExtension(extension->id(), path_v2_, true, &crx_installer)); + ASSERT_TRUE(extension_service->UpdateExtension( + extension->id(), path_v2_, true, &crx_installer)); windowed_observer.Wait(); - extension = extension_service->GetExtensionById( - extension_infos[0].id, false); // don't include disabled extensions. + extension = extensions::ExtensionRegistry::Get( + browser()->profile())->enabled_extensions().GetByID( + extension_infos[0].id); // The total series of events for this process will be: // Extension Install - install version 1 diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc index 17f451f..359130b 100644 --- a/chrome/browser/profile_resetter/profile_resetter.cc +++ b/chrome/browser/profile_resetter/profile_resetter.cc @@ -107,15 +107,15 @@ void ProfileResetter::Reset( Resettable flag; void (ProfileResetter::*method)(); } flagToMethod[] = { - {DEFAULT_SEARCH_ENGINE, &ProfileResetter::ResetDefaultSearchEngine}, - {HOMEPAGE, &ProfileResetter::ResetHomepage}, - {CONTENT_SETTINGS, &ProfileResetter::ResetContentSettings}, - {COOKIES_AND_SITE_DATA, &ProfileResetter::ResetCookiesAndSiteData}, - {EXTENSIONS, &ProfileResetter::ResetExtensions}, - {STARTUP_PAGES, &ProfileResetter::ResetStartupPages}, - {PINNED_TABS, &ProfileResetter::ResetPinnedTabs}, - {SHORTCUTS, &ProfileResetter::ResetShortcuts}, - }; + {DEFAULT_SEARCH_ENGINE, &ProfileResetter::ResetDefaultSearchEngine}, + {HOMEPAGE, &ProfileResetter::ResetHomepage}, + {CONTENT_SETTINGS, &ProfileResetter::ResetContentSettings}, + {COOKIES_AND_SITE_DATA, &ProfileResetter::ResetCookiesAndSiteData}, + {EXTENSIONS, &ProfileResetter::ResetExtensions}, + {STARTUP_PAGES, &ProfileResetter::ResetStartupPages}, + {PINNED_TABS, &ProfileResetter::ResetPinnedTabs}, + {SHORTCUTS, &ProfileResetter::ResetShortcuts}, + }; ResettableFlags reset_triggered_for_flags = 0; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(flagToMethod); ++i) { @@ -269,7 +269,8 @@ void ProfileResetter::ResetExtensions() { std::vector<std::string> brandcode_extensions; master_settings_->GetExtensions(&brandcode_extensions); - ExtensionService* extension_service = profile_->GetExtensionService(); + ExtensionService* extension_service = + extensions::ExtensionSystem::Get(profile_)->extension_service(); DCHECK(extension_service); extension_service->DisableUserExtensions(brandcode_extensions); diff --git a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc index 555475a..6cc6034 100644 --- a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc +++ b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc @@ -10,7 +10,6 @@ #include "base/synchronization/cancellation_flag.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" @@ -20,6 +19,7 @@ #include "components/feedback/feedback_data.h" #include "components/feedback/feedback_util.h" #include "content/public/browser/browser_thread.h" +#include "extensions/browser/extension_registry.h" #include "grit/generated_resources.h" #include "grit/google_chrome_strings.h" #include "ui/base/l10n/l10n_util.h" @@ -74,13 +74,12 @@ ResettableSettingsSnapshot::ResettableSettingsSnapshot( if (dse) dse_url_ = dse->url(); - ExtensionService* extension_service = profile->GetExtensionService(); - DCHECK(extension_service); - const extensions::ExtensionSet* enabled_ext = extension_service->extensions(); - enabled_extensions_.reserve(enabled_ext->size()); + const extensions::ExtensionSet& enabled_ext = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); + enabled_extensions_.reserve(enabled_ext.size()); - for (extensions::ExtensionSet::const_iterator it = enabled_ext->begin(); - it != enabled_ext->end(); ++it) + for (extensions::ExtensionSet::const_iterator it = enabled_ext.begin(); + it != enabled_ext.end(); ++it) enabled_extensions_.push_back(std::make_pair((*it)->id(), (*it)->name())); // ExtensionSet is sorted but it seems to be an implementation detail. diff --git a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc index c5b2cc6..e9951df 100644 --- a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc +++ b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc @@ -8,7 +8,6 @@ #include "base/json/json_writer.h" #include "base/values.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/speech/extension_api/tts_extension_api.h" #include "chrome/browser/speech/extension_api/tts_extension_api_constants.h" @@ -19,6 +18,7 @@ #include "content/public/common/console_message_level.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/process_manager.h" #include "extensions/common/extension.h" @@ -40,6 +40,7 @@ const char kOnResume[] = "ttsEngine.onResume"; }; // namespace tts_engine_events namespace { + void WarnIfMissingPauseOrResumeListener( Profile* profile, EventRouter* event_router, std::string extension_id) { bool has_onpause = event_router->ExtensionHasEventListener( @@ -57,21 +58,21 @@ void WarnIfMissingPauseOrResumeListener( host->render_view_host()->GetRoutingID(), content::CONSOLE_MESSAGE_LEVEL_WARNING, constants::kErrorMissingPauseOrResume)); -}; -} // anonymous namespace +} + +} // namespace void GetExtensionVoices(Profile* profile, std::vector<VoiceData>* out_voices) { - ExtensionService* service = profile->GetExtensionService(); - DCHECK(service); EventRouter* event_router = EventRouter::Get(profile); DCHECK(event_router); bool is_offline = (net::NetworkChangeNotifier::GetConnectionType() == net::NetworkChangeNotifier::CONNECTION_NONE); - const extensions::ExtensionSet* extensions = service->extensions(); + const extensions::ExtensionSet& extensions = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); extensions::ExtensionSet::const_iterator iter; - for (iter = extensions->begin(); iter != extensions->end(); ++iter) { + for (iter = extensions.begin(); iter != extensions.end(); ++iter) { const Extension* extension = iter->get(); if (!event_router->ExtensionHasEventListener( diff --git a/chrome/browser/tab_contents/tab_util.cc b/chrome/browser/tab_contents/tab_util.cc index ae3100a..c6c0849b 100644 --- a/chrome/browser/tab_contents/tab_util.cc +++ b/chrome/browser/tab_contents/tab_util.cc @@ -4,13 +4,13 @@ #include "chrome/browser/tab_contents/tab_util.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" #include "chrome/common/chrome_switches.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/extension_registry.h" #include "url/gurl.h" using content::RenderViewHost; @@ -25,7 +25,6 @@ content::WebContents* GetWebContentsByID(int render_process_id, RenderViewHost::FromID(render_process_id, render_view_id); if (!render_view_host) return NULL; - return WebContents::FromRenderViewHost(render_view_host); } @@ -33,11 +32,10 @@ SiteInstance* GetSiteInstanceForNewTab(Profile* profile, const GURL& url) { // If |url| is a WebUI or extension, we set the SiteInstance up front so that // we don't end up with an extra process swap on the first navigation. - ExtensionService* service = profile->GetExtensionService(); if (ChromeWebUIControllerFactory::GetInstance()->UseWebUIForURL( profile, url) || - (service && - service->extensions()->GetHostedAppByURL(url))) { + extensions::ExtensionRegistry::Get( + profile)->enabled_extensions().GetHostedAppByURL(url)) { return SiteInstance::CreateForURL(profile, url); } diff --git a/chrome/browser/task_manager/background_information.cc b/chrome/browser/task_manager/background_information.cc index e6fcd89..35d0c1d 100644 --- a/chrome/browser/task_manager/background_information.cc +++ b/chrome/browser/task_manager/background_information.cc @@ -11,7 +11,6 @@ #include "chrome/browser/background/background_contents_service_factory.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/tab_contents/background_contents.h" @@ -23,6 +22,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/view_type_utils.h" #include "extensions/common/extension.h" #include "grit/generated_resources.h" @@ -144,7 +144,8 @@ scoped_ptr<RendererResource> BackgroundInformation::MakeResource( WebContents* web_contents) { Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); - ExtensionService* extension_service = profile->GetExtensionService(); + const extensions::ExtensionSet& extensions_set = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); BackgroundContentsService* background_contents_service = BackgroundContentsServiceFactory::GetForProfile(profile); std::vector<BackgroundContents*> contents = @@ -155,14 +156,12 @@ scoped_ptr<RendererResource> BackgroundInformation::MakeResource( if ((*iterator)->web_contents() == web_contents) { base::string16 application_name; // Lookup the name from the parent extension. - if (extension_service) { - const base::string16& application_id = - background_contents_service->GetParentApplicationId(*iterator); - const Extension* extension = extension_service->GetExtensionById( - base::UTF16ToUTF8(application_id), false); - if (extension) - application_name = base::UTF8ToUTF16(extension->name()); - } + const base::string16& application_id = + background_contents_service->GetParentApplicationId(*iterator); + const Extension* extension = + extensions_set.GetByID(base::UTF16ToUTF8(application_id)); + if (extension) + application_name = base::UTF8ToUTF16(extension->name()); return scoped_ptr<RendererResource>( new BackgroundContentsResource(*iterator, application_name)); } diff --git a/chrome/browser/task_manager/panel_information.cc b/chrome/browser/task_manager/panel_information.cc index aabb0c0..85872e2 100644 --- a/chrome/browser/task_manager/panel_information.cc +++ b/chrome/browser/task_manager/panel_information.cc @@ -16,6 +16,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/view_type_utils.h" #include "extensions/common/extension.h" #include "ui/base/l10n/l10n_util.h" @@ -53,9 +54,10 @@ PanelResource::PanelResource(Panel* panel) panel->GetWebContents()->GetRenderProcessHost()->GetHandle(), panel->GetWebContents()->GetRenderViewHost()), panel_(panel) { - ExtensionService* service = panel_->profile()->GetExtensionService(); + extensions::ExtensionRegistry* registry = + extensions::ExtensionRegistry::Get(panel_->profile()); message_prefix_id_ = util::GetMessagePrefixID( - service->extensions()->GetByID(panel_->extension_id())->is_app(), + registry->enabled_extensions().GetByID(panel_->extension_id())->is_app(), true, // is_extension panel_->profile()->IsOffTheRecord(), false, // is_prerender diff --git a/chrome/browser/themes/theme_service_factory.cc b/chrome/browser/themes/theme_service_factory.cc index bb85541..06c2600 100644 --- a/chrome/browser/themes/theme_service_factory.cc +++ b/chrome/browser/themes/theme_service_factory.cc @@ -6,13 +6,13 @@ #include "base/logging.h" #include "base/prefs/pref_service.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/incognito_helpers.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/themes/theme_service.h" #include "chrome/common/pref_names.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/pref_registry/pref_registry_syncable.h" +#include "extensions/browser/extension_registry.h" #if defined(USE_AURA) && defined(USE_X11) && !defined(OS_CHROMEOS) #include "chrome/browser/themes/theme_service_aurax11.h" @@ -32,7 +32,8 @@ const extensions::Extension* ThemeServiceFactory::GetThemeForProfile( if (id == ThemeService::kDefaultThemeID) return NULL; - return profile->GetExtensionService()->GetExtensionById(id, false); + return extensions::ExtensionRegistry::Get( + profile)->enabled_extensions().GetByID(id); } // static diff --git a/chrome/browser/ui/app_list/app_list_view_delegate.cc b/chrome/browser/ui/app_list/app_list_view_delegate.cc index 960f117..2195fe6 100644 --- a/chrome/browser/ui/app_list/app_list_view_delegate.cc +++ b/chrome/browser/ui/app_list/app_list_view_delegate.cc @@ -12,7 +12,6 @@ #include "base/stl_util.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile_info_cache.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/search/hotword_service.h" @@ -34,6 +33,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/page_navigator.h" #include "content/public/browser/user_metrics.h" +#include "extensions/browser/extension_registry.h" #include "grit/theme_resources.h" #include "ui/app_list/app_list_switches.h" #include "ui/app_list/app_list_view_delegate_observer.h" @@ -260,10 +260,9 @@ void AppListViewDelegate::GetShortcutPathForApp( const std::string& app_id, const base::Callback<void(const base::FilePath&)>& callback) { #if defined(OS_WIN) - ExtensionService* service = profile_->GetExtensionService(); - DCHECK(service); const extensions::Extension* extension = - service->GetInstalledExtension(app_id); + extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( + app_id, extensions::ExtensionRegistry::EVERYTHING); if (!extension) { callback.Run(base::FilePath()); return; @@ -357,10 +356,10 @@ gfx::ImageSkia AppListViewDelegate::GetWindowIcon() { } void AppListViewDelegate::OpenSettings() { - ExtensionService* service = profile_->GetExtensionService(); - DCHECK(service); - const extensions::Extension* extension = service->GetInstalledExtension( - extension_misc::kSettingsAppId); + const extensions::Extension* extension = + extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( + extension_misc::kSettingsAppId, + extensions::ExtensionRegistry::EVERYTHING); DCHECK(extension); controller_->ActivateApp(profile_, extension, diff --git a/chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.cc index 769900b4..44646cb 100644 --- a/chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.cc +++ b/chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.cc @@ -8,7 +8,6 @@ #include "ash/shelf/shelf_model.h" #include "ash/shell.h" #include "ash/wm/window_util.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item_tab.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" @@ -27,13 +26,14 @@ #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/web_contents.h" -#include "extensions/browser/extension_system.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/process_manager.h" #include "ui/aura/window.h" #include "ui/events/event.h" #include "ui/wm/core/window_animations.h" using extensions::Extension; +using extensions::ExtensionRegistry; namespace { @@ -287,13 +287,10 @@ bool AppShortcutLauncherItemController::WebContentMatchesApp( Browser* browser) { // If the browser is an app window and the app name matches the extension. if (browser->is_app()) { - const extensions::Extension* browser_extension = NULL; - const ExtensionService* extension_service = - browser->profile()->GetExtensionService(); - if (extension_service) { - browser_extension = extension_service->GetInstalledExtension( - web_app::GetExtensionIdFromApplicationName(browser->app_name())); - } + const extensions::Extension* browser_extension = + ExtensionRegistry::Get(browser->profile())->GetExtensionById( + web_app::GetExtensionIdFromApplicationName(browser->app_name()), + ExtensionRegistry::EVERYTHING); return browser_extension == extension; } diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index 227df8d..2443565 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc @@ -27,7 +27,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/defaults.h" #include "chrome/browser/extensions/app_icon_loader_impl.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/launch_util.h" #include "chrome/browser/favicon/favicon_tab_helper.h" @@ -70,6 +69,7 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/web_contents.h" #include "extensions/browser/extension_prefs.h" +#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" #include "extensions/browser/extension_util.h" #include "extensions/common/extension.h" @@ -838,9 +838,10 @@ void ChromeLauncherController::SetLaunchType( if (!HasItemController(id)) return; - extensions::SetLaunchType(profile_->GetExtensionService(), - id_to_item_controller_map_[id]->app_id(), - launch_type); + extensions::SetLaunchType( + extensions::ExtensionSystem::Get(profile_)->extension_service(), + id_to_item_controller_map_[id]->app_id(), + launch_type); } void ChromeLauncherController::UnpinAppWithID(const std::string& app_id) { @@ -1032,9 +1033,8 @@ void ChromeLauncherController::SetRefocusURLPatternForTest(ash::ShelfID id, const Extension* ChromeLauncherController::GetExtensionForAppID( const std::string& app_id) const { - // Some unit tests do not have a real extension. - return (profile_->GetExtensionService()) ? - profile_->GetExtensionService()->GetInstalledExtension(app_id) : NULL; + return extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( + app_id, extensions::ExtensionRegistry::EVERYTHING); } void ChromeLauncherController::ActivateWindowOrMinimizeIfActive( @@ -1732,7 +1732,7 @@ void ChromeLauncherController::SetVirtualKeyboardBehaviorFromPrefs() { #endif // defined(OS_CHROMEOS) ash::ShelfItemStatus ChromeLauncherController::GetAppState( - const::std::string& app_id) { + const std::string& app_id) { ash::ShelfItemStatus status = ash::STATUS_CLOSED; for (WebContentsToAppIDMap::iterator it = web_contents_to_app_id_.begin(); it != web_contents_to_app_id_.end(); diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h index 1e22495f1..38e0187 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h @@ -78,7 +78,6 @@ class ChromeLauncherControllerUserSwitchObserver { virtual ~ChromeLauncherControllerUserSwitchObserver() {} private: - DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerUserSwitchObserver); }; @@ -474,7 +473,7 @@ class ChromeLauncherController : public ash::ShelfDelegate, // Returns the shelf item status for the given |app_id|, which can be either // STATUS_ACTIVE (if the app is active), STATUS_RUNNING (if there is such an // app) or STATUS_CLOSED. - ash::ShelfItemStatus GetAppState(const::std::string& app_id); + ash::ShelfItemStatus GetAppState(const std::string& app_id); // Creates an app launcher to insert at |index|. Note that |index| may be // adjusted by the model to meet ordering constraints. diff --git a/chrome/browser/ui/ash/launcher/launcher_app_tab_helper.cc b/chrome/browser/ui/ash/launcher/launcher_app_tab_helper.cc index c83bc99..509087d 100644 --- a/chrome/browser/ui/ash/launcher/launcher_app_tab_helper.cc +++ b/chrome/browser/ui/ash/launcher/launcher_app_tab_helper.cc @@ -69,10 +69,8 @@ const extensions::Extension* GetExtensionForTab(Profile* profile, const extensions::Extension* GetExtensionByID(Profile* profile, const std::string& id) { - ExtensionService* extension_service = profile->GetExtensionService(); - if (!extension_service || !extension_service->extensions_enabled()) - return NULL; - return extension_service->GetInstalledExtension(id); + return extensions::ExtensionRegistry::Get(profile)->GetExtensionById( + id, extensions::ExtensionRegistry::EVERYTHING); } } // namespace diff --git a/chrome/browser/ui/ash/launcher/launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/launcher_item_controller.cc index 532552d..1f0a30f 100644 --- a/chrome/browser/ui/ash/launcher/launcher_item_controller.cc +++ b/chrome/browser/ui/ash/launcher/launcher_item_controller.cc @@ -6,9 +6,9 @@ #include "base/basictypes.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension.h" LauncherItemController::LauncherItemController( @@ -31,12 +31,17 @@ const std::string& LauncherItemController::app_id() const { } base::string16 LauncherItemController::GetAppTitle() const { + base::string16 title; if (app_id_.empty()) - return base::string16(); + return title; + const extensions::Extension* extension = - launcher_controller_->profile()->GetExtensionService()-> - GetInstalledExtension(app_id_); - return extension ? base::UTF8ToUTF16(extension->name()) : base::string16(); + extensions::ExtensionRegistry::Get( + launcher_controller_->profile())->GetExtensionById( + app_id_, extensions::ExtensionRegistry::EVERYTHING); + if (extension) + title = base::UTF8ToUTF16(extension->name()); + return title; } ash::ShelfItemType LauncherItemController::GetShelfItemType() const { diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index f32b8e0..9ad358f 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc @@ -39,6 +39,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/common/url_constants.h" +#include "extensions/browser/extension_system.h" #include "ui/events/keycodes/keyboard_codes.h" #if defined(OS_MACOSX) @@ -1045,7 +1046,8 @@ void BrowserCommandController::UpdateSharedCommandsForIncognitoAvailability( command_updater->UpdateCommandEnabled( IDC_SHOW_BOOKMARK_MANAGER, browser_defaults::bookmarks_enabled && !forced_incognito); - ExtensionService* extension_service = profile->GetExtensionService(); + ExtensionService* extension_service = + extensions::ExtensionSystem::Get(profile)->extension_service(); const bool enable_extensions = extension_service && extension_service->extensions_enabled(); diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index 8ae051d..f3d453f 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc @@ -79,6 +79,7 @@ #include "content/public/common/url_utils.h" #include "content/public/common/user_agent.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "extensions/common/extension_set.h" #include "net/base/escape.h" @@ -518,7 +519,8 @@ void OpenCurrentURL(Browser* browser) { TabStripModel::ADD_FORCE_INDEX | TabStripModel::ADD_INHERIT_OPENER; Navigate(¶ms); - DCHECK(browser->profile()->GetExtensionService()); + DCHECK(extensions::ExtensionSystem::Get( + browser->profile())->extension_service()); const extensions::Extension* extension = extensions::ExtensionRegistry::Get(browser->profile()) ->enabled_extensions().GetAppByURL(url); diff --git a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc index 63003a0..966e66f 100644 --- a/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc +++ b/chrome/browser/ui/fullscreen/fullscreen_exit_bubble.cc @@ -10,6 +10,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" +#include "extensions/browser/extension_system.h" #include "grit/generated_resources.h" #include "grit/ui_strings.h" #include "ui/base/l10n/l10n_util.h" @@ -130,7 +131,9 @@ void FullscreenExitBubble::Cancel() { base::string16 FullscreenExitBubble::GetCurrentMessageText() const { return fullscreen_bubble::GetLabelTextForType( - bubble_type_, url_, browser_->profile()->GetExtensionService()); + bubble_type_, url_, + extensions::ExtensionSystem::Get( + browser_->profile())->extension_service()); } base::string16 FullscreenExitBubble::GetCurrentDenyButtonText() const { diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc index 98105ff..6039cae 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc @@ -32,7 +32,6 @@ #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" #include "chrome/browser/defaults.h" #include "chrome/browser/extensions/extension_creator.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/launch_util.h" #include "chrome/browser/extensions/pack_extension_job.h" #include "chrome/browser/first_run/first_run.h" @@ -89,7 +88,6 @@ #include "content/public/browser/web_contents.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" -#include "extensions/browser/extension_system.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_set.h" @@ -188,9 +186,8 @@ bool GetAppLaunchContainer( const Extension** out_extension, extensions::LaunchContainer* out_launch_container) { - ExtensionService* extensions_service = profile->GetExtensionService(); - const Extension* extension = - extensions_service->GetExtensionById(app_id, false); + const Extension* extension = extensions::ExtensionRegistry::Get( + profile)->enabled_extensions().GetByID(app_id); // The extension with id |app_id| may have been uninstalled. if (!extension) return false; @@ -224,7 +221,7 @@ void RecordCmdLineAppHistogram(extensions::Manifest::Type app_type) { void RecordAppLaunches(Profile* profile, const std::vector<GURL>& cmd_line_urls, - StartupTabs& autolaunch_tabs) { + const StartupTabs& autolaunch_tabs) { const extensions::ExtensionSet& extensions = extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); for (size_t i = 0; i < cmd_line_urls.size(); ++i) { diff --git a/chrome/browser/ui/views/extensions/bookmark_app_bubble_view.cc b/chrome/browser/ui/views/extensions/bookmark_app_bubble_view.cc index 6c10e7f..e1a66c8 100644 --- a/chrome/browser/ui/views/extensions/bookmark_app_bubble_view.cc +++ b/chrome/browser/ui/views/extensions/bookmark_app_bubble_view.cc @@ -13,6 +13,8 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension_constants.h" #include "extensions/browser/extension_prefs.h" +#include "extensions/browser/extension_registry.h" +#include "extensions/browser/extension_system.h" #include "extensions/browser/pref_names.h" #include "extensions/common/constants.h" #include "grit/generated_resources.h" @@ -41,6 +43,10 @@ const int kMinTextfieldWidth = 200; // Size of the icon. const int kIconSize = extension_misc::EXTENSION_ICON_MEDIUM; +ExtensionService* GetExtensionService(Profile* profile) { + return extensions::ExtensionSystem::Get(profile)->extension_service(); +} + } // namespace BookmarkAppBubbleView* BookmarkAppBubbleView::bookmark_app_bubble_ = NULL; @@ -158,7 +164,8 @@ void BookmarkAppBubbleView::Init() { layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); const extensions::Extension* extension = - profile_->GetExtensionService()->GetInstalledExtension(extension_id_); + extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( + extension_id_, extensions::ExtensionRegistry::EVERYTHING); layout->StartRow(0, TITLE_TEXT_COLUMN_SET_ID); icon_image_view_ = new views::ImageView(); @@ -199,7 +206,7 @@ void BookmarkAppBubbleView::WindowClosing() { bookmark_app_bubble_ = NULL; if (remove_app_) { - profile_->GetExtensionService()->UninstallExtension( + GetExtensionService(profile_)->UninstallExtension( extension_id_, false, NULL); } else { ApplyEdits(); @@ -248,12 +255,13 @@ void BookmarkAppBubbleView::ApplyEdits() { : extensions::LAUNCH_TYPE_WINDOW; profile_->GetPrefs()->SetInteger( extensions::pref_names::kBookmarkAppCreationLaunchType, launch_type); - extensions::SetLaunchType(profile_->GetExtensionService(), + extensions::SetLaunchType(GetExtensionService(profile_), extension_id_, launch_type); const extensions::Extension* extension = - profile_->GetExtensionService()->GetInstalledExtension(extension_id_); + extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( + extension_id_, extensions::ExtensionRegistry::EVERYTHING); if (extension && base::UTF8ToUTF16(extension->name()) == title_tf_->text()) return; @@ -261,6 +269,6 @@ void BookmarkAppBubbleView::ApplyEdits() { WebApplicationInfo install_info(web_app_info_); install_info.title = title_tf_->text(); - extensions::CreateOrUpdateBookmarkApp(profile_->GetExtensionService(), + extensions::CreateOrUpdateBookmarkApp(GetExtensionService(profile_), install_info); } diff --git a/chrome/browser/ui/views/location_bar/page_action_image_view.cc b/chrome/browser/ui/views/location_bar/page_action_image_view.cc index 6302fb4..a59ddc2 100644 --- a/chrome/browser/ui/views/location_bar/page_action_image_view.cc +++ b/chrome/browser/ui/views/location_bar/page_action_image_view.cc @@ -10,7 +10,6 @@ #include "chrome/browser/extensions/extension_action_icon_factory.h" #include "chrome/browser/extensions/extension_action_manager.h" #include "chrome/browser/extensions/extension_context_menu_model.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/extensions/location_bar_controller.h" #include "chrome/browser/extensions/tab_helper.h" @@ -21,6 +20,7 @@ #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/webui/extensions/extension_info_ui.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension.h" #include "ui/accessibility/ax_view_state.h" #include "ui/events/event.h" @@ -41,8 +41,9 @@ PageActionImageView::PageActionImageView(LocationBarView* owner, current_tab_id_(-1), preview_enabled_(false), popup_(NULL) { - const Extension* extension = owner_->profile()->GetExtensionService()-> - GetExtensionById(page_action->extension_id(), false); + const Extension* extension = extensions::ExtensionRegistry::Get( + owner_->profile())->enabled_extensions().GetByID( + page_action->extension_id()); DCHECK(extension); icon_factory_.reset( @@ -149,8 +150,9 @@ void PageActionImageView::ShowContextMenuForView( View* source, const gfx::Point& point, ui::MenuSourceType source_type) { - const Extension* extension = owner_->profile()->GetExtensionService()-> - GetExtensionById(page_action()->extension_id(), false); + const Extension* extension = extensions::ExtensionRegistry::Get( + owner_->profile())->enabled_extensions().GetByID( + page_action()->extension_id()); if (!extension->ShowConfigureContextMenus()) return; diff --git a/chrome/browser/ui/webui/app_launcher_page_ui.cc b/chrome/browser/ui/webui/app_launcher_page_ui.cc index d4e43b8..4cef69b 100644 --- a/chrome/browser/ui/webui/app_launcher_page_ui.cc +++ b/chrome/browser/ui/webui/app_launcher_page_ui.cc @@ -18,6 +18,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_ui.h" +#include "extensions/browser/extension_system.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -42,7 +43,8 @@ AppLauncherPageUI::AppLauncherPageUI(content::WebUI* web_ui) web_ui->AddMessageHandler(new NTPLoginHandler()); if (!GetProfile()->IsOffTheRecord()) { - ExtensionService* service = GetProfile()->GetExtensionService(); + ExtensionService* service = + extensions::ExtensionSystem::Get(GetProfile())->extension_service(); // We should not be launched without an ExtensionService. DCHECK(service); web_ui->AddMessageHandler(new AppLauncherHandler(service)); diff --git a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc index 827332a..fbb9af1 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc +++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc @@ -74,7 +74,8 @@ class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt { const Extension* ExtensionSettingsUIBrowserTest::InstallExtension( const base::FilePath& path) { Profile* profile = this->GetProfile(); - ExtensionService* service = profile->GetExtensionService(); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); service->set_show_extensions_prompts(false); size_t num_before = service->extensions()->size(); { diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc index 9663e0a..c1a346b 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc @@ -568,8 +568,9 @@ void ExtensionSettingsHandler::RegisterMessages() { // Don't override an |extension_service_| or |management_policy_| injected // for testing. if (!extension_service_) { - extension_service_ = Profile::FromWebUI(web_ui())->GetOriginalProfile()-> - GetExtensionService(); + Profile* profile = Profile::FromWebUI(web_ui())->GetOriginalProfile(); + extension_service_ = + extensions::ExtensionSystem::Get(profile)->extension_service(); } if (!management_policy_) { management_policy_ = ExtensionSystem::Get( diff --git a/chrome/browser/ui/webui/ntp/favicon_webui_handler.cc b/chrome/browser/ui/webui/ntp/favicon_webui_handler.cc index 0b3b5b2..ad85fed 100644 --- a/chrome/browser/ui/webui/ntp/favicon_webui_handler.cc +++ b/chrome/browser/ui/webui/ntp/favicon_webui_handler.cc @@ -11,13 +11,13 @@ #include "base/strings/stringprintf.h" #include "base/values.h" #include "chrome/browser/extensions/extension_icon_manager.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/history/top_sites.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/url_constants.h" #include "content/public/browser/web_ui.h" +#include "extensions/browser/extension_registry.h" #include "grit/ui_resources.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/l10n/l10n_util.h" @@ -142,13 +142,14 @@ void FaviconWebUIHandler::HandleGetAppIconDominantColor( std::string extension_id; CHECK(args->GetString(0, &extension_id)); - ExtensionService* extension_service = - Profile::FromWebUI(web_ui())->GetExtensionService(); - const extensions::Extension* extension = extension_service->GetExtensionById( - extension_id, false); + Profile* profile = Profile::FromWebUI(web_ui()); + extensions::ExtensionRegistry* extension_registry = + extensions::ExtensionRegistry::Get(profile); + const extensions::Extension* extension = + extension_registry->enabled_extensions().GetByID(extension_id); if (!extension) return; - app_icon_color_manager_->LoadIcon(extension_service->profile(), extension); + app_icon_color_manager_->LoadIcon(profile, extension); } void FaviconWebUIHandler::NotifyAppIconReady(const std::string& extension_id) { diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.cc b/chrome/browser/ui/webui/ntp/new_tab_ui.cc index 2794f4d..7cad4d5bc 100644 --- a/chrome/browser/ui/webui/ntp/new_tab_ui.cc +++ b/chrome/browser/ui/webui/ntp/new_tab_ui.cc @@ -38,6 +38,7 @@ #include "content/public/browser/url_data_source.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" +#include "extensions/browser/extension_system.h" #include "grit/browser_resources.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -91,7 +92,8 @@ NewTabUI::NewTabUI(content::WebUI* web_ui) // thumbnails, but also clicks on recently bookmarked. web_ui->SetLinkTransitionType(content::PAGE_TRANSITION_AUTO_BOOKMARK); - if (!GetProfile()->IsOffTheRecord()) { + Profile* profile = GetProfile(); + if (!profile->IsOffTheRecord()) { web_ui->AddMessageHandler(new browser_sync::ForeignSessionHandler()); web_ui->AddMessageHandler(new MetricsHandler()); web_ui->AddMessageHandler(new MostVisitedHandler()); @@ -103,14 +105,15 @@ NewTabUI::NewTabUI(content::WebUI* web_ui) web_ui->AddMessageHandler(new SuggestionsHandler()); web_ui->AddMessageHandler(new NewTabPageSyncHandler()); - ExtensionService* service = GetProfile()->GetExtensionService(); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); // We might not have an ExtensionService (on ChromeOS when not logged in // for example). if (service) web_ui->AddMessageHandler(new AppLauncherHandler(service)); } - if (NTPLoginHandler::ShouldShow(GetProfile())) + if (NTPLoginHandler::ShouldShow(profile)) web_ui->AddMessageHandler(new NTPLoginHandler()); #if defined(ENABLE_THEMES) @@ -120,8 +123,8 @@ NewTabUI::NewTabUI(content::WebUI* web_ui) web_ui->AddMessageHandler(new ThemeHandler()); #endif - scoped_ptr<NewTabHTMLSource> html_source(new NewTabHTMLSource( - GetProfile()->GetOriginalProfile())); + scoped_ptr<NewTabHTMLSource> html_source( + new NewTabHTMLSource(profile->GetOriginalProfile())); // These two resources should be loaded only if suggestions NTP is enabled. html_source->AddResource("suggestions_page.css", "text/css", @@ -131,9 +134,9 @@ NewTabUI::NewTabUI(content::WebUI* web_ui) IDR_SUGGESTIONS_PAGE_JS); } // content::URLDataSource assumes the ownership of the html_source. - content::URLDataSource::Add(GetProfile(), html_source.release()); + content::URLDataSource::Add(profile, html_source.release()); - pref_change_registrar_.Init(GetProfile()->GetPrefs()); + pref_change_registrar_.Init(profile->GetPrefs()); pref_change_registrar_.Add(prefs::kShowBookmarkBar, base::Bind(&NewTabUI::OnShowBookmarkBarChanged, base::Unretained(this))); diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc index 10cc68c..0d17db7 100644 --- a/chrome/browser/ui/webui/options/content_settings_handler.cc +++ b/chrome/browser/ui/webui/options/content_settings_handler.cc @@ -22,7 +22,6 @@ #include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/custom_handlers/protocol_handler_registry.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" -#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_special_storage_policy.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/desktop_notification_service_factory.h" @@ -42,6 +41,7 @@ #include "content/public/browser/web_ui.h" #include "content/public/common/content_switches.h" #include "content/public/common/page_zoom.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension_set.h" #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permissions_data.h" @@ -233,13 +233,10 @@ void AddExceptionForHostedApp(const std::string& url_pattern, // adds their web extent and launch URL to the |exceptions| list. void AddExceptionsGrantedByHostedApps( Profile* profile, AppFilter app_filter, base::ListValue* exceptions) { - const ExtensionService* extension_service = profile->GetExtensionService(); - // After ExtensionSystem::Init has been called at the browser's start, - // GetExtensionService() should not return NULL, so this is safe: - const extensions::ExtensionSet* extensions = extension_service->extensions(); - - for (extensions::ExtensionSet::const_iterator extension = extensions->begin(); - extension != extensions->end(); ++extension) { + const extensions::ExtensionSet& extensions = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); + for (extensions::ExtensionSet::const_iterator extension = extensions.begin(); + extension != extensions.end(); ++extension) { if (!app_filter(*extension->get(), profile)) continue; diff --git a/chrome/browser/ui/webui/uber/uber_ui.cc b/chrome/browser/ui/webui/uber/uber_ui.cc index ee600c8..edd2487 100644 --- a/chrome/browser/ui/webui/uber/uber_ui.cc +++ b/chrome/browser/ui/webui/uber/uber_ui.cc @@ -4,9 +4,7 @@ #include "chrome/browser/ui/webui/uber/uber_ui.h" -#include "base/command_line.h" #include "base/stl_util.h" -#include "base/strings/utf_string_conversions.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" @@ -22,12 +20,12 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_data_source.h" +#include "extensions/browser/extension_registry.h" #include "extensions/common/extension_set.h" #include "grit/browser_resources.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" -using base::ASCIIToUTF16; using content::NavigationController; using content::NavigationEntry; using content::RenderViewHost; @@ -49,39 +47,27 @@ content::WebUIDataSource* CreateUberHTMLSource() { // Hack alert: continue showing "Loading..." until a real title is set. source->AddLocalizedString("pageTitle", IDS_TAB_LOADING_TITLE); - source->AddString("extensionsFrameURL", - ASCIIToUTF16(chrome::kChromeUIExtensionsFrameURL)); - source->AddString("extensionsHost", - ASCIIToUTF16(chrome::kChromeUIExtensionsHost)); - source->AddString("helpFrameURL", - ASCIIToUTF16(chrome::kChromeUIHelpFrameURL)); - source->AddString("helpHost", - ASCIIToUTF16(chrome::kChromeUIHelpHost)); - source->AddString("historyFrameURL", - ASCIIToUTF16(chrome::kChromeUIHistoryFrameURL)); - source->AddString("historyHost", - ASCIIToUTF16(chrome::kChromeUIHistoryHost)); - source->AddString("settingsFrameURL", - ASCIIToUTF16(chrome::kChromeUISettingsFrameURL)); - source->AddString("settingsHost", - ASCIIToUTF16(chrome::kChromeUISettingsHost)); + source->AddString("extensionsFrameURL", chrome::kChromeUIExtensionsFrameURL); + source->AddString("extensionsHost", chrome::kChromeUIExtensionsHost); + source->AddString("helpFrameURL", chrome::kChromeUIHelpFrameURL); + source->AddString("helpHost", chrome::kChromeUIHelpHost); + source->AddString("historyFrameURL", chrome::kChromeUIHistoryFrameURL); + source->AddString("historyHost", chrome::kChromeUIHistoryHost); + source->AddString("settingsFrameURL", chrome::kChromeUISettingsFrameURL); + source->AddString("settingsHost", chrome::kChromeUISettingsHost); return source; } // Determines whether the user has an active extension of the given type. -bool HasExtensionType(Profile* profile, const char* extensionType) { - const extensions::ExtensionSet* extensionSet = - profile->GetExtensionService()->extensions(); - - for (extensions::ExtensionSet::const_iterator iter = extensionSet->begin(); - iter != extensionSet->end(); ++iter) { - extensions::URLOverrides::URLOverrideMap map = +bool HasExtensionType(Profile* profile, const std::string& extension_type) { + const extensions::ExtensionSet& extension_set = + extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); + for (extensions::ExtensionSet::const_iterator iter = extension_set.begin(); + iter != extension_set.end(); ++iter) { + const extensions::URLOverrides::URLOverrideMap& map = extensions::URLOverrides::GetChromeURLOverrides(iter->get()); - extensions::URLOverrides::URLOverrideMap::const_iterator result = - map.find(std::string(extensionType)); - - if (result != map.end()) + if (ContainsKey(map, extension_type)) return true; } @@ -105,30 +91,25 @@ content::WebUIDataSource* CreateUberFrameHTMLSource(Profile* profile) { #endif // defined(OS_CHROMEOS) // Group settings and help separately if settings in a window is enabled. - base::string16 settings_group(ASCIIToUTF16("settings_group")); - base::string16 other_group(ASCIIToUTF16( - ::switches::SettingsWindowEnabled() ? "other_group" : "settings_group")); - source->AddString("extensionsHost", - ASCIIToUTF16(chrome::kChromeUIExtensionsHost)); + std::string settings_group("settings_group"); + std::string other_group( + ::switches::SettingsWindowEnabled() ? "other_group" : "settings_group"); + source->AddString("extensionsHost", chrome::kChromeUIExtensionsHost); source->AddLocalizedString("extensionsDisplayName", IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE); source->AddString("extensionsGroup", other_group); - source->AddString("helpHost", - ASCIIToUTF16(chrome::kChromeUIHelpHost)); + source->AddString("helpHost", chrome::kChromeUIHelpHost); source->AddLocalizedString("helpDisplayName", IDS_ABOUT_TITLE); source->AddString("helpGroup", settings_group); - source->AddString("historyHost", - ASCIIToUTF16(chrome::kChromeUIHistoryHost)); + source->AddString("historyHost", chrome::kChromeUIHistoryHost); source->AddLocalizedString("historyDisplayName", IDS_HISTORY_TITLE); source->AddString("historyGroup", other_group); - source->AddString("settingsHost", - ASCIIToUTF16(chrome::kChromeUISettingsHost)); + source->AddString("settingsHost", chrome::kChromeUISettingsHost); source->AddLocalizedString("settingsDisplayName", IDS_SETTINGS_TITLE); source->AddString("settingsGroup", settings_group); - bool overridesHistory = HasExtensionType(profile, - chrome::kChromeUIHistoryHost); - source->AddString("overridesHistory", - ASCIIToUTF16(overridesHistory ? "yes" : "no")); + bool overridesHistory = + HasExtensionType(profile, chrome::kChromeUIHistoryHost); + source->AddString("overridesHistory", overridesHistory ? "yes" : "no"); source->DisableDenyXFrameOptions(); source->OverrideContentSecurityPolicyFrameSrc("frame-src chrome:;"); @@ -167,7 +148,7 @@ void UberUI::RegisterSubpage(const std::string& page_url, } content::WebUI* UberUI::GetSubpage(const std::string& page_url) { - if (!sub_uis_.count(page_url)) + if (!ContainsKey(sub_uis_, page_url)) return NULL; return sub_uis_[page_url]; } @@ -212,9 +193,8 @@ UberFrameUI::UberFrameUI(content::WebUI* web_ui) : WebUIController(web_ui) { content::WebUIDataSource::Add(profile, CreateUberFrameHTMLSource(profile)); // Register as an observer for when extensions are loaded and unloaded. - registrar_.Add(this, - chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, - content::Source<Profile>(profile)); + registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, + content::Source<Profile>(profile)); registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, content::Source<Profile>(profile)); } @@ -222,7 +202,8 @@ UberFrameUI::UberFrameUI(content::WebUI* web_ui) : WebUIController(web_ui) { UberFrameUI::~UberFrameUI() { } -void UberFrameUI::Observe(int type, const content::NotificationSource& source, +void UberFrameUI::Observe(int type, + const content::NotificationSource& source, const content::NotificationDetails& details) { switch (type) { // We listen for notifications that indicate an extension has been loaded |