diff options
author | feldstein@chromium.org <feldstein@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 23:52:56 +0000 |
---|---|---|
committer | feldstein@chromium.org <feldstein@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 23:52:56 +0000 |
commit | fbd17cf5288dec78851ada15fadfda0563419833 (patch) | |
tree | fedf6d2264d10d9e5d6c9db6c188ae13b02b6d4b /chrome/common/extensions/extension.cc | |
parent | de3784727a0656f23468e3caa1cdf4ad894a5d15 (diff) | |
download | chromium_src-fbd17cf5288dec78851ada15fadfda0563419833.zip chromium_src-fbd17cf5288dec78851ada15fadfda0563419833.tar.gz chromium_src-fbd17cf5288dec78851ada15fadfda0563419833.tar.bz2 |
Rework of the shared resources patch for checkin
Implement shared resources and use them in bookmark manager
I had an issue with git when moving files so i had to create a new patch to
delete/readd them here. See code review 1564034. This is just for
trybots/checkins.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/1694019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45885 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/extension.cc')
-rw-r--r-- | chrome/common/extensions/extension.cc | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc index 8dc62d2..41d5257 100644 --- a/chrome/common/extensions/extension.cc +++ b/chrome/common/extensions/extension.cc @@ -1385,11 +1385,7 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_key, return false; } - // We support http:// and https:// as well as chrome://favicon/. - if (!(pattern.scheme() == chrome::kHttpScheme || - pattern.scheme() == chrome::kHttpsScheme || - (pattern.scheme() == chrome::kChromeUIScheme && - pattern.host() == chrome::kChromeUIFavIconHost))) { + if (!CanAccessURL(pattern)) { *error = ExtensionErrorUtils::FormatErrorMessage( errors::kInvalidPermissionScheme, IntToString(i)); return false; @@ -1585,6 +1581,24 @@ Extension::Icons Extension::GetIconPathAllowLargerSize( return EXTENSION_ICON_LARGE; } +// We support http:// and https:// as well as chrome://favicon//. +// chrome://resources/ is supported but only for component extensions. +bool Extension::CanAccessURL(const URLPattern pattern) const{ + if (pattern.scheme() == chrome::kHttpScheme || + pattern.scheme() == chrome::kHttpsScheme) { + return true; + } + if (pattern.scheme() == chrome::kChromeUIScheme && + pattern.host() == chrome::kChromeUIFavIconHost) { + return true; + } + if (location() == Extension::COMPONENT && + pattern.scheme() == chrome::kChromeUIScheme) { + return true; + } + return false; +} + bool Extension::HasHostPermission(const GURL& url) const { for (URLPatternList::const_iterator host = host_permissions_.begin(); host != host_permissions_.end(); ++host) { |