summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-30 21:52:07 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-30 21:52:07 +0000
commit7715d63a3b9da9c149cdd0f544dbdf4cb13a8ed7 (patch)
treec018df57b687d9b3a6c8e0d06d297ca2e6d18c30 /chrome/renderer
parentf33b82f2e0be4b3c739f3e51f34b680080e0150e (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/renderer/user_script_slave.cc3
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