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

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: patch-rebased Created 7 years, 11 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 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 bbbc5b7025ae9bfee7a9aeb6ff3f0c771ba8a9d5..943fbcc8a48b688bc9d7372c7025bcc374412596 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -72,8 +72,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;
@@ -1326,6 +1324,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();
}
@@ -2642,7 +2644,6 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
!LoadBrowserAction(error) ||
!LoadSystemIndicator(api_permissions, error) ||
!LoadScriptBadge(error) ||
- !LoadChromeURLOverrides(error) ||
!LoadIncognitoMode(error) ||
!LoadFileHandlers(error) ||
!LoadContentSecurityPolicy(error))
@@ -2837,65 +2838,6 @@ bool Extension::LoadSystemIndicator(APIPermissionSet* api_permissions,
return true;
}
-
-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::LoadIncognitoMode(string16* error) {
// Apps default to split mode, extensions default to spanning.
incognito_split_mode_ = is_app();
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/manifest_tests/extension_manifests_override_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698