diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API')
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp | 86 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h | 4 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h | 12 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp | 14 |
4 files changed, 14 insertions, 102 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp index 5b43e337d..7fc2e8728 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp @@ -735,16 +735,6 @@ void QQuickWebViewPrivate::setContentPos(const QPointF& pos) q->setContentY(pos.y()); } -QRect QQuickWebViewPrivate::visibleContentsRect() const -{ - Q_Q(const QQuickWebView); - const QRectF visibleRect(q->boundingRect().intersected(pageView->boundingRect())); - - // We avoid using toAlignedRect() because it produces inconsistent width and height. - QRectF mappedRect(q->mapRectToWebContent(visibleRect)); - return QRect(floor(mappedRect.x()), floor(mappedRect.y()), floor(mappedRect.width()), floor(mappedRect.height())); -} - WebCore::IntSize QQuickWebViewPrivate::viewSize() const { return WebCore::IntSize(pageView->width(), pageView->height()); @@ -819,8 +809,6 @@ void QQuickWebViewLegacyPrivate::setZoomFactor(qreal factor) QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate(QQuickWebView* viewport) : QQuickWebViewPrivate(viewport) - , pageIsSuspended(false) - , lastCommittedScale(-1) { // Disable mouse events on the flickable web view so we do not // select text during pan gestures on platforms which send both @@ -846,89 +834,29 @@ void QQuickWebViewFlickablePrivate::onComponentComplete() { Q_Q(QQuickWebView); - interactionEngine.reset(new QtViewportInteractionEngine(q, pageView.data())); + interactionEngine.reset(new QtViewportInteractionEngine(webPageProxy.get(), q, pageView.data())); pageView->eventHandler()->setViewportInteractionEngine(interactionEngine.data()); - QObject::connect(interactionEngine.data(), SIGNAL(contentSuspendRequested()), q, SLOT(_q_suspend())); - QObject::connect(interactionEngine.data(), SIGNAL(contentResumeRequested()), q, SLOT(_q_resume())); - QObject::connect(interactionEngine.data(), SIGNAL(informVisibleContentChange(QPointF)), q, SLOT(_q_onInformVisibleContentChange(QPointF))); - - _q_resume(); - // Trigger setting of correct visibility flags after everything was allocated and initialized. _q_onVisibleChanged(); } void QQuickWebViewFlickablePrivate::didChangeViewportProperties(const WebCore::ViewportAttributes& newAttributes) { - interactionEngine->viewportAttributesChanged(newAttributes); + if (interactionEngine) + interactionEngine->viewportAttributesChanged(newAttributes); } void QQuickWebViewFlickablePrivate::updateViewportSize() { - Q_Q(QQuickWebView); - QSize viewportSize = q->boundingRect().size().toSize(); - - if (viewportSize.isEmpty() || !interactionEngine) - return; - - WebPreferences* wkPrefs = webPageProxy->pageGroup()->preferences(); - wkPrefs->setDeviceWidth(viewportSize.width()); - wkPrefs->setDeviceHeight(viewportSize.height()); - - // Let the WebProcess know about the new viewport size, so that - // it can resize the content accordingly. - webPageProxy->setViewportSize(viewportSize); - - _q_onInformVisibleContentChange(QPointF()); -} - -void QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange(const QPointF& trajectoryVector) -{ - Q_Q(QQuickWebView); - - DrawingAreaProxy* drawingArea = webPageProxy->drawingArea(); - if (!drawingArea) - return; - - QRectF accurateVisibleRect(q->boundingRect()); - accurateVisibleRect.translate(contentPos()); - - if (accurateVisibleRect == drawingArea->contentsRect()) - return; - - float scale = pageView->contentsScale(); - - if (scale != lastCommittedScale) - emit q->experimental()->test()->contentsScaleCommitted(); - lastCommittedScale = scale; - - drawingArea->setVisibleContentsRect(QRect(visibleContentsRect()), scale, trajectoryVector, FloatPoint(accurateVisibleRect.x(), accurateVisibleRect.y())); - - // Ensure that updatePaintNode is always called before painting. - pageView->update(); -} - -void QQuickWebViewFlickablePrivate::_q_suspend() -{ - pageIsSuspended = true; - webPageProxy->suspendActiveDOMObjectsAndAnimations(); -} - -void QQuickWebViewFlickablePrivate::_q_resume() -{ - if (!interactionEngine) - return; - - pageIsSuspended = false; - webPageProxy->resumeActiveDOMObjectsAndAnimations(); - - _q_onInformVisibleContentChange(QPointF()); + // FIXME: Examine why there is not an interactionEngine here in the beginning. + if (interactionEngine) + interactionEngine->viewportItemSizeChanged(); } void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos) { - interactionEngine->pageContentPositionRequest(pos); + interactionEngine->pageContentPositionRequested(pos); } void QQuickWebViewFlickablePrivate::didChangeContentsSize(const QSize& newSize) diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h index cf469fb1e..deb811f7b 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h @@ -205,10 +205,6 @@ private: void emitUrlChangeIfNeeded(); - Q_PRIVATE_SLOT(d_func(), void _q_suspend()); - Q_PRIVATE_SLOT(d_func(), void _q_resume()); - Q_PRIVATE_SLOT(d_func(), void _q_onInformVisibleContentChange(const QPointF&)); - Q_PRIVATE_SLOT(d_func(), void _q_onVisibleChanged()); Q_PRIVATE_SLOT(d_func(), void _q_onUrlChanged()); Q_PRIVATE_SLOT(d_func(), void _q_onReceivedResponseFromDownload(QWebDownloadItem*)); diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h index 69afc2d54..3c3cb7e9b 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h @@ -93,10 +93,6 @@ public: virtual void updateViewportSize() { } void updateTouchViewportSize(); - virtual void _q_suspend() { } - virtual void _q_resume() { } - virtual void _q_onInformVisibleContentChange(const QPointF& trajectory) { }; - virtual qreal zoomFactor() const { return 1; } virtual void setZoomFactor(qreal) { } @@ -128,8 +124,6 @@ public: QPointF contentPos() const; void setContentPos(const QPointF&); - QRect visibleContentsRect() const; - void setDialogActive(bool active) { m_dialogActive = active; } void updateIcon(); @@ -231,17 +225,11 @@ public: virtual WebKit::QtViewportInteractionEngine* viewportInteractionEngine() { return interactionEngine.data(); } virtual void updateViewportSize(); - virtual void _q_suspend(); - virtual void _q_resume(); - virtual void _q_onInformVisibleContentChange(const QPointF& trajectory); - virtual void pageDidRequestScroll(const QPoint& pos); virtual void didChangeContentsSize(const QSize& newSize); private: QScopedPointer<WebKit::QtViewportInteractionEngine> interactionEngine; - bool pageIsSuspended; - float lastCommittedScale; }; #endif // qquickwebview_p_p_h diff --git a/Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp b/Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp index e0a441c0e..13decd7d0 100644 --- a/Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp @@ -122,47 +122,47 @@ QVariant QWebKitTest::contentsScale() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return viewport->currentCSSScale(); - return QVariant(); + return 1.0; } QVariant QWebKitTest::devicePixelRatio() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return viewport->m_devicePixelRatio; - return QVariant(); + return 1.0; } QVariant QWebKitTest::initialScale() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return viewport->m_rawAttributes.initialScale; - return QVariant(); + return 1.0; } QVariant QWebKitTest::minimumScale() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return viewport->m_minimumScale; - return QVariant(); + return 1.0; } QVariant QWebKitTest::maximumScale() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return viewport->m_maximumScale; - return QVariant(); + return 1.0; } QVariant QWebKitTest::isScalable() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return !!viewport->m_rawAttributes.userScalable; - return QVariant(); + return false; } QVariant QWebKitTest::layoutSize() const { if (QtViewportInteractionEngine* viewport = m_webViewPrivate->viewportInteractionEngine()) return QSizeF(viewport->m_rawAttributes.layoutSize); - return QVariant(); + return QSizeF(); } |