Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp

Issue 2036403002: Always use the WebFrameWidget when attaching the root graphics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: adding comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
index 1d5d577c573e56c85b77ff6ce3b27572524aafdf..ffa6467f8a0036a3524fbff3f6dea78470ab158a 100644
--- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
+++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
@@ -92,6 +92,12 @@ TestWebFrameClient* defaultWebFrameClient()
return &client;
}
+TestWebWidgetClient* defaultWebWidgetClient()
+{
+ DEFINE_STATIC_LOCAL(TestWebWidgetClient, client, ());
+ return &client;
+}
+
TestWebViewClient* defaultWebViewClient()
{
DEFINE_STATIC_LOCAL(TestWebViewClient, client, ());
@@ -165,12 +171,18 @@ WebMouseEvent createMouseEvent(WebInputEvent::Type type, WebMouseEvent::Button b
return result;
}
-WebLocalFrame* createLocalChild(WebRemoteFrame* parent, const WebString& name, WebFrameClient* client, WebFrame* previousSibling, const WebFrameOwnerProperties& properties)
+WebLocalFrame* createLocalChild(WebRemoteFrame* parent, const WebString& name, WebFrameClient* client, WebWidgetClient* widgetClient, WebFrame* previousSibling, const WebFrameOwnerProperties& properties)
{
if (!client)
client = defaultWebFrameClient();
- return parent->createLocalChild(WebTreeScopeType::Document, name, nameToUniqueName(name), WebSandboxFlags::None, client, previousSibling, properties, nullptr);
+ WebLocalFrame* frame = parent->createLocalChild(WebTreeScopeType::Document, name, nameToUniqueName(name), WebSandboxFlags::None, client, previousSibling, properties, nullptr);
+
+ if (!widgetClient)
+ widgetClient = defaultWebWidgetClient();
+ WebFrameWidget::create(widgetClient, frame);
+
+ return frame;
}
WebRemoteFrame* createRemoteChild(WebRemoteFrame* parent, WebRemoteFrameClient* client, const WebString& name)
@@ -180,7 +192,6 @@ WebRemoteFrame* createRemoteChild(WebRemoteFrame* parent, WebRemoteFrameClient*
WebViewHelper::WebViewHelper(SettingOverrider* settingOverrider)
: m_webView(nullptr)
- , m_webViewWidget(nullptr)
, m_settingOverrider(settingOverrider)
{
}
@@ -221,7 +232,7 @@ WebViewImpl* WebViewHelper::initializeWithOpener(WebFrame* opener, bool enableJa
m_webView->setMainFrame(frame);
// TODO(dcheng): The main frame widget currently has a special case.
// Eliminate this once WebView is no longer a WebWidget.
- m_webViewWidget = blink::WebFrameWidget::create(webWidgetClient, m_webView, frame);
+ blink::WebFrameWidget::create(webWidgetClient, m_webView, frame);
m_testWebViewClient = webViewClient;
@@ -244,10 +255,6 @@ WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enabl
void WebViewHelper::reset()
{
- if (m_webViewWidget) {
- m_webViewWidget->close();
- m_webViewWidget = nullptr;
- }
if (m_webView) {
DCHECK(m_webView->mainFrame()->isWebRemoteFrame() || !testClientForFrame(m_webView->mainFrame())->isLoading());
m_webView->willCloseLayerTreeView();
@@ -275,10 +282,14 @@ WebFrame* TestWebFrameClient::createChildFrame(WebLocalFrame* parent, WebTreeSco
return frame;
}
-void TestWebFrameClient::frameDetached(WebFrame* frame, DetachType type)
+void TestWebFrameClient::frameDetached(WebLocalFrame* frame, DetachType type)
{
if (type == DetachType::Remove && frame->parent())
frame->parent()->removeChild(frame);
+
+ if (frame->frameWidget())
+ frame->frameWidget()->close();
+
frame->close();
}
@@ -310,5 +321,20 @@ void TestWebViewClient::initializeLayerTreeView()
m_layerTreeView = wrapUnique(new WebLayerTreeViewImplForTesting);
}
+void TestWebViewWidgetClient::initializeLayerTreeView()
+{
+ m_testWebViewClient->initializeLayerTreeView();
+}
+
+WebLayerTreeView* TestWebViewWidgetClient::layerTreeView()
+{
+ return m_testWebViewClient->layerTreeView();
+}
+
+void TestWebViewWidgetClient::scheduleAnimation()
+{
+ m_testWebViewClient->scheduleAnimation();
+}
+
} // namespace FrameTestHelpers
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698