Title: [106250] trunk
Revision
106250
Author
[email protected]
Date
2012-01-30 09:27:33 -0800 (Mon, 30 Jan 2012)

Log Message

[Qt] WKTR: Use a software rendering pipiline when running tests.
https://bugs.webkit.org/show_bug.cgi?id=76708

Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

* platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
(WebCore::TextureMapperQt::setGraphicsContext):
* platform/graphics/qt/TextureMapperQt.h:
(WebCore::TextureMapperQt::initialize):

Source/WebKit2:

Animation layout tests require the graphics layers tree to be updated
to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
prevents the rendering pipeline to run and then in turn blocks the web
process from processing further graphics layer updates.

This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
message queue and render the layers in software on an offscreen buffer.

* UIProcess/API/qt/qquickwebpage.cpp:
(QQuickWebPagePrivate::paint):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewPrivate::setNeedsDisplay):
(QQuickWebViewExperimental::setRenderToOffscreenBuffer):
(QQuickWebViewExperimental::renderToOffscreenBuffer):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate::setRenderToOffscreenBuffer):
(QQuickWebViewPrivate::renderToOffscreenBuffer):
* UIProcess/qt/LayerTreeHostProxyQt.cpp:
(WebKit::LayerTreeHostProxy::paintToGraphicsContext):

Tools:

* WebKitTestRunner/qt/PlatformWebViewQt.cpp:
(WTR::WrapperWindow::WrapperWindow):
(WTR::PlatformWebView::PlatformWebView): Use software rendering of layers since the wrapping QQuickView isn't shown.

LayoutTests:

* platform/qt-wk2/Skipped:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (106249 => 106250)


--- trunk/LayoutTests/ChangeLog	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/LayoutTests/ChangeLog	2012-01-30 17:27:33 UTC (rev 106250)
@@ -1,3 +1,12 @@
+2012-01-26  Jocelyn Turcotte  <[email protected]>
+
+        [Qt] WKTR: Use a software rendering pipiline when running tests.
+        https://bugs.webkit.org/show_bug.cgi?id=76708
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * platform/qt-wk2/Skipped:
+
 2012-01-30  Csaba Osztrogonác  <[email protected]>
 
         [Qt][WK2] http/tests/history/replacestate-post-to-get-2.html fails with timeout

Modified: trunk/LayoutTests/platform/qt-wk2/Skipped (106249 => 106250)


--- trunk/LayoutTests/platform/qt-wk2/Skipped	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/LayoutTests/platform/qt-wk2/Skipped	2012-01-30 17:27:33 UTC (rev 106250)
@@ -439,58 +439,6 @@
 tables/mozilla_expected_failures/marvin/backgr_layers-show.html
 tables/mozilla_expected_failures/marvin/backgr_position-table-column.html
 
-# [Qt][WK2] REGRESSION(r105517): It made 49 tests timeout
-# https://bugs.webkit.org/show_bug.cgi?id=76708
-animations/3d/change-transform-in-end-event.html
-animations/3d/replace-filling-transform.html
-animations/3d/state-at-end-event-transform.html
-animations/3d/transform-perspective.html
-animations/additive-transform-animations.html
-animations/animation-direction-normal.html
-animations/animation-end-event-destroy-renderer.html
-animations/animation-hit-test-transform.html
-animations/animation-iteration-event-destroy-renderer.html
-animations/animation-matrix-negative-scale-unmatrix.html
-animations/animation-start-event-destroy-renderer.html
-animations/big-rotation.html
-animations/combo-transform-rotate+scale.html
-animations/combo-transform-translate+scale.html
-animations/dynamic-stylesheet-loading.html
-animations/fill-mode-transform.html
-animations/keyframe-timing-functions-transform.html
-animations/matrix-anim.html
-animations/missing-from-to-transforms.html
-animations/missing-keyframe-properties-repeating.html
-animations/missing-keyframe-properties-timing-function.html
-animations/missing-keyframe-properties.html
-animations/missing-values-first-keyframe.html
-animations/missing-values-last-keyframe.html
-animations/negative-delay.html
-animations/opacity-transform-animation.html
-animations/pause-crash.html
-animations/play-state-paused.html
-animations/play-state-suspend.html
-animations/simultaneous-start-transform.html
-animations/stop-animation-on-suspend.html
-animations/suspend-resume-animation.html
-animations/suspend-transform-animation.html
-animations/transition-and-animation-1.html
-animations/transition-and-animation-2.html
-fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html
-tables/mozilla/marvin/backgr_simple-table-cell.html
-transitions/3d/interrupted-transition.html
-transitions/cancel-transition.html
-transitions/extra-transition.html
-transitions/interrupt-transform-transition.html
-transitions/interrupted-accelerated-transition.html
-transitions/move-after-transition.html
-transitions/start-transform-transition.html
-transitions/transition-end-event-destroy-iframe.html
-transitions/transition-end-event-destroy-renderer.html
-transitions/transition-end-event-multiple-04.html
-transitions/transition-end-event-rendering.html
-transitions/transition-end-event-transform.html
-
 # [Qt][WK2] http/tests/navigation/anchor-frames-gbk.html fails
 # https://bugs.webkit.org/show_bug.cgi?id=76896
 http/tests/navigation/anchor-frames-gbk.html

Modified: trunk/Source/WebCore/ChangeLog (106249 => 106250)


--- trunk/Source/WebCore/ChangeLog	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebCore/ChangeLog	2012-01-30 17:27:33 UTC (rev 106250)
@@ -1,3 +1,15 @@
+2012-01-26  Jocelyn Turcotte  <[email protected]>
+
+        [Qt] WKTR: Use a software rendering pipiline when running tests.
+        https://bugs.webkit.org/show_bug.cgi?id=76708
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
+        (WebCore::TextureMapperQt::setGraphicsContext):
+        * platform/graphics/qt/TextureMapperQt.h:
+        (WebCore::TextureMapperQt::initialize):
+
 2012-01-27  Enrica Casucci  <[email protected]>
 
         Remove all references to NSPasteboard objects from the Pasteboard

Modified: trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.cpp (106249 => 106250)


--- trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -141,7 +141,7 @@
 void TextureMapperQt::setGraphicsContext(GraphicsContext* context)
 {
     m_context = context;
-    m_painter = context->platformContext();
+    m_painter = context ? context->platformContext() : 0;
     initialize(m_painter);
 }
 

Modified: trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.h (106249 => 106250)


--- trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -70,7 +70,8 @@
 
     static void initialize(QPainter* painter)
     {
-        painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, false);
+        if (painter)
+            painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, false);
     }
 
     static PassOwnPtr<TextureMapper> create() { return adoptPtr(new TextureMapperQt); }

Modified: trunk/Source/WebKit2/ChangeLog (106249 => 106250)


--- trunk/Source/WebKit2/ChangeLog	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/ChangeLog	2012-01-30 17:27:33 UTC (rev 106250)
@@ -1,3 +1,32 @@
+2012-01-26  No'am Rosenthal  <[email protected]> and Jocelyn Turcotte  <[email protected]>
+
+        [Qt] WKTR: Use a software rendering pipiline when running tests.
+        https://bugs.webkit.org/show_bug.cgi?id=76708
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Animation layout tests require the graphics layers tree to be updated
+        to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
+        prevents the rendering pipeline to run and then in turn blocks the web
+        process from processing further graphics layer updates.
+
+        This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
+        message queue and render the layers in software on an offscreen buffer.
+
+        * UIProcess/API/qt/qquickwebpage.cpp:
+        (QQuickWebPagePrivate::paint):
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewPrivate::QQuickWebViewPrivate):
+        (QQuickWebViewPrivate::setNeedsDisplay):
+        (QQuickWebViewExperimental::setRenderToOffscreenBuffer):
+        (QQuickWebViewExperimental::renderToOffscreenBuffer):
+        * UIProcess/API/qt/qquickwebview_p.h:
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate::setRenderToOffscreenBuffer):
+        (QQuickWebViewPrivate::renderToOffscreenBuffer):
+        * UIProcess/qt/LayerTreeHostProxyQt.cpp:
+        (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
+
 2012-01-30  Andras Becsi  <[email protected]>
 
         [Qt][WK2] Render layers do not get flushed when the scroll animation finishes

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -100,6 +100,12 @@
     drawingArea->setSize(WebCore::IntSize(size), WebCore::IntSize());
 }
 
+void QQuickWebPagePrivate::paint(QPainter* painter)
+{
+    if (webPageProxy->drawingArea())
+        webPageProxy->drawingArea()->paintLayerTree(painter);
+}
+
 void QQuickWebPagePrivate::paintToCurrentGLContext()
 {
     if (!q->isVisible())

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -43,6 +43,7 @@
     void updateSize();
 
     void paintToCurrentGLContext();
+    void paint(QPainter*);
     void resetPaintNode();
 
     QScopedPointer<QtWebPageEventHandler> eventHandler;

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -67,6 +67,7 @@
     , isTransitioningToNewPage(false)
     , pageIsSuspended(false)
     , m_navigatorQtObjectEnabled(false)
+    , m_renderToOffscreenBuffer(false)
 {
     viewport->setFlags(QQuickItem::ItemClipsChildrenToShape);
     QObject::connect(viewport, SIGNAL(visibleChanged()), viewport, SLOT(_q_onVisibleChanged()));
@@ -154,6 +155,20 @@
     updateTouchViewportSize();
 }
 
+void QQuickWebViewPrivate::setNeedsDisplay()
+{
+    Q_Q(QQuickWebView);
+    if (renderToOffscreenBuffer()) {
+        // TODO: we can maintain a real image here and use it for pixel tests. Right now this is used only for running the rendering code-path while running tests.
+        QImage dummyImage(1, 1, QImage::Format_ARGB32);
+        QPainter painter(&dummyImage);
+        q->page()->d->paint(&painter);
+        return;
+    }
+
+    q->page()->update();
+}
+
 void QQuickWebViewPrivate::loadDidCommit()
 {
     // Due to entering provisional load before committing, we
@@ -667,6 +682,18 @@
     d->setUseTraditionalDesktopBehaviour(enable);
 }
 
+void QQuickWebViewExperimental::setRenderToOffscreenBuffer(bool enable)
+{
+    Q_D(QQuickWebView);
+    d->setRenderToOffscreenBuffer(enable);
+}
+
+bool QQuickWebViewExperimental::renderToOffscreenBuffer() const
+{
+    Q_D(const QQuickWebView);
+    return d->renderToOffscreenBuffer();
+}
+
 void QQuickWebViewExperimental::postMessage(const QString& message)
 {
     Q_D(QQuickWebView);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -237,11 +237,12 @@
     void setCertificateVerificationDialog(QDeclarativeComponent*);
     QDeclarativeComponent* itemSelector() const;
     void setItemSelector(QDeclarativeComponent*);
-    
+    bool useTraditionalDesktopBehaviour() const;
+    void setUseTraditionalDesktopBehaviour(bool enable);
+
     QWebViewportInfo* viewportInfo();
 
     QWebPreferences* preferences() const;
-    bool useTraditionalDesktopBehaviour() const;
     QWebNavigationHistory* navigationHistory() const;
     QQuickWebPage* page();
 
@@ -253,8 +254,11 @@
     void invokeApplicationSchemeHandler(WTF::PassRefPtr<WebKit::QtRefCountedNetworkRequestData>);
     void sendApplicationSchemeReply(QQuickNetworkReply*);
 
+    // C++ only
+    bool renderToOffscreenBuffer() const;
+    void setRenderToOffscreenBuffer(bool enable);
+
 public Q_SLOTS:
-    void setUseTraditionalDesktopBehaviour(bool enable);
     void goBackTo(int index);
     void goForwardTo(int index);
     void postMessage(const QString&);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -77,6 +77,8 @@
     void didChangeViewportProperties(const WebCore::ViewportArguments& args);
     void didChangeBackForwardList();
 
+    void setNeedsDisplay();
+
     void updateDesktopViewportSize();
     void updateTouchViewportSize();
     QtViewportInteractionEngine::Constraints computeViewportConstraints();
@@ -101,10 +103,12 @@
     bool handleCertificateVerificationRequest(const QString& hostname);
 
     void setUseTraditionalDesktopBehaviour(bool enable);
+    void setRenderToOffscreenBuffer(bool enable) { m_renderToOffscreenBuffer = enable; }
     void setViewInAttachedProperties(QObject*);
     void setIcon(const QUrl&);
 
     bool navigatorQtObjectEnabled() const;
+    bool renderToOffscreenBuffer() const { return m_renderToOffscreenBuffer; }
     void setNavigatorQtObjectEnabled(bool);
 
     // PageClient.
@@ -166,6 +170,7 @@
     bool isTransitioningToNewPage;
     bool pageIsSuspended;
     bool m_navigatorQtObjectEnabled;
+    bool m_renderToOffscreenBuffer;
     QUrl m_iconURL;
 };
 

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -27,6 +27,7 @@
 #ifndef DrawingAreaProxy_h
 #define DrawingAreaProxy_h
 
+#include "BackingStore.h"
 #include "DrawingAreaInfo.h"
 #include <WebCore/IntRect.h>
 #include <WebCore/IntSize.h>
@@ -88,6 +89,7 @@
     virtual WebCore::IntRect contentsRect() const;
     virtual bool isBackingStoreReady() const { return true; }
     virtual void paintToCurrentGLContext(const WebCore::TransformationMatrix&, float opacity) { }
+    virtual void paintLayerTree(BackingStore::PlatformGraphicsContext) { }
     LayerTreeHostProxy* layerTreeHostProxy() const { return m_layerTreeHostProxy.get(); }
 
 #if USE(TILED_BACKING_STORE)

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -360,6 +360,12 @@
         m_layerTreeHostProxy->setVisibleContentRectTrajectoryVector(trajectoryVector);
 }
 
+void DrawingAreaProxyImpl::paintLayerTree(BackingStore::PlatformGraphicsContext context)
+{
+    if (m_layerTreeHostProxy)
+        m_layerTreeHostProxy->paintToGraphicsContext(context);
+}
+
 void DrawingAreaProxyImpl::paintToCurrentGLContext(const TransformationMatrix& matrix, float opacity)
 {
     if (m_layerTreeHostProxy)

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -81,6 +81,7 @@
     virtual void setVisibleContentsRectAndScale(const WebCore::IntRect& visibleContentsRect, float scale);
     virtual void setVisibleContentRectTrajectoryVector(const WebCore::FloatPoint&);
     virtual void paintToCurrentGLContext(const WebCore::TransformationMatrix&, float opacity);
+    virtual void paintLayerTree(BackingStore::PlatformGraphicsContext);
     void didReceiveLayerTreeHostProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
 #endif
 #else

Modified: trunk/Source/WebKit2/UIProcess/LayerTreeHostProxy.h (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/LayerTreeHostProxy.h	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/LayerTreeHostProxy.h	2012-01-30 17:27:33 UTC (rev 106250)
@@ -53,6 +53,7 @@
     void setRootCompositingLayer(WebLayerID);
     void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
     void paintToCurrentGLContext(const WebCore::TransformationMatrix&, float);
+    void paintToGraphicsContext(BackingStore::PlatformGraphicsContext);
     void purgeGLResources();
     void setVisibleContentsRectAndScale(const WebCore::IntRect&, float);
     void setVisibleContentRectTrajectoryVector(const WebCore::FloatPoint&);

Modified: trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -27,6 +27,7 @@
 #include "MessageID.h"
 #include "ShareableBitmap.h"
 #include "TextureMapperGL.h"
+#include "TextureMapperQt.h"
 #include "UpdateInfo.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebLayerTreeInfo.h"
@@ -171,6 +172,7 @@
 {
     if (!m_textureMapper)
         m_textureMapper = TextureMapperGL::create();
+    ASSERT(dynamic_cast<TextureMapperGL*>(m_textureMapper.get()));
 
     syncRemoteContent();
     GraphicsLayer* currentRootLayer = rootLayer();
@@ -204,6 +206,28 @@
     }
 }
 
+void LayerTreeHostProxy::paintToGraphicsContext(QPainter* painter)
+{
+    if (!m_textureMapper)
+        m_textureMapper = TextureMapperQt::create();
+    ASSERT(dynamic_cast<TextureMapperQt*>(m_textureMapper.get()));
+
+    syncRemoteContent();
+    TextureMapperNode* node = toTextureMapperNode(rootLayer());
+
+    if (!node)
+        return;
+
+    GraphicsContext graphicsContext(painter);
+    m_textureMapper->setGraphicsContext(&graphicsContext);
+    m_textureMapper->beginPainting();
+    m_textureMapper->bindSurface(0);
+    node->paint();
+    m_textureMapper->endPainting();
+    m_textureMapper->setGraphicsContext(0);
+}
+
+
 void LayerTreeHostProxy::didFireViewportUpdateTimer(Timer<LayerTreeHostProxy>*)
 {
     updateViewport();

Modified: trunk/Source/WebKit2/UIProcess/qt/QtPageClient.cpp (106249 => 106250)


--- trunk/Source/WebKit2/UIProcess/qt/QtPageClient.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Source/WebKit2/UIProcess/qt/QtPageClient.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -62,7 +62,7 @@
 
 void QtPageClient::setViewNeedsDisplay(const WebCore::IntRect& rect)
 {
-    m_webView->page()->update();
+    QQuickWebViewPrivate::get(m_webView)->setNeedsDisplay();
 }
 
 void QtPageClient::pageDidRequestScroll(const IntPoint& pos)

Modified: trunk/Tools/ChangeLog (106249 => 106250)


--- trunk/Tools/ChangeLog	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Tools/ChangeLog	2012-01-30 17:27:33 UTC (rev 106250)
@@ -1,3 +1,14 @@
+2012-01-26  No'am Rosenthal  <[email protected]> and Jocelyn Turcotte  <[email protected]>
+
+        [Qt] WKTR: Use a software rendering pipiline when running tests.
+        https://bugs.webkit.org/show_bug.cgi?id=76708
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * WebKitTestRunner/qt/PlatformWebViewQt.cpp:
+        (WTR::WrapperWindow::WrapperWindow):
+        (WTR::PlatformWebView::PlatformWebView): Use software rendering of layers since the wrapping QQuickView isn't shown.
+
 2012-01-30  Tor Arne Vestbø  <[email protected]>
 
         [Qt] Store build config immediately instead of waiting for a successfull build

Modified: trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp (106249 => 106250)


--- trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp	2012-01-30 17:19:26 UTC (rev 106249)
+++ trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp	2012-01-30 17:27:33 UTC (rev 106250)
@@ -45,7 +45,6 @@
         : QQuickView(QUrl("data:text/plain,import QtQuick 2.0\nItem { objectName: 'root' }"))
         , m_view(view)
     {
-        QQuickWebViewExperimental(view).setUseTraditionalDesktopBehaviour(true);
         connect(this, SIGNAL(statusChanged(QQuickView::Status)), SLOT(handleStatusChanged(QQuickView::Status)));
     }
 
@@ -75,6 +74,9 @@
     , m_windowIsKey(true)
     , m_modalEventLoop(0)
 {
+    QQuickWebViewExperimental experimental(m_view);
+    experimental.setUseTraditionalDesktopBehaviour(true);
+    experimental.setRenderToOffscreenBuffer(true);
 }
 
 PlatformWebView::~PlatformWebView()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to