Home | History | Annotate | Download | only in common
      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.
      4 
      5 #ifndef EXTENSIONS_COMMON_EXTENSION_URLS_H_
      6 #define EXTENSIONS_COMMON_EXTENSION_URLS_H_
      7 
      8 #include <string>
      9 
     10 #include "base/strings/string16.h"
     11 
     12 class GURL;
     13 
     14 namespace extensions {
     15 
     16 // The name of the event_bindings module.
     17 extern const char kEventBindings[];
     18 
     19 // The name of the schemaUtils module.
     20 extern const char kSchemaUtils[];
     21 
     22 // Determine whether or not a source came from an extension. |source| can link
     23 // to a page or a script, and can be external (e.g., "http://www.google.com"),
     24 // extension-related (e.g., "chrome-extension://<extension_id>/background.js"),
     25 // or internal (e.g., "event_bindings" or "schemaUtils").
     26 bool IsSourceFromAnExtension(const base::string16& source);
     27 
     28 }  // namespace extensions
     29 
     30 namespace extension_urls {
     31 
     32 // Canonical URLs for the Chrome Webstore. You probably want to use one of
     33 // the calls below rather than using one of these constants directly, since
     34 // the active extensions embedder may provide its own webstore URLs.
     35 extern const char kChromeWebstoreBaseURL[];
     36 extern const char kChromeWebstoreUpdateURL[];
     37 
     38 // Returns the URL prefix for the extension/apps gallery. Can be set via the
     39 // --apps-gallery-url switch. The URL returned will not contain a trailing
     40 // slash. Do not use this as a prefix/extent for the store.
     41 std::string GetWebstoreLaunchURL();
     42 
     43 // Returns the URL to the extensions category on the Web Store. This is
     44 // derived from GetWebstoreLaunchURL().
     45 std::string GetWebstoreExtensionsCategoryURL();
     46 
     47 // Returns the URL prefix for an item in the extension/app gallery. This URL
     48 // will contain a trailing slash and should be concatenated with an item ID
     49 // to get the item detail URL.
     50 std::string GetWebstoreItemDetailURLPrefix();
     51 
     52 // Returns the URL used to get webstore data (ratings, manifest, icon URL,
     53 // etc.) about an extension from the webstore as JSON.
     54 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id);
     55 
     56 // Returns the URL used to get webstore search results in JSON format. The URL
     57 // returns a JSON dictionary that has the search results (under "results").
     58 // Each entry in the array is a dictionary as the data returned for
     59 // GetWebstoreItemJsonDataURL above. |query| is the user typed query string.
     60 // |host_language_code| is the host language code, e.g. en_US. Both arguments
     61 // will be escaped and added as a query parameter to the returned web store
     62 // json search URL.
     63 GURL GetWebstoreJsonSearchUrl(const std::string& query,
     64                               const std::string& host_language_code);
     65 
     66 // Returns the URL of the web store search results page for |query|.
     67 GURL GetWebstoreSearchPageUrl(const std::string& query);
     68 
     69 // Return the update URL used by gallery/webstore extensions/apps. This may
     70 // have been overridden by a command line flag for testing purposes.
     71 GURL GetWebstoreUpdateUrl();
     72 
     73 // Returns whether the URL is the webstore update URL (just considering host
     74 // and path, not scheme, query, etc.)
     75 bool IsWebstoreUpdateUrl(const GURL& update_url);
     76 
     77 // Returns true if the URL points to an extension blacklist.
     78 bool IsBlacklistUpdateUrl(const GURL& url);
     79 
     80 }  // namespace extension_urls
     81 
     82 #endif  // EXTENSIONS_COMMON_EXTENSION_URLS_H_
     83