Index: extensions/common/extension_urls.cc |
diff --git a/extensions/common/extension_urls.cc b/extensions/common/extension_urls.cc |
index ba72a63ef21971225eb3a4d124d569a57e223a9f..c58a2d648c94eff3608ba7a2e71bdf4f870a3403 100644 |
--- a/extensions/common/extension_urls.cc |
+++ b/extensions/common/extension_urls.cc |
@@ -7,6 +7,9 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "extensions/common/constants.h" |
+#include "extensions/common/extensions_client.h" |
+#include "net/base/escape.h" |
+#include "net/base/url_util.h" |
#include "url/gurl.h" |
namespace extensions { |
@@ -23,3 +26,67 @@ bool IsSourceFromAnExtension(const base::string16& source) { |
} |
} // namespace extensions |
+ |
+namespace extension_urls { |
+ |
+const char kChromeWebstoreBaseURL[] = "https://chrome.google.com/webstore"; |
+const char kChromeWebstoreUpdateURL[] = |
+ "https://clients2.google.com/service/update2/crx"; |
+ |
+std::string GetWebstoreLaunchURL() { |
+ extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get(); |
+ if (client) |
+ return client->GetWebstoreBaseURL(); |
+ return kChromeWebstoreBaseURL; |
+} |
+ |
+std::string GetWebstoreExtensionsCategoryURL() { |
+ return GetWebstoreLaunchURL() + "/category/extensions"; |
+} |
+ |
+std::string GetWebstoreItemDetailURLPrefix() { |
+ return GetWebstoreLaunchURL() + "/detail/"; |
+} |
+ |
+GURL GetWebstoreItemJsonDataURL(const std::string& extension_id) { |
+ return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id); |
+} |
+ |
+GURL GetWebstoreJsonSearchUrl(const std::string& query, |
+ const std::string& host_language_code) { |
+ GURL url(GetWebstoreLaunchURL() + "/jsonsearch"); |
+ url = net::AppendQueryParameter(url, "q", query); |
+ url = net::AppendQueryParameter(url, "hl", host_language_code); |
+ return url; |
+} |
+ |
+GURL GetWebstoreSearchPageUrl(const std::string& query) { |
+ return GURL(GetWebstoreLaunchURL() + "/search/" + |
+ net::EscapeQueryParamValue(query, false)); |
+} |
+ |
+GURL GetWebstoreUpdateUrl() { |
+ extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get(); |
+ if (client) |
+ return GURL(client->GetWebstoreUpdateURL()); |
+ return GURL(kChromeWebstoreUpdateURL); |
+} |
+ |
+bool IsWebstoreUpdateUrl(const GURL& update_url) { |
+ GURL store_url = GetWebstoreUpdateUrl(); |
+ if (update_url == store_url) { |
+ return true; |
+ } else { |
+ return (update_url.host() == store_url.host() && |
+ update_url.path() == store_url.path()); |
+ } |
+} |
+ |
+bool IsBlacklistUpdateUrl(const GURL& url) { |
+ extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get(); |
+ if (client) |
+ return client->IsBlacklistUpdateURL(url); |
+ return false; |
+} |
+ |
+} // namespace extension_urls |