From 9bd85fa04bbd8bda27f47d88d8389efb6a26d034 Mon Sep 17 00:00:00 2001 From: hanxi Date: Tue, 5 May 2015 12:55:00 -0700 Subject: Add callback in UserScriptLoader to notify users when scripts are loaded. BUG=461052, 482446 Review URL: https://codereview.chromium.org/1110143002 Cr-Commit-Position: refs/heads/master@{#328385} --- content/browser/browser_plugin/browser_plugin_guest.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'content/browser/browser_plugin/browser_plugin_guest.cc') diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc index 79e0dff..c43717b 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.cc +++ b/content/browser/browser_plugin/browser_plugin_guest.cc @@ -631,9 +631,21 @@ void BrowserPluginGuest::Attach( ack); last_pending_frame_.reset(); } + + // The guest is owned by the embedder. Attach is queued up so we cannot + // change embedders before attach completes. If the embedder goes away, + // so does the guest and so we will never call WillAttachComplete because + // we have a weak ptr. delegate_->WillAttach(embedder_web_contents, browser_plugin_instance_id, - params.is_full_page_plugin); + params.is_full_page_plugin, + base::Bind(&BrowserPluginGuest::OnWillAttachComplete, + weak_ptr_factory_.GetWeakPtr(), + embedder_web_contents, params)); +} +void BrowserPluginGuest::OnWillAttachComplete( + WebContentsImpl* embedder_web_contents, + const BrowserPluginHostMsg_Attach_Params& params) { // If a RenderView has already been created for this new window, then we need // to initialize the browser-side state now so that the RenderFrameHostManager // does not create a new RenderView on navigation. -- cgit v1.1