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

Unified Diff: chrome/common/extensions/extension.cc

Issue 11660016: Move the parsing of "chrome_url_overrides" out of Extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/extension.cc
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index cbe9a2d3ac271ec86210ee42fd28ea335778f616..c4de2de02da16de3d9622af82af59b218f068043 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -73,8 +73,6 @@ namespace {
const int kModernManifestVersion = 2;
const int kPEMOutputColumns = 65;
-const char kOverrideExtentUrlPatternFormat[] = "chrome://%s/*";
-
// The maximum number of commands (including page action/browser actions) an
// extension can have.
const size_t kMaxCommandsPerExtension = 4;
@@ -1347,6 +1345,10 @@ bool Extension::can_be_incognito_enabled() const {
return !is_platform_app();
}
+void Extension::AddWebExtentPattern(const URLPattern& pattern) {
+ extent_.AddPattern(pattern);
+}
+
bool Extension::is_theme() const {
return manifest()->is_theme();
}
@@ -2799,7 +2801,6 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
!LoadSystemIndicator(api_permissions, error) ||
!LoadScriptBadge(error) ||
!LoadFileBrowserHandlers(error) ||
- !LoadChromeURLOverrides(error) ||
!LoadTextToSpeechVoices(error) ||
!LoadIncognitoMode(error) ||
!LoadFileHandlers(error) ||
@@ -3315,64 +3316,6 @@ FileBrowserHandler* Extension::LoadFileBrowserHandler(
return result.release();
}
-bool Extension::LoadChromeURLOverrides(string16* error) {
- if (!manifest_->HasKey(keys::kChromeURLOverrides))
- return true;
- DictionaryValue* overrides = NULL;
- if (!manifest_->GetDictionary(keys::kChromeURLOverrides, &overrides)) {
- *error = ASCIIToUTF16(errors::kInvalidChromeURLOverrides);
- return false;
- }
-
- // Validate that the overrides are all strings
- for (DictionaryValue::key_iterator iter = overrides->begin_keys();
- iter != overrides->end_keys(); ++iter) {
- std::string page = *iter;
- std::string val;
- // Restrict override pages to a list of supported URLs.
- bool is_override = (page != chrome::kChromeUINewTabHost &&
- page != chrome::kChromeUIBookmarksHost &&
- page != chrome::kChromeUIHistoryHost);
-#if defined(OS_CHROMEOS)
- is_override = (is_override &&
- page != chrome::kChromeUIActivationMessageHost);
-#endif
-#if defined(FILE_MANAGER_EXTENSION)
- is_override = (is_override &&
- !(location() == COMPONENT &&
- page == chrome::kChromeUIFileManagerHost));
-#endif
-
- if (is_override || !overrides->GetStringWithoutPathExpansion(*iter, &val)) {
- *error = ASCIIToUTF16(errors::kInvalidChromeURLOverrides);
- return false;
- }
- // Replace the entry with a fully qualified chrome-extension:// URL.
- chrome_url_overrides_[page] = GetResourceURL(val);
-
- // For component extensions, add override URL to extent patterns.
- if (is_legacy_packaged_app() && location() == COMPONENT) {
- URLPattern pattern(URLPattern::SCHEME_CHROMEUI);
- std::string url = base::StringPrintf(kOverrideExtentUrlPatternFormat,
- page.c_str());
- if (pattern.Parse(url) != URLPattern::PARSE_SUCCESS) {
- *error = ErrorUtils::FormatErrorMessageUTF16(
- errors::kInvalidURLPatternError, url);
- return false;
- }
- extent_.AddPattern(pattern);
- }
- }
-
- // An extension may override at most one page.
- if (overrides->size() > 1) {
- *error = ASCIIToUTF16(errors::kMultipleOverrides);
- return false;
- }
-
- return true;
-}
-
bool Extension::LoadTextToSpeechVoices(string16* error) {
if (!manifest_->HasKey(keys::kTtsEngine))
return true;

Powered by Google App Engine
This is Rietveld 408576698