diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-30 21:52:07 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-30 21:52:07 +0000 |
commit | 7715d63a3b9da9c149cdd0f544dbdf4cb13a8ed7 (patch) | |
tree | c018df57b687d9b3a6c8e0d06d297ca2e6d18c30 /chrome/renderer | |
parent | f33b82f2e0be4b3c739f3e51f34b680080e0150e (diff) | |
download | chromium_src-7715d63a3b9da9c149cdd0f544dbdf4cb13a8ed7.zip chromium_src-7715d63a3b9da9c149cdd0f544dbdf4cb13a8ed7.tar.gz chromium_src-7715d63a3b9da9c149cdd0f544dbdf4cb13a8ed7.tar.bz2 |
Add a wildcard scheme and a special 'all_urls' pattern to URLPattern.
BUG=47179
Review URL: http://codereview.chromium.org/2884008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51295 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/extensions/extension_process_bindings.cc | 20 | ||||
-rw-r--r-- | chrome/renderer/user_script_slave.cc | 3 |
2 files changed, 17 insertions, 6 deletions
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index 39ed124..0e1d179 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -628,11 +628,21 @@ void ExtensionProcessBindings::SetHostPermissions( const GURL& extension_url, const std::vector<URLPattern>& permissions) { for (size_t i = 0; i < permissions.size(); ++i) { - WebSecurityPolicy::addOriginAccessWhitelistEntry( - extension_url, - WebKit::WebString::fromUTF8(permissions[i].scheme()), - WebKit::WebString::fromUTF8(permissions[i].host()), - permissions[i].match_subdomains()); + const char* schemes[] = { + chrome::kHttpScheme, + chrome::kHttpsScheme, + chrome::kFileScheme, + chrome::kChromeUIScheme, + }; + for (size_t j = 0; j < arraysize(schemes); ++j) { + if (permissions[i].MatchesScheme(schemes[j])) { + WebSecurityPolicy::addOriginAccessWhitelistEntry( + extension_url, + WebKit::WebString::fromUTF8(schemes[j]), + WebKit::WebString::fromUTF8(permissions[i].host()), + permissions[i].match_subdomains()); + } + } } } diff --git a/chrome/renderer/user_script_slave.cc b/chrome/renderer/user_script_slave.cc index c5812ad..b2b7a04 100644 --- a/chrome/renderer/user_script_slave.cc +++ b/chrome/renderer/user_script_slave.cc @@ -145,7 +145,8 @@ bool UserScriptSlave::InjectScripts(WebFrame* frame, UserScript::RunLocation location) { GURL frame_url = GURL(frame->url()); // Don't bother if this is not a URL we inject script into. - if (!URLPattern::IsValidScheme(frame_url.scheme())) + if (!URLPattern(UserScript::kValidUserScriptSchemes).IsValidScheme( + frame_url.scheme())) return true; // Don't inject user scripts into the gallery itself. This prevents |