summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API')
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp86
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h4
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h12
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qwebkittest.cpp14
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();
}