summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 21:31:13 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 21:31:13 +0000
commita91d55b7dd8f2694d0eb018bfead5fa04a9eb8ea (patch)
tree18b3d35f7228637ab8e6ba15c3b27fe388181096 /chrome/browser/extensions
parent3f31024a74c4a9cbb7e95b230e46546af9e35c6a (diff)
downloadchromium_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.cc31
-rw-r--r--chrome/browser/extensions/component_loader.h4
-rw-r--r--chrome/browser/extensions/image_loading_tracker.cc13
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