diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-16 14:56:46 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-16 14:57:30 +0200 |
commit | b297e0fa5c217c9467033b7c8b46891a52870120 (patch) | |
tree | 43fc14689295e9e64f2719d05aad94e3049f6cd7 /Source/WebKit2/UIProcess/API/qt | |
parent | 69d517dbfa69903d8593cc1737f0474b21e3251e (diff) | |
download | qtwebkit-b297e0fa5c217c9467033b7c8b46891a52870120.tar.gz |
Revert "Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)"
This reverts commit 5466563f4b5b6b86523e3f89bb7f77e5b5270c78.
Caused OOM issues on some CI machines :(
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt')
22 files changed, 79 insertions, 124 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp index 71688cbe6..db51b85dd 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp @@ -158,7 +158,7 @@ void QQuickWebPagePrivate::updateSize() DrawingAreaProxy* drawingArea = webPageProxy->drawingArea(); if (drawingArea && drawingArea->layerTreeCoordinatorProxy()) - drawingArea->layerTreeCoordinatorProxy()->setContentsSize(WebCore::FloatSize(contentsSize)); + drawingArea->layerTreeCoordinatorProxy()->setContentsSize(contentsSize); q->setSize(scaledSize); diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp index 07ed832ce..b78cae0f3 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp @@ -268,7 +268,6 @@ QQuickWebViewPrivate::QQuickWebViewPrivate(QQuickWebView* viewport) , filePicker(0) , databaseQuotaDialog(0) , colorChooser(0) - , m_betweenLoadCommitAndFirstFrame(false) , m_useDefaultContentItemSize(true) , m_navigatorQtObjectEnabled(false) , m_renderToOffscreenBuffer(false) @@ -331,6 +330,14 @@ void QQuickWebViewPrivate::loadDidStop() emit q->loadingChanged(&loadRequest); } +void QQuickWebViewPrivate::onComponentComplete() +{ + Q_Q(QQuickWebView); + m_pageViewportControllerClient.reset(new PageViewportControllerClientQt(q, pageView.data())); + m_pageViewportController.reset(new PageViewportController(webPageProxy.get(), m_pageViewportControllerClient.data())); + pageView->eventHandler()->setViewportController(m_pageViewportControllerClient.data()); +} + void QQuickWebViewPrivate::setTransparentBackground(bool enable) { webPageProxy->setDrawsTransparentBackground(enable); @@ -363,7 +370,6 @@ void QQuickWebViewPrivate::loadDidCommit() Q_Q(QQuickWebView); ASSERT(q->loading()); - m_betweenLoadCommitAndFirstFrame = true; emit q->navigationHistoryChanged(); emit q->titleChanged(); } @@ -446,16 +452,8 @@ void QQuickWebViewPrivate::setNeedsDisplay() q->page()->d->paint(&painter); return; } - q->page()->update(); -} -void QQuickWebViewPrivate::didRenderFrame() -{ - Q_Q(QQuickWebView); - if (m_betweenLoadCommitAndFirstFrame) { - emit q->experimental()->loadVisuallyCommitted(); - m_betweenLoadCommitAndFirstFrame = false; - } + q->page()->update(); } void QQuickWebViewPrivate::processDidCrash() @@ -480,6 +478,8 @@ void QQuickWebViewPrivate::didRelaunchProcess() { qWarning("WARNING: The web process has been successfully restarted."); + // Reset to default so that the later update can reach the web process. + webPageProxy->setCustomDeviceScaleFactor(0); webPageProxy->drawingArea()->setSize(viewSize(), IntSize()); updateViewportSize(); @@ -820,17 +820,12 @@ void QQuickWebViewLegacyPrivate::updateViewportSize() QSizeF viewportSize = q->boundingRect().size(); if (viewportSize.isEmpty()) return; - - float devicePixelRatio = webPageProxy->deviceScaleFactor(); pageView->setContentsSize(viewportSize); - // Make sure that our scale matches the one passed to setVisibleContentsRect. - pageView->setContentsScale(devicePixelRatio); - // The fixed layout is handled by the FrameView and the drawing area doesn't behave differently // whether its fixed or not. We still need to tell the drawing area which part of it // has to be rendered on tiles, and in desktop mode it's all of it. - webPageProxy->drawingArea()->setSize((viewportSize / devicePixelRatio).toSize(), IntSize()); - webPageProxy->drawingArea()->setVisibleContentsRect(FloatRect(FloatPoint(), FloatSize(viewportSize / devicePixelRatio)), devicePixelRatio, FloatPoint()); + webPageProxy->drawingArea()->setSize(viewportSize.toSize(), IntSize()); + webPageProxy->drawingArea()->setVisibleContentsRect(FloatRect(FloatPoint(), viewportSize), 1, FloatPoint()); } qreal QQuickWebViewLegacyPrivate::zoomFactor() const @@ -858,11 +853,6 @@ void QQuickWebViewFlickablePrivate::onComponentComplete() { QQuickWebViewPrivate::onComponentComplete(); - Q_Q(QQuickWebView); - m_pageViewportControllerClient.reset(new PageViewportControllerClientQt(q, pageView.data())); - m_pageViewportController.reset(new PageViewportController(webPageProxy.get(), m_pageViewportControllerClient.data())); - pageView->eventHandler()->setViewportController(m_pageViewportControllerClient.data()); - // Trigger setting of correct visibility flags after everything was allocated and initialized. _q_onVisibleChanged(); } @@ -878,7 +868,7 @@ void QQuickWebViewFlickablePrivate::updateViewportSize() Q_Q(QQuickWebView); if (m_pageViewportController) - m_pageViewportController->didChangeViewportSize(FloatSize(q->width(), q->height())); + m_pageViewportController->didChangeViewportSize(QSizeF(q->width(), q->height())); } void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos) @@ -887,6 +877,13 @@ void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos) m_pageViewportController->pageDidRequestScroll(pos); } +void QQuickWebViewFlickablePrivate::didChangeContentsSize(const QSize& newSize) +{ + QQuickWebViewPrivate::didChangeContentsSize(newSize); + pageView->setContentsSize(newSize); // emits contentsSizeChanged() + m_pageViewportController->didChangeContentsSize(newSize); +} + void QQuickWebViewFlickablePrivate::handleMouseEvent(QMouseEvent* event) { if (!pageView->eventHandler()) @@ -1236,7 +1233,7 @@ void QQuickWebViewExperimental::setDevicePixelRatio(qreal devicePixelRatio) if (0 >= devicePixelRatio || devicePixelRatio == this->devicePixelRatio()) return; - d->webPageProxy->setIntrinsicDeviceScaleFactor(devicePixelRatio); + d->webPageProxy->setCustomDeviceScaleFactor(devicePixelRatio); emit devicePixelRatioChanged(); } diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h index 89e7fbc99..e8b1bf7a1 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h @@ -355,7 +355,6 @@ public Q_SLOTS: void evaluateJavaScript(const QString& script, const QJSValue& value = QJSValue()); Q_SIGNALS: - void loadVisuallyCommitted(); void alertDialogChanged(); void confirmDialogChanged(); void promptDialogChanged(); diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h index 15bf818d7..f172ad68f 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h @@ -70,7 +70,7 @@ public: virtual void initialize(WKContextRef contextRef = 0, WKPageGroupRef pageGroupRef = 0); - virtual void onComponentComplete() { } + virtual void onComponentComplete(); virtual void provisionalLoadDidStart(const WTF::String& url); virtual void didReceiveServerRedirectForProvisionalLoad(const WTF::String& url); @@ -88,9 +88,8 @@ public: int loadProgress() const { return m_loadProgress; } void setNeedsDisplay(); - void didRenderFrame(); - virtual WebKit::PageViewportController* viewportController() const { return 0; } + WebKit::PageViewportController* viewportController() const { return m_pageViewportController.data(); } virtual void updateViewportSize() { } void updateTouchViewportSize(); @@ -131,6 +130,7 @@ public: WebCore::IntSize viewSize() const; void didReceiveMessageFromNavigatorQtObject(const String& message); virtual void pageDidRequestScroll(const QPoint& pos) { } + virtual void didChangeContentsSize(const QSize& newSize) { } void processDidCrash(); void didRelaunchProcess(); PassOwnPtr<WebKit::DrawingAreaProxy> createDrawingAreaProxy(); @@ -172,6 +172,9 @@ protected: QScopedPointer<QQuickWebPage> pageView; QQuickWebView* q_ptr; + QScopedPointer<WebKit::PageViewportController> m_pageViewportController; + QScopedPointer<WebKit::PageViewportControllerClientQt> m_pageViewportControllerClient; + FlickableAxisLocker axisLocker; QQmlComponent* alertDialog; @@ -187,7 +190,6 @@ protected: QList<QUrl> userScripts; - bool m_betweenLoadCommitAndFirstFrame; bool m_useDefaultContentItemSize; bool m_navigatorQtObjectEnabled; bool m_renderToOffscreenBuffer; @@ -218,15 +220,11 @@ public: virtual void onComponentComplete(); virtual void didChangeViewportProperties(const WebCore::ViewportAttributes&); - virtual WebKit::PageViewportController* viewportController() const { return m_pageViewportController.data(); } virtual void updateViewportSize(); virtual void pageDidRequestScroll(const QPoint& pos); + virtual void didChangeContentsSize(const QSize& newSize); virtual void handleMouseEvent(QMouseEvent*); - -private: - QScopedPointer<WebKit::PageViewportController> m_pageViewportController; - QScopedPointer<WebKit::PageViewportControllerClientQt> m_pageViewportControllerClient; }; #endif // qquickwebview_p_p_h diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp index 5f6c16d56..0a7a684cf 100644 --- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp @@ -167,11 +167,6 @@ void QRawWebViewPrivate::toolTipChanged(const String&, const String& newTooltip) notImplemented(); } -void QRawWebViewPrivate::pageTransitionViewportReady() -{ - m_webPageProxy->commitPageTransitionViewport(); -} - void QRawWebViewPrivate::startDrag(const WebCore::DragData& dragData, PassRefPtr<WebKit::ShareableBitmap> dragImage) { notImplemented(); @@ -324,7 +319,6 @@ void QRawWebView::setActive(bool active) { d->m_active = active; d->m_webPageProxy->viewStateDidChange(WebKit::WebPageProxy::ViewWindowIsActive); - layerTreeRenderer()->setActive(active); } QSize QRawWebView::size() const @@ -358,20 +352,17 @@ WKPageRef QRawWebView::pageRef() return toAPI(d->m_webPageProxy.get()); } -WebKit::LayerTreeRenderer* QRawWebView::layerTreeRenderer() const +void QRawWebView::paint(const QMatrix4x4& transform, float opacity, unsigned paintFlags) { WebKit::DrawingAreaProxy* drawingArea = d->m_webPageProxy->drawingArea(); if (!drawingArea) - return 0; - WebKit::LayerTreeCoordinatorProxy* layerTreeCoordinatorProxy = drawingArea->layerTreeCoordinatorProxy(); - if (!layerTreeCoordinatorProxy) - return 0; - return layerTreeCoordinatorProxy->layerTreeRenderer(); -} + return; -void QRawWebView::paint(const QMatrix4x4& transform, float opacity, unsigned paintFlags) -{ - WebKit::LayerTreeRenderer* renderer = layerTreeRenderer(); + WebKit::LayerTreeCoordinatorProxy* coordinatorProxy = drawingArea->layerTreeCoordinatorProxy(); + if (!coordinatorProxy) + return; + + WebKit::LayerTreeRenderer* renderer = coordinatorProxy->layerTreeRenderer(); if (!renderer) return; diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h index 015815ad8..f8f15b06d 100644 --- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h +++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h @@ -47,10 +47,6 @@ QT_END_NAMESPACE class QRawWebViewPrivate; -namespace WebKit { -class LayerTreeRenderer; -} - class QRawWebViewClient { public: virtual ~QRawWebViewClient() { } @@ -101,8 +97,6 @@ public: void sendTouchEvent(QTouchEvent*); private: - WebKit::LayerTreeRenderer* layerTreeRenderer() const; - QRawWebViewPrivate* d; }; diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h index 545096d02..55bc85ba0 100644 --- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h +++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h @@ -82,7 +82,6 @@ public: virtual void setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves); virtual void toolTipChanged(const String&, const String& newTooltip); - virtual void pageTransitionViewportReady(); virtual void startDrag(const WebCore::DragData& dragData, PassRefPtr<WebKit::ShareableBitmap> dragImage); @@ -105,7 +104,6 @@ public: virtual void didRelaunchProcess(); virtual void setViewNeedsDisplay(const WebCore::IntRect& rect); virtual void didChangeContentsSize(const WebCore::IntSize& newSize); - virtual void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect) { } virtual void setCursor(const WebCore::Cursor&); virtual bool isViewFocused() { return m_focused; } diff --git a/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro b/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro index bc5307f2d..4a8d86f80 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro @@ -1,4 +1,4 @@ include(../tests.pri) SOURCES += $${TARGET}.cpp -QT += webkitwidgets-private +QT += webkit-private DEFINES += IMPORT_DIR=\"\\\"$${ROOT_BUILD_DIR}$${QMAKE_DIR_SEP}imports\\\"\" diff --git a/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro b/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro index ba8f4cea3..02dc197c7 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro @@ -1,3 +1,3 @@ include(../tests.pri) SOURCES += $${TARGET}.cpp -QT += webkitwidgets-private +QT += webkit-private diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro index 7c72fd2f1..3fd3d4583 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro @@ -3,7 +3,7 @@ SOURCES += tst_qmltests.cpp TARGET = tst_qmltests_DesktopBehavior OBJECTS_DIR = obj_DesktopBehavior/$$activeBuildConfig() -QT += webkitwidgets-private +QT += webkit-private CONFIG += warn_on testcase QT += qmltest diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro index 3e217b369..b340235e4 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro @@ -3,7 +3,7 @@ SOURCES += tst_qmltests.cpp TARGET = tst_qmltests_WebView OBJECTS_DIR = obj_WebView/$$activeBuildConfig() -QT += webkitwidgets-private +QT += webkit-private CONFIG += warn_on testcase QT += qmltest diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml index d21ef211a..691455708 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml @@ -40,7 +40,6 @@ Item { TestCase { name: "DoubleTapToZoom" - when: windowShown property variant test: webView.experimental.test @@ -79,7 +78,7 @@ Item { function test_basic() { webView.url = webView.content - verify(webView.waitForViewportReady()) + verify(webView.waitForLoadSucceeded()) compare(documentSize(), "480x720") diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml index fcd3d9301..f12da5de8 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml @@ -38,7 +38,6 @@ Item { TestCase { name: "FitToView" - when: windowShown property variant test: webView.experimental.test @@ -70,7 +69,7 @@ Item { function test_basic() { webView.url = webView.content - verify(webView.waitForViewportReady()) + verify(webView.waitForLoadSucceeded()) compare(documentSize(), "480x720") compare(test.contentsScale, 1.0) diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml index aa6d711a1..1fc1559ab 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml @@ -21,13 +21,12 @@ Item { TestCase { name: "WheelEventHandling" - when: windowShown property variant test: webView.experimental.test function init() { webView.url = Qt.resolvedUrl("../common/test4.html") - verify(webView.waitForViewportReady()) + verify(webView.waitForLoadSucceeded()) webView.contentY = 0 } @@ -39,7 +38,7 @@ Item { scrollSpy.wait() var position = webView.contentY webView.reload() - verify(webView.waitForViewportReady()) + verify(webView.waitForLoadSucceeded()) // The check below will fail if the previous position was not restored after reload. verify(position == webView.contentY) } @@ -47,7 +46,7 @@ Item { function test_wheelScrollEventAfterReload() { scrollSpy.clear() webView.reload() - verify(webView.waitForViewportReady()) + verify(webView.waitForLoadSucceeded()) var centerPoint = Qt.point(webView.width / 2, webView.height / 2) test.wheelEvent(webView, centerPoint.x, centerPoint.y, -500); // The signal spy below will time out if the wheel event did not scroll the content. diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml index 5a05f9b3e..0dd7bccee 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml +++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml @@ -5,47 +5,43 @@ import QtWebKit.experimental 1.0 WebView { property var loadStatus: null - property var viewportReady: false function waitForLoadSucceeded() { - var success = _waitFor(function() { return loadStatus == WebView.LoadSucceededStatus }) + var timeout = 5000 + var i = 0 + while (i < timeout && loadStatus != WebView.LoadSucceededStatus) { + testResult.wait(50) + i += 50 + } + var success = loadStatus == WebView.LoadSucceededStatus loadStatus = null return success } - function waitForViewportReady() { - // Note: You need to have "when: windowShown" in your TestCase for this to work. - // The viewport is locked until the first frame is rendered, and the rendering isn't - // activated until the WebView is visible in a mapped QQuickView. - return _waitFor(function() { return viewportReady }) - } function waitForLoadFailed() { - var failure = _waitFor(function() { return loadStatus == WebView.LoadFailedStatus }) + var timeout = 5000 + var i = 0 + while (i < timeout && loadStatus != WebView.LoadFailedStatus) { + testResult.wait(50) + i += 50 + } + var failure = loadStatus == WebView.LoadFailedStatus loadStatus = null return failure } function waitForLoadStopped() { - var stop = _waitFor(function() { return loadStatus == WebView.LoadStoppedStatus }) - loadStatus = null - return stop - } - function _waitFor(predicate) { var timeout = 5000 var i = 0 - while (i < timeout && !predicate()) { + while (i < timeout && loadStatus != WebView.LoadStoppedStatus) { testResult.wait(50) i += 50 } - return predicate() + var stop = loadStatus == WebView.LoadStoppedStatus + loadStatus = null + return stop } TestResult { id: testResult } - experimental.onLoadVisuallyCommitted: viewportReady = true - onLoadingChanged: { - loadStatus = loadRequest.status - if (loadRequest.status == WebView.LoadStartedStatus) - viewportReady = false - } - + onLoadingChanged: loadStatus = loadRequest.status } diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro index bc5307f2d..4a8d86f80 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro @@ -1,4 +1,4 @@ include(../tests.pri) SOURCES += $${TARGET}.cpp -QT += webkitwidgets-private +QT += webkit-private DEFINES += IMPORT_DIR=\"\\\"$${ROOT_BUILD_DIR}$${QMAKE_DIR_SEP}imports\\\"\" diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp index 558053729..5b98ae7b7 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp @@ -440,11 +440,10 @@ void tst_QQuickWebView::inputMethodHints() void tst_QQuickWebView::scrollRequest() { - m_window->setGeometry(0, 0, 300, 400); - m_window->show(); + webView()->setSize(QSizeF(300, 400)); webView()->setUrl(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/scroll.html"))); - QVERIFY(waitForViewportReady(webView())); + QVERIFY(waitForLoadSucceeded(webView())); // COMPARE with the position requested in the html // Use qRound as that is also used when calculating the position diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro index ba8f4cea3..02dc197c7 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro +++ b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro @@ -1,3 +1,3 @@ include(../tests.pri) SOURCES += $${TARGET}.cpp -QT += webkitwidgets-private +QT += webkit-private diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp index 208288d1e..31102b876 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp @@ -27,7 +27,6 @@ #include <WebKit2/WKContext.h> #include <WebKit2/WKPageGroup.h> -#include <WebKit2/WKPageLoadTypes.h> #include <WebKit2/WKPreferences.h> #include <WebKit2/WKPreferencesPrivate.h> #include <WebKit2/WKStringQt.h> @@ -61,18 +60,15 @@ class WebView : public QObject, public QRawWebViewClient { public: WebView(const QSize& size, bool transparent = false) { - m_webView = new QRawWebView(webContext(), webPageGroup(QString()), this); - m_webView->setTransparentBackground(transparent); - m_webView->create(); - WKPageLoaderClient loaderClient; memset(&loaderClient, 0, sizeof(WKPageLoaderClient)); - loaderClient.version = kWKPageLoaderClientCurrentVersion; loaderClient.clientInfo = this; - loaderClient.didLayout = WebView::didLayout; + loaderClient.didFirstVisuallyNonEmptyLayoutForFrame = WebView::finishFirstLayoutForFrame; + m_webView = new QRawWebView(webContext(), webPageGroup(QString()), this); WKPageSetPageLoaderClient(m_webView->pageRef(), &loaderClient); - WKPageListenForLayoutMilestones(m_webView->pageRef(), kWKDidFirstVisuallyNonEmptyLayout); + m_webView->setTransparentBackground(transparent); + m_webView->create(); WKPageSetUseFixedLayout(m_webView->pageRef(), true); m_webView->setSize(size); @@ -122,7 +118,7 @@ public: static_cast<WebView*>(context)->onRepaintDone(); } - static void didLayout(WKPageRef page, WKLayoutMilestones milestones, WKTypeRef userData, const void *clientInfo) + static void finishFirstLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) { static_cast<WebView*>(const_cast<void*>(clientInfo))->frameLoaded(); } @@ -156,9 +152,7 @@ public: tst_qrawwebview() : m_resourceDir(QString::fromLatin1(TESTS_SOURCE_DIR "/html/resources")) , m_baseUrl(QUrl::fromLocalFile(TESTS_SOURCE_DIR "/html").toString()) - { - addQtWebProcessToPath(); - } + { } private Q_SLOTS: void paint() { run(&tst_qrawwebview::doPaint, m_resourceDir + "/qwkview_paint.png"); } diff --git a/Source/WebKit2/UIProcess/API/qt/tests/tests.pri b/Source/WebKit2/UIProcess/API/qt/tests/tests.pri index 123b25ce2..a1133530d 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/tests.pri +++ b/Source/WebKit2/UIProcess/API/qt/tests/tests.pri @@ -6,7 +6,7 @@ TARGET = tst_$$TARGET INCLUDEPATH += $$PWD SOURCES += ../util.cpp -QT += testlib webkitwidgets +QT += testlib webkit have?(QTQUICK) { QT += qml quick quick-private HEADERS += ../bytearraytestdata.h \ diff --git a/Source/WebKit2/UIProcess/API/qt/tests/util.cpp b/Source/WebKit2/UIProcess/API/qt/tests/util.cpp index fce3cc7f6..4525e882b 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/util.cpp +++ b/Source/WebKit2/UIProcess/API/qt/tests/util.cpp @@ -57,10 +57,10 @@ bool waitForSignal(QObject* obj, const char* signal, int timeout) return timeoutSpy.isEmpty(); } -static void messageHandler(QtMsgType type, const QMessageLogContext&, const QString& message) +static void messageHandler(QtMsgType type, const char* message) { if (type == QtCriticalMsg) { - fprintf(stderr, "%s\n", qPrintable(message)); + fprintf(stderr, "%s\n", message); return; } // Do nothing @@ -68,7 +68,7 @@ static void messageHandler(QtMsgType type, const QMessageLogContext&, const QStr void suppressDebugOutput() { - qInstallMessageHandler(messageHandler); \ + qInstallMsgHandler(messageHandler); \ if (qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT").isEmpty()) \ qputenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT", "1"); } @@ -126,13 +126,6 @@ bool waitForLoadFailed(QQuickWebView* webView, int timeout) return timeoutSpy.isEmpty(); } -bool waitForViewportReady(QQuickWebView* webView, int timeout) -{ - // The viewport is locked until the first frame of a page load is rendered. - // The QQuickView needs to be shown for this to succeed. - return waitForSignal(webView->experimental(), SIGNAL(loadVisuallyCommitted()), timeout); -} - LoadStartedCatcher::LoadStartedCatcher(QQuickWebView* webView) : m_webView(webView) { diff --git a/Source/WebKit2/UIProcess/API/qt/tests/util.h b/Source/WebKit2/UIProcess/API/qt/tests/util.h index 4834029b4..0c14a1ff4 100644 --- a/Source/WebKit2/UIProcess/API/qt/tests/util.h +++ b/Source/WebKit2/UIProcess/API/qt/tests/util.h @@ -36,7 +36,6 @@ void suppressDebugOutput(); #if defined(HAVE_QTQUICK) && HAVE_QTQUICK bool waitForLoadSucceeded(QQuickWebView* webView, int timeout = 10000); bool waitForLoadFailed(QQuickWebView* webView, int timeout = 10000); -bool waitForViewportReady(QQuickWebView* webView, int timeout = 10000); class LoadStartedCatcher : public QObject { Q_OBJECT |