diff options
Diffstat (limited to 'chrome/common/extensions')
-rw-r--r-- | chrome/common/extensions/extension.cc | 14 | ||||
-rw-r--r-- | chrome/common/extensions/extension.h | 4 | ||||
-rw-r--r-- | chrome/common/extensions/extension_constants.cc | 2 | ||||
-rw-r--r-- | chrome/common/extensions/extension_constants.h | 3 |
4 files changed, 20 insertions, 3 deletions
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc index d2b3d3b..7f7c1bb 100644 --- a/chrome/common/extensions/extension.cc +++ b/chrome/common/extensions/extension.cc @@ -1467,12 +1467,20 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_key, return true; } +// static +std::string Extension::ChromeStoreURL() { + std::string gallery_prefix = extension_urls::kGalleryBrowsePrefix; + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppsGalleryURL)) + gallery_prefix = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + switches::kAppsGalleryURL); + return gallery_prefix; +} + GURL Extension::GalleryUrl() const { if (!update_url_.DomainIs("google.com")) return GURL(); - GURL url(std::string(extension_urls::kGalleryBrowsePrefix) + - std::string("/detail/") + id_); + GURL url(ChromeStoreURL() + std::string("/detail/") + id_); return url; } @@ -1620,7 +1628,7 @@ bool Extension::CanExecuteScriptOnHost(const GURL& url, std::string* error) const { // No extensions are allowed to execute script on the gallery because that // would allow extensions to manipulate their own install pages. - if (url.host() == GURL(extension_urls::kGalleryBrowsePrefix).host()) { + if (url.host() == GURL(ChromeStoreURL()).host()) { if (error) *error = errors::kCannotScriptGallery; return false; diff --git a/chrome/common/extensions/extension.h b/chrome/common/extensions/extension.h index 512c7c0..08654ef 100644 --- a/chrome/common/extensions/extension.h +++ b/chrome/common/extensions/extension.h @@ -213,6 +213,10 @@ class Extension { // it was explictly turned on via a command line switch). static bool AppsAreEnabled(); + // Returns the url prefix for the extension/apps gallery. Can be set via the + // --apps-gallery-url switch. + static std::string ChromeStoreURL(); + // Initialize the extension from a parsed manifest. // Usually, the id of an extension is generated by the "key" property of // its manifest, but if |require_key| is |false|, a temporary ID will be diff --git a/chrome/common/extensions/extension_constants.cc b/chrome/common/extensions/extension_constants.cc index be58611..f80c7e6 100644 --- a/chrome/common/extensions/extension_constants.cc +++ b/chrome/common/extensions/extension_constants.cc @@ -254,6 +254,8 @@ namespace extension_urls { const char* kGalleryBrowsePrefix = "https://chrome.google.com/extensions"; const char* kGalleryDownloadPrefix = "https://clients2.googleusercontent.com/crx/download"; +const char* kGalleryUpdateURL = + "http://clients2.google.com/service/update2/crx"; const char* kMiniGalleryBrowsePrefix = "https://tools.google.com/chrome/"; const char* kMiniGalleryDownloadPrefix = "https://dl-ssl.google.com/chrome/"; } diff --git a/chrome/common/extensions/extension_constants.h b/chrome/common/extensions/extension_constants.h index c515c72..46082c8 100644 --- a/chrome/common/extensions/extension_constants.h +++ b/chrome/common/extensions/extension_constants.h @@ -172,6 +172,9 @@ namespace extension_urls { extern const char* kGalleryBrowsePrefix; extern const char* kGalleryDownloadPrefix; + // The update url used by gallery/webstore extensions. + extern const char* kGalleryUpdateURL; + // Same thing for the "minigallery". The minigallery is the temporary static // themes gallery that we put up when we launched themes. extern const char* kMiniGalleryBrowsePrefix; |