OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/file_path.h" | 13 #include "base/file_path.h" |
14 #include "base/scoped_ptr.h" | 14 #include "base/scoped_ptr.h" |
15 #include "base/values.h" | 15 #include "base/values.h" |
16 #include "base/version.h" | 16 #include "base/version.h" |
17 #include "chrome/browser/extensions/user_script_master.h" | 17 #include "chrome/browser/extensions/user_script_master.h" |
18 #include "chrome/common/extensions/extension_action.h" | 18 #include "chrome/common/extensions/extension_action.h" |
19 #include "chrome/common/extensions/extension_message_bundle.h" | 19 #include "chrome/common/extensions/extension_message_bundle.h" |
| 20 #include "chrome/common/extensions/extension_resource.h" |
20 #include "chrome/common/extensions/user_script.h" | 21 #include "chrome/common/extensions/user_script.h" |
21 #include "chrome/common/extensions/url_pattern.h" | 22 #include "chrome/common/extensions/url_pattern.h" |
22 #include "googleurl/src/gurl.h" | 23 #include "googleurl/src/gurl.h" |
23 | 24 |
24 // Represents a Chrome extension. | 25 // Represents a Chrome extension. |
25 class Extension { | 26 class Extension { |
26 public: | 27 public: |
27 typedef std::vector<URLPattern> HostPermissions; | 28 typedef std::vector<URLPattern> HostPermissions; |
28 | 29 |
29 // What an extension was loaded from. | 30 // What an extension was loaded from. |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 // |extension_url| argument should be the url() from an Extension object. The | 126 // |extension_url| argument should be the url() from an Extension object. The |
126 // |relative_path| can be untrusted user input. The returned URL will either | 127 // |relative_path| can be untrusted user input. The returned URL will either |
127 // be invalid() or a child of |extension_url|. | 128 // be invalid() or a child of |extension_url|. |
128 // NOTE: Static so that it can be used from multiple threads. | 129 // NOTE: Static so that it can be used from multiple threads. |
129 static GURL GetResourceURL(const GURL& extension_url, | 130 static GURL GetResourceURL(const GURL& extension_url, |
130 const std::string& relative_path); | 131 const std::string& relative_path); |
131 GURL GetResourceURL(const std::string& relative_path) { | 132 GURL GetResourceURL(const std::string& relative_path) { |
132 return GetResourceURL(url(), relative_path); | 133 return GetResourceURL(url(), relative_path); |
133 } | 134 } |
134 | 135 |
135 // Returns an absolute path to a resource inside of an extension. The | 136 // Returns an extension resource object. The |extension_path| argument should |
136 // |extension_path| argument should be the path() from an Extension object. | 137 // be the path() from an Extension object. |
137 // The |relative_path| can be untrusted user input. The returned path will | 138 // The |relative_path| can be untrusted user input. |
138 // either be empty or a child of extension_path. | |
139 // NOTE: Static so that it can be used from multiple threads. | 139 // NOTE: Static so that it can be used from multiple threads. |
140 static FilePath GetResourcePath(const FilePath& extension_path, | 140 static ExtensionResource GetResource(const FilePath& extension_path, |
141 const std::string& relative_path); | 141 const std::string& relative_path); |
142 FilePath GetResourcePath(const std::string& relative_path) { | 142 ExtensionResource GetResource(const std::string& relative_path) { |
143 return GetResourcePath(path(), relative_path); | 143 return GetResource(path(), relative_path); |
144 } | 144 } |
145 | 145 |
146 // |input| is expected to be the text of an rsa public or private key. It | 146 // |input| is expected to be the text of an rsa public or private key. It |
147 // tolerates the presence or absence of bracking header/footer like this: | 147 // tolerates the presence or absence of bracking header/footer like this: |
148 // -----(BEGIN|END) [RSA PUBLIC/PRIVATE] KEY----- | 148 // -----(BEGIN|END) [RSA PUBLIC/PRIVATE] KEY----- |
149 // and may contain newlines. | 149 // and may contain newlines. |
150 static bool ParsePEMKeyBytes(const std::string& input, std::string* output); | 150 static bool ParsePEMKeyBytes(const std::string& input, std::string* output); |
151 | 151 |
152 // Does a simple base64 encoding of |input| into |output|. | 152 // Does a simple base64 encoding of |input| into |output|. |
153 static bool ProducePEM(const std::string& input, std::string* output); | 153 static bool ProducePEM(const std::string& input, std::string* output); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 return theme_display_properties_.get(); | 236 return theme_display_properties_.get(); |
237 } | 237 } |
238 bool IsTheme() { return is_theme_; } | 238 bool IsTheme() { return is_theme_; } |
239 | 239 |
240 // Returns a list of paths (relative to the extension dir) for images that | 240 // Returns a list of paths (relative to the extension dir) for images that |
241 // the browser might load (like themes and page action icons). | 241 // the browser might load (like themes and page action icons). |
242 std::set<FilePath> GetBrowserImages(); | 242 std::set<FilePath> GetBrowserImages(); |
243 | 243 |
244 // Returns an absolute path to the given icon inside of the extension. Returns | 244 // Returns an absolute path to the given icon inside of the extension. Returns |
245 // an empty FilePath if the extension does not have that icon. | 245 // an empty FilePath if the extension does not have that icon. |
246 FilePath GetIconPath(Icons icon); | 246 ExtensionResource GetIconPath(Icons icon); |
247 | 247 |
248 const DictionaryValue* manifest_value() const { | 248 const DictionaryValue* manifest_value() const { |
249 return manifest_value_.get(); | 249 return manifest_value_.get(); |
250 } | 250 } |
251 | 251 |
252 // Getter/setter for l10n message bundle. | 252 // Getter/setter for l10n message bundle. |
253 const ExtensionMessageBundle* message_bundle() const { | 253 const ExtensionMessageBundle* message_bundle() const { |
254 return message_bundle_.get(); | 254 return message_bundle_.get(); |
255 } | 255 } |
256 void set_message_bundle(ExtensionMessageBundle* message_bundle) { | 256 void set_message_bundle(ExtensionMessageBundle* message_bundle) { |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 | 387 |
388 // True if the background page is ready. | 388 // True if the background page is ready. |
389 bool background_page_ready_; | 389 bool background_page_ready_; |
390 | 390 |
391 FRIEND_TEST(ExtensionTest, LoadPageActionHelper); | 391 FRIEND_TEST(ExtensionTest, LoadPageActionHelper); |
392 | 392 |
393 DISALLOW_COPY_AND_ASSIGN(Extension); | 393 DISALLOW_COPY_AND_ASSIGN(Extension); |
394 }; | 394 }; |
395 | 395 |
396 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 396 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
OLD | NEW |