1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "extensions/common/extension_urls.h"
7 #include "base/strings/string_util.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "extensions/common/constants.h"
10 #include "extensions/common/extensions_client.h"
11 #include "net/base/escape.h"
12 #include "net/base/url_util.h"
15 namespace extensions
{
17 const char kEventBindings
[] = "event_bindings";
19 const char kSchemaUtils
[] = "schemaUtils";
21 bool IsSourceFromAnExtension(const base::string16
& source
) {
22 return GURL(source
).SchemeIs(kExtensionScheme
) ||
24 base::ASCIIToUTF16("extensions::"),
25 true /* case-sensitive */);
28 } // namespace extensions
30 namespace extension_urls
{
32 const char kChromeWebstoreBaseURL
[] = "https://chrome.google.com/webstore";
33 const char kChromeWebstoreUpdateURL
[] =
34 "https://clients2.google.com/service/update2/crx";
36 std::string
GetWebstoreLaunchURL() {
37 extensions::ExtensionsClient
* client
= extensions::ExtensionsClient::Get();
39 return client
->GetWebstoreBaseURL();
40 return kChromeWebstoreBaseURL
;
43 std::string
GetWebstoreExtensionsCategoryURL() {
44 return GetWebstoreLaunchURL() + "/category/extensions";
47 std::string
GetWebstoreItemDetailURLPrefix() {
48 return GetWebstoreLaunchURL() + "/detail/";
51 GURL
GetWebstoreItemJsonDataURL(const std::string
& extension_id
) {
52 return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id
);
55 GURL
GetWebstoreJsonSearchUrl(const std::string
& query
,
56 const std::string
& host_language_code
) {
57 GURL
url(GetWebstoreLaunchURL() + "/jsonsearch");
58 url
= net::AppendQueryParameter(url
, "q", query
);
59 url
= net::AppendQueryParameter(url
, "hl", host_language_code
);
63 GURL
GetWebstoreSearchPageUrl(const std::string
& query
) {
64 return GURL(GetWebstoreLaunchURL() + "/search/" +
65 net::EscapeQueryParamValue(query
, false));
68 GURL
GetWebstoreUpdateUrl() {
69 extensions::ExtensionsClient
* client
= extensions::ExtensionsClient::Get();
71 return GURL(client
->GetWebstoreUpdateURL());
72 return GURL(kChromeWebstoreUpdateURL
);
75 GURL
GetWebstoreReportAbuseUrl(const std::string
& extension_id
) {
76 return GURL(GetWebstoreLaunchURL() + "/report/" + extension_id
);
79 bool IsWebstoreUpdateUrl(const GURL
& update_url
) {
80 GURL store_url
= GetWebstoreUpdateUrl();
81 if (update_url
== store_url
) {
84 return (update_url
.host() == store_url
.host() &&
85 update_url
.path() == store_url
.path());
89 bool IsBlacklistUpdateUrl(const GURL
& url
) {
90 extensions::ExtensionsClient
* client
= extensions::ExtensionsClient::Get();
92 return client
->IsBlacklistUpdateURL(url
);
96 } // namespace extension_urls