| Index: extensions/renderer/dispatcher.cc
|
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
|
| index 422c0aeed949defc7e3d78c9e362369afa03ac0e..f78382297e1c39fe5935a3bbb5078202decf166b 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;
|
|
|