Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / chrome_manifest_url_handlers.h
1 // Copyright (c) 2012 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 CHROME_COMMON_EXTENSIONS_CHROME_MANIFEST_URL_HANDLERS_H_
6 #define CHROME_COMMON_EXTENSIONS_CHROME_MANIFEST_URL_HANDLERS_H_
7
8 #include <string>
9
10 #include "extensions/common/extension.h"
11 #include "extensions/common/manifest_handler.h"
12
13 // Chrome-specific extension manifest URL handlers.
14
15 namespace base {
16 class DictionaryValue;
17 }
18
19 namespace extensions {
20
21 namespace chrome_manifest_urls {
22 const GURL& GetDevToolsPage(const Extension* extension);
23 }
24
25 // Stores Chrome URL overrides specified in extensions manifests.
26 struct URLOverrides : public Extension::ManifestData {
27   typedef std::map<const std::string, GURL> URLOverrideMap;
28
29   URLOverrides();
30   ~URLOverrides() override;
31
32   static const URLOverrideMap& GetChromeURLOverrides(
33       const Extension* extension);
34
35   // A map of chrome:// hostnames (newtab, downloads, etc.) to Extension URLs
36   // which override the handling of those URLs. (see ExtensionOverrideUI).
37   URLOverrideMap chrome_url_overrides_;
38 };
39
40 // Parses the "devtools_page" manifest key.
41 class DevToolsPageHandler : public ManifestHandler {
42  public:
43   DevToolsPageHandler();
44   ~DevToolsPageHandler() override;
45
46   bool Parse(Extension* extension, base::string16* error) override;
47
48  private:
49   const std::vector<std::string> Keys() const override;
50
51   DISALLOW_COPY_AND_ASSIGN(DevToolsPageHandler);
52 };
53
54 // Parses the "chrome_url_overrides" manifest key.
55 class URLOverridesHandler : public ManifestHandler {
56  public:
57   URLOverridesHandler();
58   ~URLOverridesHandler() override;
59
60   bool Parse(Extension* extension, base::string16* error) override;
61
62  private:
63   const std::vector<std::string> Keys() const override;
64
65   DISALLOW_COPY_AND_ASSIGN(URLOverridesHandler);
66 };
67
68 }  // namespace extensions
69
70 #endif  // CHROME_COMMON_EXTENSIONS_CHROME_MANIFEST_URL_HANDLERS_H_