Title: [144398] trunk/Tools
Revision
144398
Author
[email protected]
Date
2013-02-28 16:50:37 -0800 (Thu, 28 Feb 2013)

Log Message

[chromium] Use DumpRenderTree-specific interface for DRT's compositor embedding
https://bugs.webkit.org/show_bug.cgi?id=111017

Reviewed by Adam Barth.

This decouples DumpRenderTree from WebLayerTreeViewClient.

* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHostDRTLayerTreeViewClient):
(WebViewHostDRTLayerTreeViewClient::WebViewHostDRTLayerTreeViewClient):
(WebViewHostDRTLayerTreeViewClient::~WebViewHostDRTLayerTreeViewClient):
(WebViewHostDRTLayerTreeViewClient::Layout):
(WebViewHostDRTLayerTreeViewClient::ScheduleComposite):
(WebViewHost::initializeLayerTreeView):
* DumpRenderTree/chromium/WebViewHost.h:
(webkit_support):
(WebViewHost):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (144397 => 144398)


--- trunk/Tools/ChangeLog	2013-03-01 00:47:10 UTC (rev 144397)
+++ trunk/Tools/ChangeLog	2013-03-01 00:50:37 UTC (rev 144398)
@@ -1,3 +1,23 @@
+2013-02-27  James Robinson  <[email protected]>
+
+        [chromium] Use DumpRenderTree-specific interface for DRT's compositor embedding
+        https://bugs.webkit.org/show_bug.cgi?id=111017
+
+        Reviewed by Adam Barth.
+
+        This decouples DumpRenderTree from WebLayerTreeViewClient.
+
+        * DumpRenderTree/chromium/WebViewHost.cpp:
+        (WebViewHostDRTLayerTreeViewClient):
+        (WebViewHostDRTLayerTreeViewClient::WebViewHostDRTLayerTreeViewClient):
+        (WebViewHostDRTLayerTreeViewClient::~WebViewHostDRTLayerTreeViewClient):
+        (WebViewHostDRTLayerTreeViewClient::Layout):
+        (WebViewHostDRTLayerTreeViewClient::ScheduleComposite):
+        (WebViewHost::initializeLayerTreeView):
+        * DumpRenderTree/chromium/WebViewHost.h:
+        (webkit_support):
+        (WebViewHost):
+
 2013-02-28  Ryuan Choi  <[email protected]>
 
         Unreviewed, add my secondary email address to the list.

Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h (144397 => 144398)


--- trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h	2013-03-01 00:47:10 UTC (rev 144397)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h	2013-03-01 00:50:37 UTC (rev 144398)
@@ -108,6 +108,8 @@
 
     void setLogConsoleOutput(bool enabled);
 
+    void scheduleComposite();
+
 #if WEBTESTRUNNER_IMPLEMENTATION
     void display();
     void displayInvalidatedRegion();
@@ -125,7 +127,6 @@
 
     void didInvalidateRect(const WebKit::WebRect&);
     void didScrollRect(int, int, const WebKit::WebRect&);
-    void scheduleComposite();
     void scheduleAnimation();
     void setWindowRect(const WebKit::WebRect&);
     void show(WebKit::WebNavigationPolicy);
@@ -251,11 +252,6 @@
         WebTestProxyBase::didScrollRect(dx, dy, clipRect);
         Base::didScrollRect(dx, dy, clipRect);
     }
-    virtual void scheduleComposite()
-    {
-        WebTestProxyBase::scheduleComposite();
-        Base::scheduleComposite();
-    }
     virtual void scheduleAnimation()
     {
         WebTestProxyBase::scheduleAnimation();

Modified: trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp (144397 => 144398)


--- trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp	2013-03-01 00:47:10 UTC (rev 144397)
+++ trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp	2013-03-01 00:50:37 UTC (rev 144398)
@@ -262,12 +262,26 @@
     setWindowRect(WebRect(0, 0, newSize.width, newSize.height));
 }
 
+class WebViewHostDRTLayerTreeViewClient : public webkit_support::DRTLayerTreeViewClient {
+public:
+    explicit WebViewHostDRTLayerTreeViewClient(WebViewHost* host)
+        : m_host(host) { }
+    virtual ~WebViewHostDRTLayerTreeViewClient() { }
+
+    virtual void Layout() { m_host->webView()->layout(); }
+    virtual void ScheduleComposite() { m_host->proxy()->scheduleComposite(); }
+
+private:
+    WebViewHost* m_host;
+};
+
 void WebViewHost::initializeLayerTreeView(WebLayerTreeViewClient* client, const WebLayer& rootLayer, const WebLayerTreeView::Settings& settings)
 {
+    m_layerTreeViewClient = adoptPtr(new WebViewHostDRTLayerTreeViewClient(this));
     if (m_shell->softwareCompositingEnabled())
-        m_layerTreeView = adoptPtr(webkit_support::CreateLayerTreeViewSoftware(client));
+        m_layerTreeView = adoptPtr(webkit_support::CreateLayerTreeViewSoftware(m_layerTreeViewClient.get()));
     else
-        m_layerTreeView = adoptPtr(webkit_support::CreateLayerTreeView3d(client));
+        m_layerTreeView = adoptPtr(webkit_support::CreateLayerTreeView3d(m_layerTreeViewClient.get()));
 
     ASSERT(m_layerTreeView);
     m_layerTreeView->setRootLayer(rootLayer);

Modified: trunk/Tools/DumpRenderTree/chromium/WebViewHost.h (144397 => 144398)


--- trunk/Tools/DumpRenderTree/chromium/WebViewHost.h	2013-03-01 00:47:10 UTC (rev 144397)
+++ trunk/Tools/DumpRenderTree/chromium/WebViewHost.h	2013-03-01 00:50:37 UTC (rev 144398)
@@ -58,6 +58,7 @@
 }
 
 namespace webkit_support {
+class DRTLayerTreeViewClient;
 class MediaStreamUtil;
 class TestMediaStreamClient;
 }
@@ -278,6 +279,7 @@
     WebTestRunner::WebTaskList m_taskList;
     Vector<WebKit::WebWidget*> m_popupmenus;
 
+    OwnPtr<webkit_support::DRTLayerTreeViewClient> m_layerTreeViewClient;
     OwnPtr<WebKit::WebLayerTreeView> m_layerTreeView;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to