diff options
Diffstat (limited to 'chrome/browser/chrome_content_browser_client.cc')
-rw-r--r-- | chrome/browser/chrome_content_browser_client.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 1b6b4d7..f892bd4 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -589,6 +589,24 @@ void ChromeContentBrowserClient::RenderViewHostCreated( new extensions::MessageHandler(render_view_host); } +void ChromeContentBrowserClient::GuestWebContentsCreated( + WebContents* guest_web_contents, WebContents* embedder_web_contents) { + Profile* profile = Profile::FromBrowserContext( + embedder_web_contents->GetBrowserContext()); + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); + if (!service) + return; + const GURL& url = embedder_web_contents->GetSiteInstance()->GetSiteURL(); + const Extension* extension = service->extensions()-> + GetExtensionOrAppByURL(ExtensionURLInfo(url)); + if (!extension) + return; + std::vector<ExtensionMsg_Loaded_Params> extensions; + extensions.push_back(ExtensionMsg_Loaded_Params(extension)); + guest_web_contents->Send(new ExtensionMsg_Loaded(extensions)); +} + void ChromeContentBrowserClient::RenderProcessHostCreated( content::RenderProcessHost* host) { int id = host->GetID(); |