diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-20 04:53:37 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-20 04:53:37 +0000 |
commit | 326e6f0abee2401bc1676b600653a851283d8b06 (patch) | |
tree | baf666c929ee22517f4c7750369ce4b2bd03f8ae | |
parent | 6cb17c0190e848b0af0e618520f5e9429ac0dca3 (diff) | |
download | chromium_src-326e6f0abee2401bc1676b600653a851283d8b06.zip chromium_src-326e6f0abee2401bc1676b600653a851283d8b06.tar.gz chromium_src-326e6f0abee2401bc1676b600653a851283d8b06.tar.bz2 |
Moves extension_icon_image and image_loader to extensions/browser
Now extension_icon_image and image_loader are safe to be used
outside of Chrome, like AppShell/Athena.
BUG=159265, 380421
R=yoz@chromium.org, jamescook@chromium.org
TBR=sky@chromium.org, fmalita@chromium.org
TEST=unit_tests, compile succeeds
Review URL: https://codereview.chromium.org/334053003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278601 0039d316-1c4b-4281-b951-d872f2087c98
54 files changed, 331 insertions, 199 deletions
@@ -32,7 +32,6 @@ include_rules = [ "+chrome/browser/extensions/api/file_handlers/app_file_handler_util.h", "+chrome/browser/extensions/api/file_system/file_system_api.h", "+chrome/browser/extensions/chrome_extension_web_contents_observer.h", - "+chrome/browser/extensions/extension_icon_image.h", "+chrome/browser/extensions/suggest_permission_util.h", "+chrome/browser/extensions/unpacked_installer.h", "+chrome/common/extensions/api/app_window.h", diff --git a/apps/app_window.h b/apps/app_window.h index c8efcb5..f2e0e98 100644 --- a/apps/app_window.h +++ b/apps/app_window.h @@ -7,7 +7,6 @@ #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/sessions/session_id.h" #include "components/web_modal/web_contents_modal_dialog_manager_delegate.h" #include "content/public/browser/notification_observer.h" @@ -15,6 +14,7 @@ #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/common/console_message_level.h" +#include "extensions/browser/extension_icon_image.h" #include "ui/base/ui_base_types.h" // WindowShowState #include "ui/gfx/image/image.h" #include "ui/gfx/rect.h" diff --git a/apps/shell/browser/shell_extensions_browser_client.cc b/apps/shell/browser/shell_extensions_browser_client.cc index 6e8f3ef..76f4a83 100644 --- a/apps/shell/browser/shell_extensions_browser_client.cc +++ b/apps/shell/browser/shell_extensions_browser_client.cc @@ -237,4 +237,9 @@ ShellExtensionsBrowserClient::CreateRuntimeAPIDelegate( return scoped_ptr<RuntimeAPIDelegate>(new apps::ShellRuntimeAPIDelegate()); } +ComponentExtensionResourceManager* +ShellExtensionsBrowserClient::GetComponentExtensionResourceManager() { + return NULL; +} + } // namespace extensions diff --git a/apps/shell/browser/shell_extensions_browser_client.h b/apps/shell/browser/shell_extensions_browser_client.h index 67e937d..2013c6d 100644 --- a/apps/shell/browser/shell_extensions_browser_client.h +++ b/apps/shell/browser/shell_extensions_browser_client.h @@ -75,6 +75,8 @@ class ShellExtensionsBrowserClient : public ExtensionsBrowserClient { ExtensionFunctionRegistry* registry) const OVERRIDE; virtual scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate( content::BrowserContext* context) const OVERRIDE; + virtual ComponentExtensionResourceManager* + GetComponentExtensionResourceManager() OVERRIDE; private: // The single BrowserContext for app_shell. Not owned. diff --git a/chrome/browser/background/background_application_list_model.cc b/chrome/browser/background/background_application_list_model.cc index 1c65a31..712a2c1 100644 --- a/chrome/browser/background/background_application_list_model.cc +++ b/chrome/browser/background/background_application_list_model.cc @@ -18,7 +18,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_service.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension_constants.h" #include "content/public/browser/notification_details.h" @@ -26,6 +25,7 @@ #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" #include "extensions/common/extension_resource.h" diff --git a/chrome/browser/background/background_contents_service.cc b/chrome/browser/background/background_contents_service.cc index a714014..687d87a 100644 --- a/chrome/browser/background/background_contents_service.cc +++ b/chrome/browser/background/background_contents_service.cc @@ -20,7 +20,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_service.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/notification.h" #include "chrome/browser/notifications/notification_delegate.h" @@ -39,6 +38,7 @@ #include "extensions/browser/extension_host.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_data.cc b/chrome/browser/chromeos/app_mode/kiosk_app_data.cc index a161e78..955a91d 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_app_data.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_app_data.cc @@ -19,7 +19,6 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/webstore_data_fetcher.h" #include "chrome/browser/extensions/webstore_install_helper.h" #include "chrome/browser/image_decoder.h" @@ -27,6 +26,7 @@ #include "chrome/common/extensions/extension_constants.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/manifest.h" #include "extensions/common/manifest_constants.h" diff --git a/chrome/browser/extensions/api/execute_code_function.cc b/chrome/browser/extensions/api/execute_code_function.cc index ae38082..848b862 100644 --- a/chrome/browser/extensions/api/execute_code_function.cc +++ b/chrome/browser/extensions/api/execute_code_function.cc @@ -5,9 +5,10 @@ #include "chrome/browser/extensions/api/execute_code_function.h" #include "chrome/browser/extensions/api/tabs/tabs_constants.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/script_executor.h" #include "chrome/common/extensions/api/i18n/default_locale_handler.h" +#include "extensions/browser/component_extension_resource_manager.h" +#include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/file_reader.h" #include "extensions/common/error_utils.h" #include "extensions/common/extension_messages.h" @@ -196,7 +197,8 @@ bool ExecuteCodeFunction::RunAsync() { } int resource_id; - if (ImageLoader::IsComponentExtensionResource( + if (ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager()-> + IsComponentExtensionResource( resource_.extension_root(), resource_.relative_path(), &resource_id)) { const ResourceBundle& rb = ResourceBundle::GetSharedInstance(); diff --git a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc index 35bf48e..b6dfdbd 100644 --- a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc +++ b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc @@ -8,10 +8,10 @@ #include "base/lazy_instance.h" #include "base/values.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/api/screenlock_private.h" #include "extensions/browser/event_router.h" +#include "extensions/browser/image_loader.h" #include "ui/gfx/image/image.h" namespace screenlock = extensions::api::screenlock_private; diff --git a/chrome/browser/extensions/app_icon_loader_impl.h b/chrome/browser/extensions/app_icon_loader_impl.h index d68962e..c0b68ae 100644 --- a/chrome/browser/extensions/app_icon_loader_impl.h +++ b/chrome/browser/extensions/app_icon_loader_impl.h @@ -9,7 +9,7 @@ #include <string> #include "chrome/browser/extensions/app_icon_loader.h" -#include "chrome/browser/extensions/extension_icon_image.h" +#include "extensions/browser/extension_icon_image.h" class Profile; diff --git a/chrome/browser/extensions/bookmark_app_helper.cc b/chrome/browser/extensions/bookmark_app_helper.cc index bd5e2df..1403470 100644 --- a/chrome/browser/extensions/bookmark_app_helper.cc +++ b/chrome/browser/extensions/bookmark_app_helper.cc @@ -11,13 +11,13 @@ #include "chrome/browser/extensions/crx_installer.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/favicon_downloader.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/manifest_handlers/icons_handler.h" diff --git a/chrome/browser/extensions/chrome_component_extension_resource_manager.cc b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc new file mode 100644 index 0000000..b531556 --- /dev/null +++ b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc @@ -0,0 +1,101 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/extensions/chrome_component_extension_resource_manager.h" + +#include "base/logging.h" +#include "base/path_service.h" +#include "chrome/common/chrome_paths.h" +#include "grit/chrome_unscaled_resources.h" +#include "grit/component_extension_resources_map.h" +#include "grit/theme_resources.h" + +#if defined(OS_CHROMEOS) +#include "ui/file_manager/file_manager_resource_util.h" +#endif + +#if defined(USE_AURA) +#include "ui/keyboard/keyboard_util.h" +#endif + +namespace extensions { + +ChromeComponentExtensionResourceManager:: +ChromeComponentExtensionResourceManager() { + static const GritResourceMap kExtraComponentExtensionResources[] = { + {"web_store/webstore_icon_128.png", IDR_WEBSTORE_ICON}, + {"web_store/webstore_icon_16.png", IDR_WEBSTORE_ICON_16}, + {"chrome_app/product_logo_128.png", IDR_PRODUCT_LOGO_128}, + {"chrome_app/product_logo_16.png", IDR_PRODUCT_LOGO_16}, +#if defined(ENABLE_SETTINGS_APP) + {"settings_app/settings_app_icon_128.png", IDR_SETTINGS_APP_ICON_128}, + {"settings_app/settings_app_icon_16.png", IDR_SETTINGS_APP_ICON_16}, + {"settings_app/settings_app_icon_32.png", IDR_SETTINGS_APP_ICON_32}, + {"settings_app/settings_app_icon_48.png", IDR_SETTINGS_APP_ICON_48}, +#endif + }; + + AddComponentResourceEntries( + kComponentExtensionResources, + kComponentExtensionResourcesSize); + AddComponentResourceEntries( + kExtraComponentExtensionResources, + arraysize(kExtraComponentExtensionResources)); +#if defined(OS_CHROMEOS) + size_t file_manager_resource_size; + const GritResourceMap* file_manager_resources = + file_manager::GetFileManagerResources(&file_manager_resource_size); + AddComponentResourceEntries( + file_manager_resources, + file_manager_resource_size); + + size_t keyboard_resource_size; + const GritResourceMap* keyboard_resources = + keyboard::GetKeyboardExtensionResources(&keyboard_resource_size); + AddComponentResourceEntries( + keyboard_resources, + keyboard_resource_size); +#endif +} + +ChromeComponentExtensionResourceManager:: +~ChromeComponentExtensionResourceManager() {} + +bool ChromeComponentExtensionResourceManager::IsComponentExtensionResource( + const base::FilePath& extension_path, + const base::FilePath& resource_path, + int* resource_id) { + base::FilePath directory_path = extension_path; + base::FilePath resources_dir; + base::FilePath relative_path; + if (!PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || + !resources_dir.AppendRelativePath(directory_path, &relative_path)) { + return false; + } + relative_path = relative_path.Append(resource_path); + relative_path = relative_path.NormalizePathSeparators(); + + std::map<base::FilePath, int>::const_iterator entry = + path_to_resource_id_.find(relative_path); + if (entry != path_to_resource_id_.end()) + *resource_id = entry->second; + + return entry != path_to_resource_id_.end(); +} + +void ChromeComponentExtensionResourceManager::AddComponentResourceEntries( + const GritResourceMap* entries, + size_t size) { + for (size_t i = 0; i < size; ++i) { + base::FilePath resource_path = base::FilePath().AppendASCII( + entries[i].name); + resource_path = resource_path.NormalizePathSeparators(); + + DCHECK(path_to_resource_id_.find(resource_path) == + path_to_resource_id_.end()); + path_to_resource_id_[resource_path] = entries[i].value; + } +} + +} // namespace extensions diff --git a/chrome/browser/extensions/chrome_component_extension_resource_manager.h b/chrome/browser/extensions/chrome_component_extension_resource_manager.h new file mode 100644 index 0000000..6c6448f --- /dev/null +++ b/chrome/browser/extensions/chrome_component_extension_resource_manager.h @@ -0,0 +1,42 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ +#define CHROME_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ + +#include <map> + +#include "base/basictypes.h" +#include "base/files/file_path.h" +#include "extensions/browser/component_extension_resource_manager.h" + +struct GritResourceMap; + +namespace extensions { + +class ChromeComponentExtensionResourceManager + : public ComponentExtensionResourceManager { + public: + ChromeComponentExtensionResourceManager(); + virtual ~ChromeComponentExtensionResourceManager(); + + // Overridden from ComponentExtensionResourceManager: + virtual bool IsComponentExtensionResource( + const base::FilePath& extension_path, + const base::FilePath& resource_path, + int* resource_id) OVERRIDE; + + private: + void AddComponentResourceEntries(const GritResourceMap* entries, size_t size); + + // A map from a resource path to the resource ID. Used by + // IsComponentExtensionResource. + std::map<base::FilePath, int> path_to_resource_id_; + + DISALLOW_COPY_AND_ASSIGN(ChromeComponentExtensionResourceManager); +}; + +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc index ad73fb1..938ca29 100644 --- a/chrome/browser/extensions/chrome_extensions_browser_client.cc +++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc @@ -6,6 +6,7 @@ #include "apps/common/api/generated_api.h" #include "base/command_line.h" +#include "base/path_service.h" #include "base/version.h" #include "chrome/browser/app_mode/app_mode_utils.h" #include "chrome/browser/browser_process.h" @@ -14,6 +15,7 @@ #include "chrome/browser/extensions/api/preference/preference_api.h" #include "chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.h" #include "chrome/browser/extensions/chrome_app_sorting.h" +#include "chrome/browser/extensions/chrome_component_extension_resource_manager.h" #include "chrome/browser/extensions/chrome_extension_host_delegate.h" #include "chrome/browser/extensions/extension_system_factory.h" #include "chrome/browser/extensions/extension_util.h" @@ -22,6 +24,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_finder.h" +#include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/extensions/api/generated_api.h" @@ -269,6 +272,13 @@ void ChromeExtensionsBrowserClient::RegisterExtensionFunctions( #endif } +ComponentExtensionResourceManager* +ChromeExtensionsBrowserClient::GetComponentExtensionResourceManager() { + if (!resource_manager_) + resource_manager_.reset(new ChromeComponentExtensionResourceManager()); + return resource_manager_.get(); +} + scoped_ptr<extensions::RuntimeAPIDelegate> ChromeExtensionsBrowserClient::CreateRuntimeAPIDelegate( content::BrowserContext* context) const { diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.h b/chrome/browser/extensions/chrome_extensions_browser_client.h index 0c5d160..3c4a2c6 100644 --- a/chrome/browser/extensions/chrome_extensions_browser_client.h +++ b/chrome/browser/extensions/chrome_extensions_browser_client.h @@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSIONS_BROWSER_CLIENT_H_ #define CHROME_BROWSER_EXTENSIONS_CHROME_EXTENSIONS_BROWSER_CLIENT_H_ +#include <map> + #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/lazy_instance.h" @@ -22,6 +24,7 @@ class BrowserContext; namespace extensions { +class ChromeComponentExtensionResourceManager; class ChromeExtensionsAPIClient; class ContentSettingsPrefsObserver; @@ -89,6 +92,8 @@ class ChromeExtensionsBrowserClient : public ExtensionsBrowserClient { ExtensionFunctionRegistry* registry) const OVERRIDE; virtual scoped_ptr<extensions::RuntimeAPIDelegate> CreateRuntimeAPIDelegate( content::BrowserContext* context) const OVERRIDE; + virtual ComponentExtensionResourceManager* + GetComponentExtensionResourceManager() OVERRIDE; private: friend struct base::DefaultLazyInstanceTraits<ChromeExtensionsBrowserClient>; @@ -101,6 +106,8 @@ class ChromeExtensionsBrowserClient : public ExtensionsBrowserClient { scoped_ptr<ChromeExtensionsAPIClient> api_client_; #endif + scoped_ptr<ChromeComponentExtensionResourceManager> resource_manager_; + DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsBrowserClient); }; diff --git a/chrome/browser/extensions/extension_action_icon_factory.h b/chrome/browser/extensions/extension_action_icon_factory.h index 3d6142a..bf3461e 100644 --- a/chrome/browser/extensions/extension_action_icon_factory.h +++ b/chrome/browser/extensions/extension_action_icon_factory.h @@ -6,7 +6,7 @@ #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_ICON_FACTORY_H_ #include "base/memory/scoped_ptr.h" -#include "chrome/browser/extensions/extension_icon_image.h" +#include "extensions/browser/extension_icon_image.h" class ExtensionAction; class ExtensionIconSet; diff --git a/chrome/browser/extensions/extension_disabled_ui.cc b/chrome/browser/extensions/extension_disabled_ui.cc index ade5dfb..b2c8a51 100644 --- a/chrome/browser/extensions/extension_disabled_ui.cc +++ b/chrome/browser/extensions/extension_disabled_ui.cc @@ -21,7 +21,6 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_uninstall_dialog.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/global_error/global_error.h" @@ -33,6 +32,7 @@ #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_source.h" #include "extensions/browser/extension_util.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/extensions/extension_icon_manager.cc b/chrome/browser/extensions/extension_icon_manager.cc index 82c48281..a1e62e2 100644 --- a/chrome/browser/extensions/extension_icon_manager.cc +++ b/chrome/browser/extensions/extension_icon_manager.cc @@ -7,7 +7,7 @@ #include "base/bind.h" #include "base/logging.h" #include "base/stl_util.h" -#include "chrome/browser/extensions/image_loader.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc index 87ecb02..074b046 100644 --- a/chrome/browser/extensions/extension_install_prompt.cc +++ b/chrome/browser/extensions/extension_install_prompt.cc @@ -16,7 +16,6 @@ #include "chrome/browser/extensions/bundle_installer.h" #include "chrome/browser/extensions/extension_install_ui.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" @@ -25,6 +24,7 @@ #include "content/public/browser/web_contents.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_util.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/extensions/extension_storage_monitor.cc b/chrome/browser/extensions/extension_storage_monitor.cc index 88b5013..750caaa 100644 --- a/chrome/browser/extensions/extension_storage_monitor.cc +++ b/chrome/browser/extensions/extension_storage_monitor.cc @@ -13,7 +13,6 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_storage_monitor_factory.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "content/public/browser/browser_context.h" @@ -24,6 +23,7 @@ #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "extensions/common/manifest_handlers/icons_handler.h" #include "extensions/common/permissions/permissions_data.h" diff --git a/chrome/browser/extensions/extension_uninstall_dialog.cc b/chrome/browser/extensions/extension_uninstall_dialog.cc index 82c44a7..467a352 100644 --- a/chrome/browser/extensions/extension_uninstall_dialog.cc +++ b/chrome/browser/extensions/extension_uninstall_dialog.cc @@ -10,12 +10,12 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/extensions/extension_web_ui.cc b/chrome/browser/extensions/extension_web_ui.cc index 6e054bb..21b2b10 100644 --- a/chrome/browser/extensions/extension_web_ui.cc +++ b/chrome/browser/extensions/extension_web_ui.cc @@ -16,7 +16,6 @@ #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/extensions/image_loader.h" #include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" @@ -30,6 +29,7 @@ #include "content/public/common/bindings_policy.h" #include "content/public/common/page_transition_types.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" #include "extensions/common/extension_resource.h" diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc index bc51f17..e6ad1bc 100644 --- a/chrome/browser/extensions/tab_helper.cc +++ b/chrome/browser/extensions/tab_helper.cc @@ -20,7 +20,6 @@ #include "chrome/browser/extensions/extension_action_manager.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_tab_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/location_bar_controller.h" #include "chrome/browser/extensions/script_executor.h" #include "chrome/browser/extensions/webstore_inline_installer.h" @@ -56,6 +55,7 @@ #include "extensions/browser/extension_error.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/extensions/url_request_util.cc b/chrome/browser/extensions/url_request_util.cc index acf836b..24e0375 100644 --- a/chrome/browser/extensions/url_request_util.cc +++ b/chrome/browser/extensions/url_request_util.cc @@ -14,12 +14,13 @@ #include "base/strings/stringprintf.h" #include "base/task_runner_util.h" #include "chrome/browser/extensions/extension_renderer_state.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/manifest_url_handler.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/resource_request_info.h" +#include "extensions/browser/component_extension_resource_manager.h" #include "extensions/browser/extension_protocols.h" +#include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/info_map.h" #include "extensions/common/file_util.h" #include "extensions/common/manifest_handlers/icons_handler.h" @@ -35,6 +36,7 @@ #include "ui/base/resource/resource_bundle.h" using content::BrowserThread; +using extensions::ExtensionsBrowserClient; namespace { @@ -224,7 +226,8 @@ net::URLRequestJob* MaybeCreateURLRequestResourceBundleJob( base::FilePath request_path = extensions::file_util::ExtensionURLToRelativeFilePath(request->url()); int resource_id = 0; - if (extensions::ImageLoader::IsComponentExtensionResource( + if (ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager()-> + IsComponentExtensionResource( directory_path, request_path, &resource_id)) { relative_path = relative_path.Append(request_path); relative_path = relative_path.NormalizePathSeparators(); diff --git a/chrome/browser/extensions/user_script_master.cc b/chrome/browser/extensions/user_script_master.cc index 565bdcb..c24dd6c 100644 --- a/chrome/browser/extensions/user_script_master.cc +++ b/chrome/browser/extensions/user_script_master.cc @@ -14,20 +14,22 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/api/i18n/default_locale_handler.h" #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/render_process_host.h" +#include "extensions/browser/component_extension_resource_manager.h" #include "extensions/browser/content_verifier.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/extensions_browser_client.h" #include "extensions/common/file_util.h" #include "extensions/common/message_bundle.h" #include "ui/base/resource/resource_bundle.h" using content::BrowserThread; +using extensions::ExtensionsBrowserClient; namespace extensions { @@ -201,7 +203,8 @@ static bool LoadScriptContent(const std::string& extension_id, ExtensionResource::SYMLINKS_MUST_RESOLVE_WITHIN_ROOT); if (path.empty()) { int resource_id; - if (extensions::ImageLoader::IsComponentExtensionResource( + if (ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager()-> + IsComponentExtensionResource( script_file->extension_root(), script_file->relative_path(), &resource_id)) { const ResourceBundle& rb = ResourceBundle::GetSharedInstance(); diff --git a/chrome/browser/ui/app_list/extension_app_item.h b/chrome/browser/ui/app_list/extension_app_item.h index f52e127..4ac0719 100644 --- a/chrome/browser/ui/app_list/extension_app_item.h +++ b/chrome/browser/ui/app_list/extension_app_item.h @@ -8,10 +8,10 @@ #include <string> #include "base/memory/scoped_ptr.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/ui/app_list/app_context_menu_delegate.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "chrome/browser/ui/extensions/extension_enable_flow_delegate.h" +#include "extensions/browser/extension_icon_image.h" #include "ui/app_list/app_list_item.h" #include "ui/gfx/image/image_skia.h" diff --git a/chrome/browser/ui/app_list/search/app_result.h b/chrome/browser/ui/app_list/search/app_result.h index a5aaa21..7771433 100644 --- a/chrome/browser/ui/app_list/search/app_result.h +++ b/chrome/browser/ui/app_list/search/app_result.h @@ -8,10 +8,10 @@ #include <string> #include "base/memory/scoped_ptr.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/ui/app_list/app_context_menu_delegate.h" #include "chrome/browser/ui/app_list/search/chrome_search_result.h" #include "chrome/browser/ui/extensions/extension_enable_flow_delegate.h" +#include "extensions/browser/extension_icon_image.h" #include "extensions/browser/extension_registry_observer.h" class AppListControllerDelegate; diff --git a/chrome/browser/ui/cocoa/infobars/extension_infobar_controller.mm b/chrome/browser/ui/cocoa/infobars/extension_infobar_controller.mm index 2c46ba3..7097ec8 100644 --- a/chrome/browser/ui/cocoa/infobars/extension_infobar_controller.mm +++ b/chrome/browser/ui/cocoa/infobars/extension_infobar_controller.mm @@ -8,7 +8,6 @@ #include "chrome/browser/extensions/extension_infobar_delegate.h" #include "chrome/browser/extensions/extension_view_host.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_finder.h" @@ -17,6 +16,7 @@ #include "chrome/browser/ui/cocoa/infobars/infobar_cocoa.h" #import "chrome/browser/ui/cocoa/menu_button.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.h b/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.h index e3c70fd..8686c72 100644 --- a/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.h +++ b/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.h @@ -8,10 +8,10 @@ #import <Cocoa/Cocoa.h> #include "base/mac/scoped_nsobject.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/safe_browsing/ui_manager.h" #include "chrome/browser/ui/cocoa/location_bar/button_decoration.h" #include "chrome/browser/ui/toolbar/origin_chip_info.h" +#include "extensions/browser/extension_icon_image.h" class LocationBarViewMac; class LocationIconDecoration; diff --git a/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.mm b/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.mm index f04b5ed..521eb37 100644 --- a/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.mm +++ b/chrome/browser/ui/cocoa/location_bar/origin_chip_decoration.mm @@ -9,7 +9,6 @@ #include "base/strings/sys_string_conversions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/search/search.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/safe_browsing/ui_manager.h" #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" @@ -19,6 +18,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/toolbar/origin_chip_info.h" #include "content/public/browser/user_metrics.h" +#include "extensions/browser/extension_icon_image.h" #include "grit/theme_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" diff --git a/chrome/browser/ui/panels/panel.cc b/chrome/browser/ui/panels/panel.cc index 93ebd68..725cccf 100644 --- a/chrome/browser/ui/panels/panel.cc +++ b/chrome/browser/ui/panels/panel.cc @@ -15,7 +15,6 @@ #include "chrome/browser/extensions/api/tabs/windows_event_router.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_tab_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/window_controller.h" #include "chrome/browser/extensions/window_controller_list.h" #include "chrome/browser/lifetime/application_lifetime.h" @@ -35,6 +34,7 @@ #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/manifest_handlers/icons_handler.h" diff --git a/chrome/browser/ui/toolbar/origin_chip_info.cc b/chrome/browser/ui/toolbar/origin_chip_info.cc index 24b36f9..c2cf752 100644 --- a/chrome/browser/ui/toolbar/origin_chip_info.cc +++ b/chrome/browser/ui/toolbar/origin_chip_info.cc @@ -7,7 +7,6 @@ #include "base/prefs/pref_service.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/profiles/profile.h" @@ -18,6 +17,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/extension_icon_image.h" #include "extensions/browser/extension_system.h" #include "extensions/common/constants.h" #include "extensions/common/manifest_handlers/icons_handler.h" diff --git a/chrome/browser/ui/toolbar/origin_chip_info.h b/chrome/browser/ui/toolbar/origin_chip_info.h index d50f48b..5ac5264 100644 --- a/chrome/browser/ui/toolbar/origin_chip_info.h +++ b/chrome/browser/ui/toolbar/origin_chip_info.h @@ -6,8 +6,8 @@ #define CHROME_BROWSER_UI_TOOLBAR_ORIGIN_CHIP_INFO_H_ #include "base/strings/string16.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/ui/toolbar/toolbar_model.h" +#include "extensions/browser/extension_icon_image.h" class GURL; class Profile; diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc index d586acc..a4dea10 100644 --- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc +++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc @@ -8,12 +8,12 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_navigator.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/manifest_url_handler.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/ui/views/infobars/extension_infobar.cc b/chrome/browser/ui/views/infobars/extension_infobar.cc index a7ff5ba..720d8b9 100644 --- a/chrome/browser/ui/views/infobars/extension_infobar.cc +++ b/chrome/browser/ui/views/infobars/extension_infobar.cc @@ -7,9 +7,9 @@ #include "chrome/browser/extensions/extension_context_menu_model.h" #include "chrome/browser/extensions/extension_infobar_delegate.h" #include "chrome/browser/extensions/extension_view_host.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/ui/views/frame/browser_view.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" diff --git a/chrome/browser/ui/views/location_bar/origin_chip_view.cc b/chrome/browser/ui/views/location_bar/origin_chip_view.cc index aa1502d..5a7c267 100644 --- a/chrome/browser/ui/views/location_bar/origin_chip_view.cc +++ b/chrome/browser/ui/views/location_bar/origin_chip_view.cc @@ -9,7 +9,6 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/extensions/extension_icon_image.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/favicon/favicon_tab_helper.h" @@ -28,6 +27,7 @@ #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" #include "content/public/common/url_constants.h" +#include "extensions/browser/extension_icon_image.h" #include "extensions/browser/extension_system.h" #include "extensions/common/constants.h" #include "extensions/common/manifest_handlers/icons_handler.h" diff --git a/chrome/browser/ui/webui/extensions/extension_icon_source.cc b/chrome/browser/ui/webui/extensions/extension_icon_source.cc index c6ba0c6..a460a12 100644 --- a/chrome/browser/ui/webui/extensions/extension_icon_source.cc +++ b/chrome/browser/ui/webui/extensions/extension_icon_source.cc @@ -14,7 +14,6 @@ #include "base/strings/stringprintf.h" #include "base/threading/thread.h" #include "chrome/browser/extensions/extension_service.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension_constants.h" @@ -22,6 +21,7 @@ #include "chrome/common/url_constants.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_system.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "extensions/common/extension_resource.h" #include "extensions/common/manifest_handlers/icons_handler.h" diff --git a/chrome/browser/web_applications/web_app.cc b/chrome/browser/web_applications/web_app.cc index 67d3fbe..118492e 100644 --- a/chrome/browser/web_applications/web_app.cc +++ b/chrome/browser/web_applications/web_app.cc @@ -13,7 +13,6 @@ #include "base/strings/utf_string_conversions.h" #include "base/threading/thread.h" #include "chrome/browser/extensions/extension_ui_util.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/favicon/favicon_tab_helper.h" #include "chrome/browser/profiles/profile.h" @@ -23,6 +22,7 @@ #include "chrome/common/pref_names.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/extension_registry.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_set.h" diff --git a/chrome/chrome_browser_extensions.gypi b/chrome/chrome_browser_extensions.gypi index 394366d..de47841 100644 --- a/chrome/chrome_browser_extensions.gypi +++ b/chrome/chrome_browser_extensions.gypi @@ -667,6 +667,8 @@ 'browser/extensions/bundle_installer.h', 'browser/extensions/chrome_app_sorting.cc', 'browser/extensions/chrome_app_sorting.h', + 'browser/extensions/chrome_component_extension_resource_manager.cc', + 'browser/extensions/chrome_component_extension_resource_manager.h', 'browser/extensions/chrome_extension_function.cc', 'browser/extensions/chrome_extension_function.h', 'browser/extensions/chrome_extension_host_delegate.cc', @@ -738,8 +740,6 @@ 'browser/extensions/extension_garbage_collector_factory.h', 'browser/extensions/extension_gcm_app_handler.cc', 'browser/extensions/extension_gcm_app_handler.h', - 'browser/extensions/extension_icon_image.cc', - 'browser/extensions/extension_icon_image.h', 'browser/extensions/extension_icon_manager.cc', 'browser/extensions/extension_icon_manager.h', 'browser/extensions/extension_infobar_delegate.cc', @@ -840,10 +840,6 @@ 'browser/extensions/global_shortcut_listener_win.h', 'browser/extensions/global_shortcut_listener_x11.cc', 'browser/extensions/global_shortcut_listener_x11.h', - 'browser/extensions/image_loader.cc', - 'browser/extensions/image_loader.h', - 'browser/extensions/image_loader_factory.cc', - 'browser/extensions/image_loader_factory.h', 'browser/extensions/installed_loader.cc', 'browser/extensions/installed_loader.h', 'browser/extensions/install_observer.cc', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index 594c419..15dd4aa7 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -544,11 +544,13 @@ '../extensions/browser/event_router_unittest.cc', '../extensions/browser/extension_error_test_util.cc', '../extensions/browser/extension_error_test_util.h', + '../extensions/browser/extension_icon_image_unittest.cc', '../extensions/browser/extension_pref_value_map_unittest.cc', '../extensions/browser/extension_protocols_unittest.cc', '../extensions/browser/extension_registry_unittest.cc', '../extensions/browser/file_highlighter_unittest.cc', '../extensions/browser/file_reader_unittest.cc', + '../extensions/browser/image_loader_unittest.cc', '../extensions/browser/image_util_unittest.cc', '../extensions/browser/info_map_unittest.cc', '../extensions/browser/lazy_background_task_queue_unittest.cc', @@ -963,7 +965,6 @@ 'browser/extensions/extension_garbage_collector_unittest.cc', 'browser/extensions/extension_garbage_collector_chromeos_unittest.cc', 'browser/extensions/extension_gcm_app_handler_unittest.cc', - 'browser/extensions/extension_icon_image_unittest.cc', 'browser/extensions/extension_icon_manager_unittest.cc', 'browser/extensions/extension_message_bubble_controller_unittest.cc', 'browser/extensions/extension_prefs_unittest.cc', @@ -982,7 +983,6 @@ 'browser/extensions/external_provider_impl_unittest.cc', 'browser/extensions/external_provider_impl_chromeos_unittest.cc', 'browser/extensions/favicon_downloader_unittest.cc', - 'browser/extensions/image_loader_unittest.cc', 'browser/extensions/menu_manager_unittest.cc', 'browser/extensions/pack_extension_unittest.cc', 'browser/extensions/page_action_controller_unittest.cc', diff --git a/extensions/browser/DEPS b/extensions/browser/DEPS index 15dca56..9b4dd6f 100644 --- a/extensions/browser/DEPS +++ b/extensions/browser/DEPS @@ -4,6 +4,7 @@ include_rules = [ "+content/public/browser", "+grit/extensions_strings.h", "+net", + "+skia/ext/image_operations.h", "+sync", "+third_party/leveldatabase", "+third_party/skia/include", diff --git a/extensions/browser/component_extension_resource_manager.h b/extensions/browser/component_extension_resource_manager.h new file mode 100644 index 0000000..1f82381 --- /dev/null +++ b/extensions/browser/component_extension_resource_manager.h @@ -0,0 +1,32 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef EXTENSIONS_BROWSER_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ +#define EXTENSIONS_BROWSER_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ + +namespace base { +class FilePath; +} + +namespace extensions { + +// This class manages which extension resources actually come from +// the resource bundle. +class ComponentExtensionResourceManager { + public: + virtual ~ComponentExtensionResourceManager() {} + + // Checks whether image is a component extension resource. Returns false + // if a given |resource| does not have a corresponding image in bundled + // resources. Otherwise fills |resource_id|. This doesn't check if the + // extension the resource is in is actually a component extension. + virtual bool IsComponentExtensionResource( + const base::FilePath& extension_path, + const base::FilePath& resource_path, + int* resource_id) = 0; +}; + +} // namespace extensions + +#endif // EXTENSIONS_BROWSER_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_ diff --git a/chrome/browser/extensions/extension_icon_image.cc b/extensions/browser/extension_icon_image.cc index 595a11f..99473b1 100644 --- a/chrome/browser/extensions/extension_icon_image.cc +++ b/extensions/browser/extension_icon_image.cc @@ -1,15 +1,15 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/extension_icon_image.h" +#include "extensions/browser/extension_icon_image.h" #include <vector> #include "base/bind.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/extensions/image_loader.h" #include "content/public/browser/notification_service.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/canvas_image_source.h" diff --git a/chrome/browser/extensions/extension_icon_image.h b/extensions/browser/extension_icon_image.h index 5397895..3f76ed3 100644 --- a/chrome/browser/extensions/extension_icon_image.h +++ b/extensions/browser/extension_icon_image.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ICON_IMAGE_H_ -#define CHROME_BROWSER_EXTENSIONS_EXTENSION_ICON_IMAGE_H_ +#ifndef EXTENSIONS_BROWSER_EXTENSION_ICON_IMAGE_H_ +#define EXTENSIONS_BROWSER_EXTENSION_ICON_IMAGE_H_ #include <map> #include <string> @@ -113,4 +113,4 @@ class IconImage : public content::NotificationObserver { } // namespace extensions -#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ICON_IMAGE_H_ +#endif // EXTENSIONS_BROWSER_EXTENSION_ICON_IMAGE_H_ diff --git a/chrome/browser/extensions/extension_icon_image_unittest.cc b/extensions/browser/extension_icon_image_unittest.cc index 1e4cd56..d931043 100644 --- a/chrome/browser/extensions/extension_icon_image_unittest.cc +++ b/extensions/browser/extension_icon_image_unittest.cc @@ -1,21 +1,19 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/extension_icon_image.h" +#include "extensions/browser/extension_icon_image.h" #include "base/json/json_file_value_serializer.h" #include "base/message_loop/message_loop.h" #include "base/path_service.h" -#include "chrome/browser/extensions/image_loader.h" #include "chrome/common/chrome_paths.h" -#include "chrome/common/extensions/extension_constants.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" +#include "extensions/browser/image_loader.h" #include "extensions/common/extension.h" #include "extensions/common/manifest.h" #include "extensions/common/manifest_handlers/icons_handler.h" -#include "grit/theme_resources.h" #include "skia/ext/image_operations.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/resource/resource_bundle.h" @@ -182,8 +180,7 @@ class ExtensionIconImageTest : public testing::Test, } gfx::ImageSkia GetDefaultIcon() { - return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_EXTENSIONS_FAVICON); + return gfx::ImageSkia(gfx::ImageSkiaRep(gfx::Size(16, 16), 1.0f)); } // Loads an image to be used in test from the extension. @@ -213,7 +210,7 @@ TEST_F(ExtensionIconImageTest, Basic) { supported_factors.push_back(ui::SCALE_FACTOR_100P); supported_factors.push_back(ui::SCALE_FACTOR_200P); ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -287,7 +284,7 @@ TEST_F(ExtensionIconImageTest, FallbackToSmallerWhenNoBigger) { supported_factors.push_back(ui::SCALE_FACTOR_100P); supported_factors.push_back(ui::SCALE_FACTOR_200P); ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -326,7 +323,7 @@ TEST_F(ExtensionIconImageTest, FallbackToSmallerWhenNoBigger) { // one. Requested size is smaller than 32 though, so the smaller resource should // be loaded. TEST_F(ExtensionIconImageTest, FallbackToSmaller) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -363,7 +360,7 @@ TEST_F(ExtensionIconImageTest, FallbackToSmaller) { // If resource set is empty, |GetRepresentation| should synchronously return // default icon, without notifying observer of image change. TEST_F(ExtensionIconImageTest, NoResources) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -402,7 +399,7 @@ TEST_F(ExtensionIconImageTest, NoResources) { // the observer should be notified when it's done. |GetRepresentation| should // return the default icon representation once image load is done. TEST_F(ExtensionIconImageTest, InvalidResource) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -441,7 +438,7 @@ TEST_F(ExtensionIconImageTest, InvalidResource) { // Test that IconImage works with lazily (but synchronously) created default // icon when IconImage returns synchronously. TEST_F(ExtensionIconImageTest, LazyDefaultIcon) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -479,7 +476,7 @@ TEST_F(ExtensionIconImageTest, LazyDefaultIcon) { // Test that IconImage works with lazily (but synchronously) created default // icon when IconImage returns asynchronously. TEST_F(ExtensionIconImageTest, LazyDefaultIcon_AsyncIconImage) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); @@ -523,7 +520,7 @@ TEST_F(ExtensionIconImageTest, LazyDefaultIcon_AsyncIconImage) { // representation was not loaded while IconImage host was around, transparent // representations should be returned. TEST_F(ExtensionIconImageTest, IconImageDestruction) { - scoped_ptr<Profile> profile(new TestingProfile()); + scoped_ptr<content::BrowserContext> profile(new TestingProfile()); scoped_refptr<Extension> extension(CreateExtension( "extension_icon_image", Manifest::INVALID_LOCATION)); ASSERT_TRUE(extension.get() != NULL); diff --git a/extensions/browser/extensions_browser_client.h b/extensions/browser/extensions_browser_client.h index 9356aa6..293b2af 100644 --- a/extensions/browser/extensions_browser_client.h +++ b/extensions/browser/extensions_browser_client.h @@ -34,6 +34,7 @@ namespace extensions { class ApiActivityMonitor; class AppSorting; +class ComponentExtensionResourceManager; class Extension; class ExtensionHostDelegate; class ExtensionPrefsObserver; @@ -173,6 +174,11 @@ class ExtensionsBrowserClient { virtual scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate( content::BrowserContext* context) const = 0; + // Returns the manager of resource bundles used in extensions. Returns NULL if + // the manager doesn't exist. + virtual ComponentExtensionResourceManager* + GetComponentExtensionResourceManager() = 0; + // Returns the single instance of |this|. static ExtensionsBrowserClient* Get(); diff --git a/chrome/browser/extensions/image_loader.cc b/extensions/browser/image_loader.cc index 7c76c4d..2c19a73 100644 --- a/chrome/browser/extensions/image_loader.cc +++ b/extensions/browser/image_loader.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/image_loader.h" +#include "extensions/browser/image_loader.h" #include <map> #include <vector> @@ -10,33 +10,22 @@ #include "base/callback.h" #include "base/compiler_specific.h" #include "base/file_util.h" -#include "base/lazy_instance.h" -#include "base/path_service.h" #include "base/strings/string_number_conversions.h" #include "base/threading/sequenced_worker_pool.h" -#include "chrome/browser/extensions/image_loader_factory.h" -#include "chrome/common/chrome_paths.h" #include "content/public/browser/browser_thread.h" +#include "extensions/browser/component_extension_resource_manager.h" +#include "extensions/browser/extensions_browser_client.h" +#include "extensions/browser/image_loader_factory.h" #include "extensions/common/extension.h" -#include "grit/chrome_unscaled_resources.h" -#include "grit/component_extension_resources_map.h" -#include "grit/theme_resources.h" #include "skia/ext/image_operations.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/codec/png_codec.h" #include "ui/gfx/image/image_family.h" #include "ui/gfx/image/image_skia.h" -#if defined(OS_CHROMEOS) -#include "ui/file_manager/file_manager_resource_util.h" -#endif - -#if defined(USE_AURA) -#include "ui/keyboard/keyboard_util.h" -#endif - using content::BrowserThread; using extensions::Extension; +using extensions::ExtensionsBrowserClient; using extensions::ImageLoader; using extensions::Manifest; @@ -105,23 +94,6 @@ void LoadImageOnBlockingPool(const ImageLoader::ImageRepresentation& image_info, gfx::PNGCodec::Decode(data, file_contents.length(), bitmap); } -// Add the resources from |entries| (there are |size| of them) to -// |path_to_resource_id| after normalizing separators. -void AddComponentResourceEntries( - std::map<base::FilePath, int>* path_to_resource_id, - const GritResourceMap* entries, - size_t size) { - for (size_t i = 0; i < size; ++i) { - base::FilePath resource_path = base::FilePath().AppendASCII( - entries[i].name); - resource_path = resource_path.NormalizePathSeparators(); - - DCHECK(path_to_resource_id->find(resource_path) == - path_to_resource_id->end()); - (*path_to_resource_id)[resource_path] = entries[i].value; - } -} - std::vector<SkBitmap> LoadResourceBitmaps( const Extension* extension, const std::vector<ImageLoader::ImageRepresentation>& info_list) { @@ -139,10 +111,14 @@ std::vector<SkBitmap> LoadResourceBitmaps( extension->path() == it->resource.extension_root()); int resource_id; - if (extension->location() == Manifest::COMPONENT && - ImageLoader::IsComponentExtensionResource( - extension->path(), it->resource.relative_path(), &resource_id)) { - LoadResourceOnUIThread(resource_id, &bitmaps[i]); + if (extension->location() == Manifest::COMPONENT) { + extensions::ComponentExtensionResourceManager* manager = + extensions::ExtensionsBrowserClient::Get()-> + GetComponentExtensionResourceManager(); + if (manager && manager->IsComponentExtensionResource( + extension->path(), it->resource.relative_path(), &resource_id)) { + LoadResourceOnUIThread(resource_id, &bitmaps[i]); + } } } return bitmaps; @@ -248,75 +224,6 @@ ImageLoader* ImageLoader::Get(content::BrowserContext* context) { return ImageLoaderFactory::GetForBrowserContext(context); } -// A map from a resource path to the resource ID. Used only by -// IsComponentExtensionResource below. -static base::LazyInstance<std::map<base::FilePath, int> > path_to_resource_id = - LAZY_INSTANCE_INITIALIZER; - -// static -bool ImageLoader::IsComponentExtensionResource( - const base::FilePath& extension_path, - const base::FilePath& resource_path, - int* resource_id) { - static const GritResourceMap kExtraComponentExtensionResources[] = { - {"web_store/webstore_icon_128.png", IDR_WEBSTORE_ICON}, - {"web_store/webstore_icon_16.png", IDR_WEBSTORE_ICON_16}, - {"chrome_app/product_logo_128.png", IDR_PRODUCT_LOGO_128}, - {"chrome_app/product_logo_16.png", IDR_PRODUCT_LOGO_16}, -#if defined(ENABLE_SETTINGS_APP) - {"settings_app/settings_app_icon_128.png", IDR_SETTINGS_APP_ICON_128}, - {"settings_app/settings_app_icon_16.png", IDR_SETTINGS_APP_ICON_16}, - {"settings_app/settings_app_icon_32.png", IDR_SETTINGS_APP_ICON_32}, - {"settings_app/settings_app_icon_48.png", IDR_SETTINGS_APP_ICON_48}, -#endif - }; - - if (path_to_resource_id.Get().empty()) { - AddComponentResourceEntries( - path_to_resource_id.Pointer(), - kComponentExtensionResources, - kComponentExtensionResourcesSize); - AddComponentResourceEntries( - path_to_resource_id.Pointer(), - kExtraComponentExtensionResources, - arraysize(kExtraComponentExtensionResources)); -#if defined(OS_CHROMEOS) - size_t file_manager_resource_size; - const GritResourceMap* file_manager_resources = - file_manager::GetFileManagerResources(&file_manager_resource_size); - AddComponentResourceEntries( - path_to_resource_id.Pointer(), - file_manager_resources, - file_manager_resource_size); - - size_t keyboard_resource_size; - const GritResourceMap* keyboard_resources = - keyboard::GetKeyboardExtensionResources(&keyboard_resource_size); - AddComponentResourceEntries( - path_to_resource_id.Pointer(), - keyboard_resources, - keyboard_resource_size); -#endif - } - - base::FilePath directory_path = extension_path; - base::FilePath resources_dir; - base::FilePath relative_path; - if (!PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || - !resources_dir.AppendRelativePath(directory_path, &relative_path)) { - return false; - } - relative_path = relative_path.Append(resource_path); - relative_path = relative_path.NormalizePathSeparators(); - - std::map<base::FilePath, int>::const_iterator entry = - path_to_resource_id.Get().find(relative_path); - if (entry != path_to_resource_id.Get().end()) - *resource_id = entry->second; - - return entry != path_to_resource_id.Get().end(); -} - void ImageLoader::LoadImageAsync(const Extension* extension, const ExtensionResource& resource, const gfx::Size& max_size, diff --git a/chrome/browser/extensions/image_loader.h b/extensions/browser/image_loader.h index ae36295..a0504e2 100644 --- a/chrome/browser/extensions/image_loader.h +++ b/extensions/browser/image_loader.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_H_ -#define CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_H_ +#ifndef EXTENSIONS_BROWSER_IMAGE_LOADER_H_ +#define EXTENSIONS_BROWSER_IMAGE_LOADER_H_ #include <set> @@ -75,15 +75,6 @@ class ImageLoader : public KeyedService { ImageLoader(); virtual ~ImageLoader(); - // Checks whether image is a component extension resource. Returns false - // if a given |resource| does not have a corresponding image in bundled - // resources. Otherwise fills |resource_id|. This doesn't check if the - // extension the resource is in is actually a component extension. - static bool IsComponentExtensionResource( - const base::FilePath& extension_path, - const base::FilePath& resource_path, - int* resource_id); - // Specify image resource to load. If the loaded image is larger than // |max_size| it will be resized to those dimensions. IMPORTANT NOTE: this // function may call back your callback synchronously (ie before it returns) @@ -127,4 +118,4 @@ class ImageLoader : public KeyedService { } // namespace extensions -#endif // CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_H_ +#endif // EXTENSIONS_BROWSER_IMAGE_LOADER_H_ diff --git a/chrome/browser/extensions/image_loader_factory.cc b/extensions/browser/image_loader_factory.cc index 5ccb75e..60c0b92 100644 --- a/chrome/browser/extensions/image_loader_factory.cc +++ b/extensions/browser/image_loader_factory.cc @@ -1,12 +1,12 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/image_loader_factory.h" +#include "extensions/browser/image_loader_factory.h" -#include "chrome/browser/extensions/image_loader.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "extensions/browser/extensions_browser_client.h" +#include "extensions/browser/image_loader.h" namespace extensions { diff --git a/chrome/browser/extensions/image_loader_factory.h b/extensions/browser/image_loader_factory.h index 41d62dd..dab71f5 100644 --- a/chrome/browser/extensions/image_loader_factory.h +++ b/extensions/browser/image_loader_factory.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_FACTORY_H_ -#define CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_FACTORY_H_ +#ifndef EXTENSIONS_BROWSER_IMAGE_LOADER_FACTORY_H_ +#define EXTENSIONS_BROWSER_IMAGE_LOADER_FACTORY_H_ #include "base/memory/singleton.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -42,4 +42,4 @@ class ImageLoaderFactory : public BrowserContextKeyedServiceFactory { } // namespace extensions -#endif // CHROME_BROWSER_EXTENSIONS_IMAGE_LOADER_FACTORY_H_ +#endif // EXTENSIONS_BROWSER_IMAGE_LOADER_FACTORY_H_ diff --git a/chrome/browser/extensions/image_loader_unittest.cc b/extensions/browser/image_loader_unittest.cc index 45cff827..68b93b0 100644 --- a/chrome/browser/extensions/image_loader_unittest.cc +++ b/extensions/browser/image_loader_unittest.cc @@ -1,16 +1,20 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/image_loader.h" +#include "extensions/browser/image_loader.h" +#include "base/files/file_path.h" #include "base/json/json_file_value_serializer.h" #include "base/message_loop/message_loop.h" #include "base/path_service.h" +#include "base/strings/string_util.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/common/chrome_paths.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_browser_thread.h" +#include "extensions/browser/component_extension_resource_manager.h" +#include "extensions/browser/extensions_browser_client.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_icon_set.h" @@ -19,12 +23,15 @@ #include "extensions/common/manifest_handlers/icons_handler.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" -#include "ui/file_manager/grit/file_manager_resources.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_family.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/size.h" +#if defined(OS_CHROMEOS) +#include "ui/file_manager/grit/file_manager_resources.h" +#endif + using content::BrowserThread; using extensions::Extension; using extensions::ExtensionResource; @@ -316,7 +323,14 @@ TEST_F(ImageLoaderTest, LoadImageFamily) { } // Tests IsComponentExtensionResource function. +// TODO(mukai): move this to ChromeComponentExtensionResourceManager's test. TEST_F(ImageLoaderTest, IsComponentExtensionResource) { + extensions::ComponentExtensionResourceManager* resource_manager = + extensions::ExtensionsBrowserClient::Get()-> + GetComponentExtensionResourceManager(); + if (!resource_manager) + return; + scoped_refptr<Extension> extension(CreateExtension( "file_manager", Manifest::COMPONENT)); ASSERT_TRUE(extension.get() != NULL); @@ -328,10 +342,10 @@ TEST_F(ImageLoaderTest, IsComponentExtensionResource) { #if defined(OS_CHROMEOS) int resource_id; - ASSERT_EQ(true, - ImageLoader::IsComponentExtensionResource(extension->path(), - resource.relative_path(), - &resource_id)); + ASSERT_TRUE(resource_manager->IsComponentExtensionResource( + extension->path(), + resource.relative_path(), + &resource_id)); ASSERT_EQ(IDR_FILE_MANAGER_ICON_16, resource_id); #endif } diff --git a/extensions/browser/test_extensions_browser_client.cc b/extensions/browser/test_extensions_browser_client.cc index 7708ca7..dcd467f 100644 --- a/extensions/browser/test_extensions_browser_client.cc +++ b/extensions/browser/test_extensions_browser_client.cc @@ -162,4 +162,9 @@ TestExtensionsBrowserClient::CreateRuntimeAPIDelegate( return scoped_ptr<RuntimeAPIDelegate>(new TestRuntimeAPIDelegate()); } +ComponentExtensionResourceManager* +TestExtensionsBrowserClient::GetComponentExtensionResourceManager() { + return NULL; +} + } // namespace extensions diff --git a/extensions/browser/test_extensions_browser_client.h b/extensions/browser/test_extensions_browser_client.h index 6fb88044..b793259 100644 --- a/extensions/browser/test_extensions_browser_client.h +++ b/extensions/browser/test_extensions_browser_client.h @@ -75,6 +75,8 @@ class TestExtensionsBrowserClient : public ExtensionsBrowserClient { ExtensionFunctionRegistry* registry) const OVERRIDE; virtual scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate( content::BrowserContext* context) const OVERRIDE; + virtual ComponentExtensionResourceManager* + GetComponentExtensionResourceManager() OVERRIDE; private: content::BrowserContext* main_context_; // Not owned. diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp index d262e989..9d195fa 100644 --- a/extensions/extensions.gyp +++ b/extensions/extensions.gyp @@ -319,6 +319,7 @@ 'browser/browser_context_keyed_api_factory.h', 'browser/browser_context_keyed_service_factories.cc', 'browser/browser_context_keyed_service_factories.h', + 'browser/component_extension_resource_manager.h', 'browser/computed_hashes.cc', 'browser/computed_hashes.h', 'browser/content_hash_fetcher.cc', @@ -351,6 +352,8 @@ 'browser/extension_function_registry.h', 'browser/extension_function_util.cc', 'browser/extension_function_util.h', + 'browser/extension_icon_image.cc', + 'browser/extension_icon_image.h', 'browser/extension_message_filter.cc', 'browser/extension_message_filter.h', 'browser/extension_pref_store.cc', @@ -384,6 +387,10 @@ 'browser/extensions_browser_client.cc', 'browser/extensions_browser_client.h', 'browser/external_provider_interface.h', + 'browser/image_loader.cc', + 'browser/image_loader.h', + 'browser/image_loader_factory.cc', + 'browser/image_loader_factory.h', 'browser/image_util.cc', 'browser/image_util.h', 'browser/info_map.cc', |