Title: [106109] trunk
Revision
106109
Author
[email protected]
Date
2012-01-27 04:46:18 -0800 (Fri, 27 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 (106108 => 106109)


--- trunk/LayoutTests/ChangeLog	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/LayoutTests/ChangeLog	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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-27 Branimir Lambov <[email protected]>
 
         SVG filters incorrectly move elements

Modified: trunk/LayoutTests/platform/qt-wk2/Skipped (106108 => 106109)


--- trunk/LayoutTests/platform/qt-wk2/Skipped	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/LayoutTests/platform/qt-wk2/Skipped	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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/history/replacestate-post-to-get-2.html fails with timeout
 # https://bugs.webkit.org/show_bug.cgi?id=76784
 http/tests/history/replacestate-post-to-get-2.html

Modified: trunk/Source/WebCore/ChangeLog (106108 => 106109)


--- trunk/Source/WebCore/ChangeLog	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebCore/ChangeLog	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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  Branimir Lambov  <[email protected]>
 
         SVG filters incorrectly move elements

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


--- trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebCore/platform/graphics/qt/TextureMapperQt.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/ChangeLog	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/ChangeLog	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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-27  Simon Hausmann  <[email protected]>
 
         [Qt] Re-creating QQuickWebView starts new web process every time

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


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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
@@ -659,6 +674,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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/LayerTreeHostProxy.h	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/LayerTreeHostProxy.h	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Source/WebKit2/UIProcess/qt/QtPageClient.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Source/WebKit2/UIProcess/qt/QtPageClient.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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 (106108 => 106109)


--- trunk/Tools/ChangeLog	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Tools/ChangeLog	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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-26  Kevin Ollivier  <[email protected]>
 
         [wx] Unreviewed. Build fix, add WebCore/testing/js

Modified: trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp (106108 => 106109)


--- trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp	2012-01-27 12:38:57 UTC (rev 106108)
+++ trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp	2012-01-27 12:46:18 UTC (rev 106109)
@@ -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