diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-29 21:31:13 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-29 21:31:13 +0000 |
commit | a91d55b7dd8f2694d0eb018bfead5fa04a9eb8ea (patch) | |
tree | 18b3d35f7228637ab8e6ba15c3b27fe388181096 /chrome/browser/extensions | |
parent | 3f31024a74c4a9cbb7e95b230e46546af9e35c6a (diff) | |
download | chromium_src-a91d55b7dd8f2694d0eb018bfead5fa04a9eb8ea.zip chromium_src-a91d55b7dd8f2694d0eb018bfead5fa04a9eb8ea.tar.gz chromium_src-a91d55b7dd8f2694d0eb018bfead5fa04a9eb8ea.tar.bz2 |
Merge 143966 - chromeos: Make Chrome app a real app.
- Add a chrome_app component extension similar to web store;
- Remove ChromeAppItem and use the real app;
- Minor clean up;
- use_aura -> use_ash in browser_resources.grd;
- Fix style nits;
BUG=133015
TEST=Verify that "chrome" app is searchable.
Review URL: https://chromiumcodereview.appspot.com/10652003
TBR=sky@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10689050
git-svn-id: svn://svn.chromium.org/chrome/branches/1180/src@144997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r-- | chrome/browser/extensions/component_loader.cc | 31 | ||||
-rw-r--r-- | chrome/browser/extensions/component_loader.h | 4 | ||||
-rw-r--r-- | chrome/browser/extensions/image_loading_tracker.cc | 13 |
3 files changed, 45 insertions, 3 deletions
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index 595b001..e49d7a1 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc @@ -35,6 +35,11 @@ #include "chrome/browser/chromeos/login/user_manager.h" #endif +#if defined(USE_ASH) +#include "grit/chromium_strings.h" +#include "ui/base/l10n/l10n_util.h" +#endif + namespace extensions { ComponentLoader::ComponentLoader(ExtensionServiceInterface* extension_service, @@ -96,7 +101,7 @@ const Extension* ComponentLoader::Add( } const Extension* ComponentLoader::Add( - std::string& manifest_contents, + const std::string& manifest_contents, const FilePath& root_directory) { // The Value is kept for the lifetime of the ComponentLoader. This is // required in case LoadAll() is called again. @@ -277,6 +282,26 @@ void ComponentLoader::AddOrReloadEnterpriseWebStore() { } } +void ComponentLoader::AddChromeApp() { +#if defined(USE_ASH) + std::string manifest_contents = + ResourceBundle::GetSharedInstance().GetRawDataResource( + IDR_CHROME_APP_MANIFEST, + ui::SCALE_FACTOR_NONE).as_string(); + + // The Value is kept for the lifetime of the ComponentLoader. This is + // required in case LoadAll() is called again. + DictionaryValue* manifest = ParseManifest(manifest_contents); + + // Update manifest to use a proper name. + manifest->SetString(extension_manifest_keys::kName, + l10n_util::GetStringUTF8(IDS_SHORT_PRODUCT_NAME)); + + if (manifest) + Add(manifest, FilePath(FILE_PATH_LITERAL("chrome_app"))); +#endif +} + void ComponentLoader::AddDefaultComponentExtensions() { #if defined(OS_CHROMEOS) if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) @@ -346,6 +371,10 @@ void ComponentLoader::AddDefaultComponentExtensions() { // it is specified by policy, and on ChromeOS policies are loaded after // the browser process has started. AddOrReloadEnterpriseWebStore(); + +#if defined(USE_ASH) + AddChromeApp(); +#endif } void ComponentLoader::Observe( diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h index 3ad948a..a2a4b02 100644 --- a/chrome/browser/extensions/component_loader.h +++ b/chrome/browser/extensions/component_loader.h @@ -40,7 +40,7 @@ class ComponentLoader : public content::NotificationObserver { // Registers and possibly loads a component extension. If ExtensionService // has been initialized, the extension is loaded; otherwise, the load is // deferred until LoadAll is called. - const Extension* Add(std::string& manifest_contents, + const Extension* Add(const std::string& manifest_contents, const FilePath& root_directory); // Convenience method for registering a component extension by resource id. @@ -117,6 +117,8 @@ class ComponentLoader : public content::NotificationObserver { // Add the enterprise webstore extension, or reload it if already loaded. void AddOrReloadEnterpriseWebStore(); + void AddChromeApp(); + // Determine the extension id. static std::string GenerateId(const base::DictionaryValue* manifest); diff --git a/chrome/browser/extensions/image_loading_tracker.cc b/chrome/browser/extensions/image_loading_tracker.cc index 65d47ad..965db17 100644 --- a/chrome/browser/extensions/image_loading_tracker.cc +++ b/chrome/browser/extensions/image_loading_tracker.cc @@ -4,6 +4,9 @@ #include "chrome/browser/extensions/image_loading_tracker.h" +#include <string> +#include <vector> + #include "base/bind.h" #include "base/file_util.h" #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" @@ -214,12 +217,20 @@ void ImageLoadingTracker::LoadImages(const Extension* extension, for (std::vector<ImageInfo>::const_iterator it = info_list.begin(); it != info_list.end(); ++it) { - // Load resources for WebStore component extension. + // Load resources for special component extensions. if (load_info.extension_id == extension_misc::kWebStoreAppId) { if (!loader_) loader_ = new ImageLoader(this); loader_->LoadResource(it->resource, it->max_size, id, IDR_WEBSTORE_ICON); continue; + } else if (load_info.extension_id == extension_misc::kChromeAppId) { + if (!loader_) + loader_ = new ImageLoader(this); + loader_->LoadResource(it->resource, + it->max_size, + id, + IDR_PRODUCT_LOGO_128); + continue; } // If we don't have a path we don't need to do any further work, just |