Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp |
| diff --git a/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp b/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp |
| index 8f6b0c971926021cadefbd87bfb8ef19a226dbf8..d88821c6a6080cfc99dac52c134dc296193ca868 100644 |
| --- a/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp |
| +++ b/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp |
| @@ -94,7 +94,8 @@ DEFINE_TRACE(HTMLPlugInElement) |
| void HTMLPlugInElement::disconnectContentFrame() |
| { |
| if (m_persistedPluginWidget) { |
| - m_persistedPluginWidget->dispose(); |
| + if (m_persistedPluginWidget->isPluginView()) |
| + m_persistedPluginWidget->dispose(); |
|
dcheng
2015/12/11 07:47:09
Is the only other possible case here that m_persis
sof
2015/12/11 08:01:18
Yes, I think it is safe to do the disposal uncondi
dcheng
2015/12/11 08:11:22
Let's add an else { ASSERT(m_persistedPluginWidget
|
| m_persistedPluginWidget = nullptr; |
| } |
| HTMLFrameOwnerElement::disconnectContentFrame(); |
| @@ -114,7 +115,7 @@ void HTMLPlugInElement::setPersistedPluginWidget(Widget* widget) |
| #if ENABLE(OILPAN) |
| unregisterAsRenderlessIfNeeded(); |
| registerAsRenderless(widget); |
| - if (m_persistedPluginWidget) { |
| + if (m_persistedPluginWidget && m_persistedPluginWidget->isPluginView()) { |
|
dcheng
2015/12/11 08:11:22
Ditto, let's split this so we can have an explicit
|
| m_persistedPluginWidget->hide(); |
| m_persistedPluginWidget->dispose(); |
| } |