diff options
Diffstat (limited to 'chrome/browser/extensions')
21 files changed, 171 insertions, 175 deletions
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); } |