// Copyright 2013 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 "extensions/common/extension_urls.h" #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 { const char kEventBindings[] = "event_bindings"; const char kSchemaUtils[] = "schemaUtils"; bool IsSourceFromAnExtension(const base::string16& source) { return GURL(source).SchemeIs(kExtensionScheme) || StartsWith(source, base::ASCIIToUTF16("extensions::"), true /* case-sensitive */); } } // 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