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/qquickwebview.cpp | |
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/qquickwebview.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp | 47 |
1 files changed, 22 insertions, 25 deletions
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(); } |