Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: chrome/common/extensions/manifest_url_handler.cc

Issue 93793010: Update uses of UTF conversions in chrome/common to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 DevToolsPageHandler::DevToolsPageHandler() { 113 DevToolsPageHandler::DevToolsPageHandler() {
114 } 114 }
115 115
116 DevToolsPageHandler::~DevToolsPageHandler() { 116 DevToolsPageHandler::~DevToolsPageHandler() {
117 } 117 }
118 118
119 bool DevToolsPageHandler::Parse(Extension* extension, base::string16* error) { 119 bool DevToolsPageHandler::Parse(Extension* extension, base::string16* error) {
120 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); 120 scoped_ptr<ManifestURL> manifest_url(new ManifestURL);
121 std::string devtools_str; 121 std::string devtools_str;
122 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) { 122 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) {
123 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); 123 *error = base::ASCIIToUTF16(errors::kInvalidDevToolsPage);
124 return false; 124 return false;
125 } 125 }
126 manifest_url->url_ = extension->GetResourceURL(devtools_str); 126 manifest_url->url_ = extension->GetResourceURL(devtools_str);
127 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release()); 127 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release());
128 PermissionsData::GetInitialAPIPermissions(extension)->insert( 128 PermissionsData::GetInitialAPIPermissions(extension)->insert(
129 APIPermission::kDevtools); 129 APIPermission::kDevtools);
130 return true; 130 return true;
131 } 131 }
132 132
133 const std::vector<std::string> DevToolsPageHandler::Keys() const { 133 const std::vector<std::string> DevToolsPageHandler::Keys() const {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 OptionsPageHandler::OptionsPageHandler() { 199 OptionsPageHandler::OptionsPageHandler() {
200 } 200 }
201 201
202 OptionsPageHandler::~OptionsPageHandler() { 202 OptionsPageHandler::~OptionsPageHandler() {
203 } 203 }
204 204
205 bool OptionsPageHandler::Parse(Extension* extension, base::string16* error) { 205 bool OptionsPageHandler::Parse(Extension* extension, base::string16* error) {
206 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); 206 scoped_ptr<ManifestURL> manifest_url(new ManifestURL);
207 std::string options_str; 207 std::string options_str;
208 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) { 208 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) {
209 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); 209 *error = base::ASCIIToUTF16(errors::kInvalidOptionsPage);
210 return false; 210 return false;
211 } 211 }
212 212
213 if (extension->is_hosted_app()) { 213 if (extension->is_hosted_app()) {
214 // hosted apps require an absolute URL. 214 // hosted apps require an absolute URL.
215 GURL options_url(options_str); 215 GURL options_url(options_str);
216 if (!options_url.is_valid() || 216 if (!options_url.is_valid() ||
217 !options_url.SchemeIsHTTPOrHTTPS()) { 217 !options_url.SchemeIsHTTPOrHTTPS()) {
218 *error = ASCIIToUTF16(errors::kInvalidOptionsPageInHostedApp); 218 *error = base::ASCIIToUTF16(errors::kInvalidOptionsPageInHostedApp);
219 return false; 219 return false;
220 } 220 }
221 manifest_url->url_ = options_url; 221 manifest_url->url_ = options_url;
222 } else { 222 } else {
223 GURL absolute(options_str); 223 GURL absolute(options_str);
224 if (absolute.is_valid()) { 224 if (absolute.is_valid()) {
225 *error = ASCIIToUTF16(errors::kInvalidOptionsPageExpectUrlInPackage); 225 *error =
226 base::ASCIIToUTF16(errors::kInvalidOptionsPageExpectUrlInPackage);
226 return false; 227 return false;
227 } 228 }
228 manifest_url->url_ = extension->GetResourceURL(options_str); 229 manifest_url->url_ = extension->GetResourceURL(options_str);
229 if (!manifest_url->url_.is_valid()) { 230 if (!manifest_url->url_.is_valid()) {
230 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); 231 *error = base::ASCIIToUTF16(errors::kInvalidOptionsPage);
231 return false; 232 return false;
232 } 233 }
233 } 234 }
234 235
235 extension->SetManifestData(keys::kOptionsPage, manifest_url.release()); 236 extension->SetManifestData(keys::kOptionsPage, manifest_url.release());
236 return true; 237 return true;
237 } 238 }
238 239
239 bool OptionsPageHandler::Validate(const Extension* extension, 240 bool OptionsPageHandler::Validate(const Extension* extension,
240 std::string* error, 241 std::string* error,
(...skipping 25 matching lines...) Expand all
266 URLOverridesHandler::URLOverridesHandler() { 267 URLOverridesHandler::URLOverridesHandler() {
267 } 268 }
268 269
269 URLOverridesHandler::~URLOverridesHandler() { 270 URLOverridesHandler::~URLOverridesHandler() {
270 } 271 }
271 272
272 bool URLOverridesHandler::Parse(Extension* extension, base::string16* error) { 273 bool URLOverridesHandler::Parse(Extension* extension, base::string16* error) {
273 const base::DictionaryValue* overrides = NULL; 274 const base::DictionaryValue* overrides = NULL;
274 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides, 275 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides,
275 &overrides)) { 276 &overrides)) {
276 *error = ASCIIToUTF16(errors::kInvalidChromeURLOverrides); 277 *error = base::ASCIIToUTF16(errors::kInvalidChromeURLOverrides);
277 return false; 278 return false;
278 } 279 }
279 scoped_ptr<URLOverrides> url_overrides(new URLOverrides); 280 scoped_ptr<URLOverrides> url_overrides(new URLOverrides);
280 // Validate that the overrides are all strings 281 // Validate that the overrides are all strings
281 for (base::DictionaryValue::Iterator iter(*overrides); !iter.IsAtEnd(); 282 for (base::DictionaryValue::Iterator iter(*overrides); !iter.IsAtEnd();
282 iter.Advance()) { 283 iter.Advance()) {
283 std::string page = iter.key(); 284 std::string page = iter.key();
284 std::string val; 285 std::string val;
285 // Restrict override pages to a list of supported URLs. 286 // Restrict override pages to a list of supported URLs.
286 bool is_override = (page != chrome::kChromeUINewTabHost && 287 bool is_override = (page != chrome::kChromeUINewTabHost &&
287 page != chrome::kChromeUIBookmarksHost && 288 page != chrome::kChromeUIBookmarksHost &&
288 page != chrome::kChromeUIHistoryHost); 289 page != chrome::kChromeUIHistoryHost);
289 #if defined(OS_CHROMEOS) 290 #if defined(OS_CHROMEOS)
290 is_override = (is_override && 291 is_override = (is_override &&
291 page != chrome::kChromeUIActivationMessageHost); 292 page != chrome::kChromeUIActivationMessageHost);
292 #endif 293 #endif
293 #if defined(OS_CHROMEOS) 294 #if defined(OS_CHROMEOS)
294 is_override = (is_override && page != keyboard::kKeyboardWebUIHost); 295 is_override = (is_override && page != keyboard::kKeyboardWebUIHost);
295 #endif 296 #endif
296 #if defined(ENABLE_ENHANCED_BOOKMARKS) 297 #if defined(ENABLE_ENHANCED_BOOKMARKS)
297 is_override = (is_override && 298 is_override = (is_override &&
298 !(extension->location() == Manifest::COMPONENT && 299 !(extension->location() == Manifest::COMPONENT &&
299 page == chrome::kChromeUIEnhancedBookmarksHost)); 300 page == chrome::kChromeUIEnhancedBookmarksHost));
300 #endif 301 #endif
301 302
302 if (is_override || !iter.value().GetAsString(&val)) { 303 if (is_override || !iter.value().GetAsString(&val)) {
303 *error = ASCIIToUTF16(errors::kInvalidChromeURLOverrides); 304 *error = base::ASCIIToUTF16(errors::kInvalidChromeURLOverrides);
304 return false; 305 return false;
305 } 306 }
306 // Replace the entry with a fully qualified chrome-extension:// URL. 307 // Replace the entry with a fully qualified chrome-extension:// URL.
307 url_overrides->chrome_url_overrides_[page] = extension->GetResourceURL(val); 308 url_overrides->chrome_url_overrides_[page] = extension->GetResourceURL(val);
308 309
309 // For component extensions, add override URL to extent patterns. 310 // For component extensions, add override URL to extent patterns.
310 if (extension->is_legacy_packaged_app() && 311 if (extension->is_legacy_packaged_app() &&
311 extension->location() == Manifest::COMPONENT) { 312 extension->location() == Manifest::COMPONENT) {
312 URLPattern pattern(URLPattern::SCHEME_CHROMEUI); 313 URLPattern pattern(URLPattern::SCHEME_CHROMEUI);
313 std::string url = base::StringPrintf(kOverrideExtentUrlPatternFormat, 314 std::string url = base::StringPrintf(kOverrideExtentUrlPatternFormat,
314 page.c_str()); 315 page.c_str());
315 if (pattern.Parse(url) != URLPattern::PARSE_SUCCESS) { 316 if (pattern.Parse(url) != URLPattern::PARSE_SUCCESS) {
316 *error = ErrorUtils::FormatErrorMessageUTF16( 317 *error = ErrorUtils::FormatErrorMessageUTF16(
317 errors::kInvalidURLPatternError, url); 318 errors::kInvalidURLPatternError, url);
318 return false; 319 return false;
319 } 320 }
320 extension->AddWebExtentPattern(pattern); 321 extension->AddWebExtentPattern(pattern);
321 } 322 }
322 } 323 }
323 324
324 // An extension may override at most one page. 325 // An extension may override at most one page.
325 if (overrides->size() > 1) { 326 if (overrides->size() > 1) {
326 *error = ASCIIToUTF16(errors::kMultipleOverrides); 327 *error = base::ASCIIToUTF16(errors::kMultipleOverrides);
327 return false; 328 return false;
328 } 329 }
329 extension->SetManifestData(keys::kChromeURLOverrides, 330 extension->SetManifestData(keys::kChromeURLOverrides,
330 url_overrides.release()); 331 url_overrides.release());
331 return true; 332 return true;
332 } 333 }
333 334
334 const std::vector<std::string> URLOverridesHandler::Keys() const { 335 const std::vector<std::string> URLOverridesHandler::Keys() const {
335 return SingleKey(keys::kChromeURLOverrides); 336 return SingleKey(keys::kChromeURLOverrides);
336 } 337 }
337 338
338 } // namespace extensions 339 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698