Chromium Code Reviews| Index: Source/web/WebFrameWidgetImpl.cpp |
| diff --git a/Source/web/WebFrameWidgetImpl.cpp b/Source/web/WebFrameWidgetImpl.cpp |
| index 4872a33bdb0111a27fb7df683f6c00cec9642add..0959b5eea4039aa0c8df9e1d28b89f7de87ff5ab 100644 |
| --- a/Source/web/WebFrameWidgetImpl.cpp |
| +++ b/Source/web/WebFrameWidgetImpl.cpp |
| @@ -73,7 +73,11 @@ WebFrameWidget* WebFrameWidget::create(WebView* webView) |
| WebFrameWidgetImpl* WebFrameWidgetImpl::create(WebWidgetClient* client, WebLocalFrame* localRoot) |
| { |
| // Pass the WebFrameWidgetImpl's self-reference to the caller. |
| +#if ENABLE(OILPAN) |
| + return new WebFrameWidgetImpl(client, localRoot); // SelfKeepAlive is set in constructor. |
| +#else |
| return adoptRef(new WebFrameWidgetImpl(client, localRoot)).leakRef(); |
| +#endif |
| } |
| // static |
| @@ -93,6 +97,9 @@ WebFrameWidgetImpl::WebFrameWidgetImpl(WebWidgetClient* client, WebLocalFrame* l |
| , m_layerTreeViewClosed(false) |
| , m_suppressNextKeypressEvent(false) |
| , m_ignoreInputEvents(false) |
| +#if ENABLE(OILPAN) |
| + , m_selfKeepAlive(this) |
| +#endif |
| { |
| ASSERT(m_localRoot->frame()->isLocalRoot()); |
| initializeLayerTreeView(); |
| @@ -104,6 +111,12 @@ WebFrameWidgetImpl::~WebFrameWidgetImpl() |
| { |
| } |
| +DEFINE_TRACE(WebFrameWidgetImpl) |
| +{ |
| + visitor->trace(m_localRoot); |
| + visitor->trace(m_mouseCaptureNode); |
| +} |
| + |
| // WebWidget ------------------------------------------------------------------ |
| void WebFrameWidgetImpl::close() |
| @@ -118,7 +131,11 @@ void WebFrameWidgetImpl::close() |
| // deleted. |
| m_client = nullptr; |
|
haraken
2015/08/18 08:03:08
Can we clear m_layerTreeView, m_rootLayer, m_rootG
Yuta Kitamura
2015/08/18 08:33:59
Done.
|
| +#if ENABLE(OILPAN) |
| + m_selfKeepAlive.clear(); |
| +#else |
| deref(); // Balances ref() acquired in WebFrameWidget::create |
| +#endif |
| } |
| WebSize WebFrameWidgetImpl::size() |