| Index: extensions/browser/guest_view/web_view/web_view_guest.cc
|
| diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc
|
| index 40b36f759e4b1a9ceadd37e25432915356c81699..5fd89898891e0a1544caebcebb4821df70752561 100644
|
| --- a/extensions/browser/guest_view/web_view/web_view_guest.cc
|
| +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
|
| @@ -364,7 +364,17 @@ void WebViewGuest::CreateWebContents(
|
| owner_render_process_host->GetBrowserContext(),
|
| std::move(guest_site_instance));
|
| params.guest_delegate = this;
|
| - callback.Run(WebContents::Create(params));
|
| + WebContents* new_contents = WebContents::Create(params);
|
| +
|
| + // Grant access to the origin of the embedder to the guest process. This
|
| + // allows blob:/filesystem: URLs with the embedder origin to be created
|
| + // inside the guest. It is possible to do this by running embedder code
|
| + // through webview accessible_resources.
|
| + content::ChildProcessSecurityPolicy::GetInstance()->GrantOrigin(
|
| + new_contents->GetMainFrame()->GetProcess()->GetID(),
|
| + url::Origin(GetOwnerSiteURL()));
|
| +
|
| + callback.Run(new_contents);
|
| }
|
|
|
| void WebViewGuest::DidAttachToEmbedder() {
|
|
|