| Index: extensions/renderer/dispatcher.cc
|
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
|
| index 8c6f3197b6dd125d6d7f30b2ff460f1a690826da..3a051aded6abfd25bc427e989e5281e11fdfbec8 100644
|
| --- a/extensions/renderer/dispatcher.cc
|
| +++ b/extensions/renderer/dispatcher.cc
|
| @@ -1449,9 +1449,15 @@ void Dispatcher::UpdateContentCapabilities(ScriptContext* context) {
|
| APIPermissionSet permissions;
|
| for (const auto& extension :
|
| *RendererExtensionRegistry::Get()->GetMainThreadExtensionSet()) {
|
| + blink::WebLocalFrame* web_frame = context->web_frame();
|
| + GURL url = context->url();
|
| + // We allow about:blank pages to take on the privileges of their parents if
|
| + // they aren't sandboxed.
|
| + if (web_frame && !web_frame->getSecurityOrigin().isUnique())
|
| + url = ScriptContext::GetEffectiveDocumentURL(web_frame, url, true);
|
| const ContentCapabilitiesInfo& info =
|
| ContentCapabilitiesInfo::Get(extension.get());
|
| - if (info.url_patterns.MatchesURL(context->url())) {
|
| + if (info.url_patterns.MatchesURL(url)) {
|
| APIPermissionSet new_permissions;
|
| APIPermissionSet::Union(permissions, info.permissions, &new_permissions);
|
| permissions = new_permissions;
|
|
|