OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #include "chrome/common/extensions/manifest_url_handler.h" | 5 #include "chrome/common/extensions/manifest_url_handler.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 std::string devtools_str; | 96 std::string devtools_str; |
97 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) { | 97 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) { |
98 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); | 98 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); |
99 return false; | 99 return false; |
100 } | 100 } |
101 manifest_url->url_ = extension->GetResourceURL(devtools_str); | 101 manifest_url->url_ = extension->GetResourceURL(devtools_str); |
102 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release()); | 102 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release()); |
103 return true; | 103 return true; |
104 } | 104 } |
105 | 105 |
| 106 const std::vector<std::string> DevToolsPageHandler::Keys() const { |
| 107 return SingleKey(keys::kDevToolsPage); |
| 108 } |
| 109 |
106 HomepageURLHandler::HomepageURLHandler() { | 110 HomepageURLHandler::HomepageURLHandler() { |
107 } | 111 } |
108 | 112 |
109 HomepageURLHandler::~HomepageURLHandler() { | 113 HomepageURLHandler::~HomepageURLHandler() { |
110 } | 114 } |
111 | 115 |
112 bool HomepageURLHandler::Parse(Extension* extension, string16* error) { | 116 bool HomepageURLHandler::Parse(Extension* extension, string16* error) { |
113 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 117 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
114 std::string homepage_url_str; | 118 std::string homepage_url_str; |
115 if (!extension->manifest()->GetString(keys::kHomepageURL, | 119 if (!extension->manifest()->GetString(keys::kHomepageURL, |
116 &homepage_url_str)) { | 120 &homepage_url_str)) { |
117 *error = ErrorUtils::FormatErrorMessageUTF16( | 121 *error = ErrorUtils::FormatErrorMessageUTF16( |
118 errors::kInvalidHomepageURL, ""); | 122 errors::kInvalidHomepageURL, ""); |
119 return false; | 123 return false; |
120 } | 124 } |
121 manifest_url->url_ = GURL(homepage_url_str); | 125 manifest_url->url_ = GURL(homepage_url_str); |
122 if (!manifest_url->url_.is_valid() || | 126 if (!manifest_url->url_.is_valid() || |
123 (!manifest_url->url_.SchemeIs("http") && | 127 (!manifest_url->url_.SchemeIs("http") && |
124 !manifest_url->url_.SchemeIs("https"))) { | 128 !manifest_url->url_.SchemeIs("https"))) { |
125 *error = ErrorUtils::FormatErrorMessageUTF16( | 129 *error = ErrorUtils::FormatErrorMessageUTF16( |
126 errors::kInvalidHomepageURL, homepage_url_str); | 130 errors::kInvalidHomepageURL, homepage_url_str); |
127 return false; | 131 return false; |
128 } | 132 } |
129 extension->SetManifestData(keys::kHomepageURL, manifest_url.release()); | 133 extension->SetManifestData(keys::kHomepageURL, manifest_url.release()); |
130 return true; | 134 return true; |
131 } | 135 } |
132 | 136 |
| 137 const std::vector<std::string> HomepageURLHandler::Keys() const { |
| 138 return SingleKey(keys::kHomepageURL); |
| 139 } |
| 140 |
133 UpdateURLHandler::UpdateURLHandler() { | 141 UpdateURLHandler::UpdateURLHandler() { |
134 } | 142 } |
135 | 143 |
136 UpdateURLHandler::~UpdateURLHandler() { | 144 UpdateURLHandler::~UpdateURLHandler() { |
137 } | 145 } |
138 | 146 |
139 bool UpdateURLHandler::Parse(Extension* extension, string16* error) { | 147 bool UpdateURLHandler::Parse(Extension* extension, string16* error) { |
140 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 148 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
141 std::string tmp_update_url; | 149 std::string tmp_update_url; |
142 | 150 |
143 if (!extension->manifest()->GetString(keys::kUpdateURL, &tmp_update_url)) { | 151 if (!extension->manifest()->GetString(keys::kUpdateURL, &tmp_update_url)) { |
144 *error = ErrorUtils::FormatErrorMessageUTF16( | 152 *error = ErrorUtils::FormatErrorMessageUTF16( |
145 errors::kInvalidUpdateURL, ""); | 153 errors::kInvalidUpdateURL, ""); |
146 return false; | 154 return false; |
147 } | 155 } |
148 | 156 |
149 manifest_url->url_ = GURL(tmp_update_url); | 157 manifest_url->url_ = GURL(tmp_update_url); |
150 if (!manifest_url->url_.is_valid() || | 158 if (!manifest_url->url_.is_valid() || |
151 manifest_url->url_.has_ref()) { | 159 manifest_url->url_.has_ref()) { |
152 *error = ErrorUtils::FormatErrorMessageUTF16( | 160 *error = ErrorUtils::FormatErrorMessageUTF16( |
153 errors::kInvalidUpdateURL, tmp_update_url); | 161 errors::kInvalidUpdateURL, tmp_update_url); |
154 return false; | 162 return false; |
155 } | 163 } |
156 | 164 |
157 extension->SetManifestData(keys::kUpdateURL, manifest_url.release()); | 165 extension->SetManifestData(keys::kUpdateURL, manifest_url.release()); |
158 return true; | 166 return true; |
159 } | 167 } |
160 | 168 |
| 169 const std::vector<std::string> UpdateURLHandler::Keys() const { |
| 170 return SingleKey(keys::kUpdateURL); |
| 171 } |
| 172 |
161 OptionsPageHandler::OptionsPageHandler() { | 173 OptionsPageHandler::OptionsPageHandler() { |
162 } | 174 } |
163 | 175 |
164 OptionsPageHandler::~OptionsPageHandler() { | 176 OptionsPageHandler::~OptionsPageHandler() { |
165 } | 177 } |
166 | 178 |
167 bool OptionsPageHandler::Parse(Extension* extension, string16* error) { | 179 bool OptionsPageHandler::Parse(Extension* extension, string16* error) { |
168 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 180 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
169 std::string options_str; | 181 std::string options_str; |
170 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) { | 182 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) { |
(...skipping 20 matching lines...) Expand all Loading... |
191 if (!manifest_url->url_.is_valid()) { | 203 if (!manifest_url->url_.is_valid()) { |
192 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); | 204 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); |
193 return false; | 205 return false; |
194 } | 206 } |
195 } | 207 } |
196 | 208 |
197 extension->SetManifestData(keys::kOptionsPage, manifest_url.release()); | 209 extension->SetManifestData(keys::kOptionsPage, manifest_url.release()); |
198 return true; | 210 return true; |
199 } | 211 } |
200 | 212 |
| 213 const std::vector<std::string> OptionsPageHandler::Keys() const { |
| 214 return SingleKey(keys::kOptionsPage); |
| 215 } |
| 216 |
201 URLOverridesHandler::URLOverridesHandler() { | 217 URLOverridesHandler::URLOverridesHandler() { |
202 } | 218 } |
203 | 219 |
204 URLOverridesHandler::~URLOverridesHandler() { | 220 URLOverridesHandler::~URLOverridesHandler() { |
205 } | 221 } |
206 | 222 |
207 bool URLOverridesHandler::Parse(Extension* extension, string16* error) { | 223 bool URLOverridesHandler::Parse(Extension* extension, string16* error) { |
208 const DictionaryValue* overrides = NULL; | 224 const DictionaryValue* overrides = NULL; |
209 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides, | 225 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides, |
210 &overrides)) { | 226 &overrides)) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 // An extension may override at most one page. | 272 // An extension may override at most one page. |
257 if (overrides->size() > 1) { | 273 if (overrides->size() > 1) { |
258 *error = ASCIIToUTF16(errors::kMultipleOverrides); | 274 *error = ASCIIToUTF16(errors::kMultipleOverrides); |
259 return false; | 275 return false; |
260 } | 276 } |
261 extension->SetManifestData(keys::kChromeURLOverrides, | 277 extension->SetManifestData(keys::kChromeURLOverrides, |
262 url_overrides.release()); | 278 url_overrides.release()); |
263 return true; | 279 return true; |
264 } | 280 } |
265 | 281 |
| 282 const std::vector<std::string> URLOverridesHandler::Keys() const { |
| 283 return SingleKey(keys::kChromeURLOverrides); |
| 284 } |
| 285 |
266 } // namespace extensions | 286 } // namespace extensions |
OLD | NEW |