Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 9136254fbe5ed2d697e2982dbaaadd6b2ce68e3a..f6a1189e9ced6359fbbd09167fdda1a3dd7e26fd 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1076,6 +1076,7 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params) |
#if defined(ENABLE_PLUGINS) |
focused_pepper_plugin_(nullptr), |
pepper_last_mouse_event_target_(nullptr), |
+ is_plugin_initializing_(false), |
#endif |
frame_binding_(this), |
has_accessed_initial_document_(false), |
@@ -1114,6 +1115,11 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params) |
} |
RenderFrameImpl::~RenderFrameImpl() { |
+#if defined(ENABLE_PLUGINS) |
+ if (is_plugin_initializing_) |
+ base::debug::DumpWithoutCrashing(); |
+#endif |
+ |
// If file chooser is still waiting for answer, dispatch empty answer. |
while (!file_chooser_completions_.empty()) { |
if (file_chooser_completions_.front()->completion) { |
@@ -2349,7 +2355,7 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( |
const WebPluginInfo& info, |
const blink::WebPluginParams& params, |
std::unique_ptr<content::PluginInstanceThrottler> throttler) { |
- DCHECK_EQ(frame_, frame); |
+ CHECK_EQ(frame_, frame); |
#if defined(ENABLE_PLUGINS) |
if (info.type == WebPluginInfo::PLUGIN_TYPE_BROWSER_PLUGIN) { |
return BrowserPluginManager::Get()->CreateBrowserPlugin( |
@@ -2365,6 +2371,7 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( |
this, info, &pepper_plugin_was_registered)); |
if (pepper_plugin_was_registered) { |
if (pepper_module.get()) { |
+ is_plugin_initializing_ = true; |
return new PepperWebPluginImpl( |
pepper_module.get(), params, this, |
base::WrapUnique( |
@@ -2518,7 +2525,7 @@ void RenderFrameImpl::GetInterfaceProvider( |
blink::WebPlugin* RenderFrameImpl::createPlugin( |
blink::WebLocalFrame* frame, |
const blink::WebPluginParams& params) { |
- DCHECK_EQ(frame_, frame); |
+ CHECK_EQ(frame_, frame); |
blink::WebPlugin* plugin = NULL; |
if (GetContentClient()->renderer()->OverrideCreatePlugin( |
this, frame, params, &plugin)) { |
@@ -6238,6 +6245,7 @@ void RenderFrameImpl::SendFindReply(int request_id, |
#if defined(ENABLE_PLUGINS) |
void RenderFrameImpl::PepperInstanceCreated( |
PepperPluginInstanceImpl* instance) { |
+ is_plugin_initializing_ = false; |
active_pepper_instances_.insert(instance); |
Send(new FrameHostMsg_PepperInstanceCreated( |