Title: [118493] trunk/Source/WebKit2
Revision
118493
Author
[email protected]
Date
2012-05-25 01:29:31 -0700 (Fri, 25 May 2012)

Log Message

[Qt][WK2] Fix failing qmltests::FitToView::test_basic()
https://bugs.webkit.org/show_bug.cgi?id=87236

Patch by Zalan Bujtas <[email protected]> on 2012-05-25
Reviewed by Kenneth Rohde Christiansen.

Rename contentViewportChanged to informVisibleContentChange() to
reflect its functionality better. Centralize m_hadUserInteraction flag
setting and add assertions on it to ensure that designated
functions are called only on user interaction.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewFlickablePrivate::onComponentComplete):
(QQuickWebViewFlickablePrivate::updateViewportSize):
(QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
(QQuickWebViewFlickablePrivate::_q_resume):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate::_q_onInformVisibleContentChange):
(QQuickWebViewFlickablePrivate):
* UIProcess/qt/QtViewportInteractionEngine.cpp:
(WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
(WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
(WebKit::QtViewportInteractionEngine::pagePositionRequest):
(WebKit::QtViewportInteractionEngine::touchBegin):
(WebKit::QtViewportInteractionEngine::focusEditableArea):
(WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
(WebKit::QtViewportInteractionEngine::panGestureStarted):
(WebKit::QtViewportInteractionEngine::pinchGestureStarted):
* UIProcess/qt/QtViewportInteractionEngine.h:
(QtViewportInteractionEngine):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (118492 => 118493)


--- trunk/Source/WebKit2/ChangeLog	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/ChangeLog	2012-05-25 08:29:31 UTC (rev 118493)
@@ -1,3 +1,36 @@
+2012-05-25  Zalan Bujtas  <[email protected]>
+
+        [Qt][WK2] Fix failing qmltests::FitToView::test_basic()
+        https://bugs.webkit.org/show_bug.cgi?id=87236
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Rename contentViewportChanged to informVisibleContentChange() to
+        reflect its functionality better. Centralize m_hadUserInteraction flag
+        setting and add assertions on it to ensure that designated
+        functions are called only on user interaction.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewFlickablePrivate::onComponentComplete):
+        (QQuickWebViewFlickablePrivate::updateViewportSize):
+        (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
+        (QQuickWebViewFlickablePrivate::_q_resume):
+        * UIProcess/API/qt/qquickwebview_p.h:
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate::_q_onInformVisibleContentChange):
+        (QQuickWebViewFlickablePrivate):
+        * UIProcess/qt/QtViewportInteractionEngine.cpp:
+        (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+        (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
+        (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+        (WebKit::QtViewportInteractionEngine::touchBegin):
+        (WebKit::QtViewportInteractionEngine::focusEditableArea):
+        (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
+        (WebKit::QtViewportInteractionEngine::panGestureStarted):
+        (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
+        * UIProcess/qt/QtViewportInteractionEngine.h:
+        (QtViewportInteractionEngine):
+
 2012-05-24  Tim Horton  <[email protected]>
 
         Add feature defines for web-facing parts of CSS Regions and Exclusions

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (118492 => 118493)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-05-25 08:29:31 UTC (rev 118493)
@@ -813,7 +813,7 @@
 
     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(contentViewportChanged(QPointF)), q, SLOT(_q_contentViewportChanged(QPointF)));
+    QObject::connect(interactionEngine.data(), SIGNAL(informVisibleContentChange(QPointF)), q, SLOT(_q_onInformVisibleContentChange(QPointF)));
 
     _q_resume();
 
@@ -865,10 +865,10 @@
     // it can resize the content accordingly.
     webPageProxy->setViewportSize(viewportSize);
 
-    _q_contentViewportChanged(QPointF());
+    _q_onInformVisibleContentChange(QPointF());
 }
 
-void QQuickWebViewFlickablePrivate::_q_contentViewportChanged(const QPointF& trajectoryVector)
+void QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange(const QPointF& trajectoryVector)
 {
     Q_Q(QQuickWebView);
 
@@ -903,7 +903,7 @@
     pageIsSuspended = false;
     webPageProxy->resumeActiveDOMObjectsAndAnimations();
 
-    _q_contentViewportChanged(QPointF());
+    _q_onInformVisibleContentChange(QPointF());
 }
 
 void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos)

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h (118492 => 118493)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-05-25 08:29:31 UTC (rev 118493)
@@ -207,7 +207,7 @@
 
     Q_PRIVATE_SLOT(d_func(), void _q_suspend());
     Q_PRIVATE_SLOT(d_func(), void _q_resume());
-    Q_PRIVATE_SLOT(d_func(), void _q_contentViewportChanged(const QPointF&));
+    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());

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (118492 => 118493)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-05-25 08:29:31 UTC (rev 118493)
@@ -95,7 +95,7 @@
 
     virtual void _q_suspend() { }
     virtual void _q_resume() { }
-    virtual void _q_contentViewportChanged(const QPointF& trajectory) { };
+    virtual void _q_onInformVisibleContentChange(const QPointF& trajectory) { };
 
     virtual qreal zoomFactor() const { return 1; }
     virtual void setZoomFactor(qreal) { }
@@ -231,7 +231,7 @@
 
     virtual void _q_suspend();
     virtual void _q_resume();
-    virtual void _q_contentViewportChanged(const QPointF& trajectory);
+    virtual void _q_onInformVisibleContentChange(const QPointF& trajectory);
 
     virtual void pageDidRequestScroll(const QPoint& pos);
     virtual void didChangeContentsSize(const QSize& newSize);

Modified: trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp (118492 => 118493)


--- trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp	2012-05-25 08:29:31 UTC (rev 118493)
@@ -85,7 +85,7 @@
         }
 
         // Make sure that tiles all around the viewport will be requested.
-        emit engine->contentViewportChanged(QPointF());
+        emit engine->informVisibleContentChange(QPointF());
     }
 
 private:
@@ -246,7 +246,7 @@
 {
     QPointF newPosition = m_viewport->contentPos();
 
-    emit contentViewportChanged(m_lastScrollPosition - newPosition);
+    emit informVisibleContentChange(m_lastScrollPosition - newPosition);
 
     m_lastScrollPosition = newPosition;
 }
@@ -289,11 +289,13 @@
     setItemRectVisible(endVisibleContentRect);
 
     // Make sure that tiles all around the viewport will be requested.
-    emit contentViewportChanged(QPointF());
+    emit informVisibleContentChange(QPointF());
 }
 
 void QtViewportInteractionEngine::touchBegin()
 {
+    m_hadUserInteraction = true;
+
     // Prevents resuming the page between the user's flicks of the page while the animation is running.
     if (scrollAnimationActive())
         m_touchUpdateDeferrer = adoptPtr(new ViewportUpdateDeferrer(this, ViewportUpdateDeferrer::DeferUpdateAndSuspendContent));
@@ -317,6 +319,9 @@
 
 void QtViewportInteractionEngine::focusEditableArea(const QRectF& caretArea, const QRectF& targetArea)
 {
+    // This can only happen as a result of a user interaction.
+    ASSERT(m_hadUserInteraction);
+
     QRectF endArea = itemRectFromCSS(targetArea);
 
     qreal endItemScale = itemScaleFromCSS(innerBoundedCSSScale(2.0));
@@ -351,14 +356,15 @@
 
 void QtViewportInteractionEngine::zoomToAreaGestureEnded(const QPointF& touchPoint, const QRectF& targetArea)
 {
+    // This can only happen as a result of a user interaction.
+    ASSERT(m_hadUserInteraction);
+
     if (!targetArea.isValid())
         return;
 
     if (m_suspendCount)
         return;
 
-    m_hadUserInteraction = true;
-
     const int margin = 10; // We want at least a little bit of margin.
     QRectF endArea = itemRectFromCSS(targetArea.adjusted(-margin, -margin, margin, margin));
 
@@ -500,7 +506,9 @@
 
 void QtViewportInteractionEngine::panGestureStarted(const QPointF& position, qint64 eventTimestampMillis)
 {
-    m_hadUserInteraction = true;
+    // This can only happen as a result of a user interaction.
+    ASSERT(m_hadUserInteraction);
+
     m_viewport->handleFlickableMousePress(position, eventTimestampMillis);
     m_lastPinchCenterInViewportCoordinates = position;
 }
@@ -561,10 +569,12 @@
 
 void QtViewportInteractionEngine::pinchGestureStarted(const QPointF& pinchCenterInViewportCoordinates)
 {
+    // This can only happen as a result of a user interaction.
+    ASSERT(m_hadUserInteraction);
+
     if (!m_allowsUserScaling)
         return;
 
-    m_hadUserInteraction = true;
     m_scaleStack.clear();
     m_zoomOutScale = 0.0;
 
@@ -574,7 +584,7 @@
     m_pinchStartScale = m_content->contentsScale();
 
     // Reset the tiling look-ahead vector so that tiles all around the viewport will be requested on pinch-end.
-    emit contentViewportChanged(QPointF());
+    emit informVisibleContentChange(QPointF());
 }
 
 void QtViewportInteractionEngine::pinchGestureRequestUpdate(const QPointF& pinchCenterInViewportCoordinates, qreal totalScaleFactor)

Modified: trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h (118492 => 118493)


--- trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h	2012-05-25 08:09:51 UTC (rev 118492)
+++ trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h	2012-05-25 08:29:31 UTC (rev 118493)
@@ -96,9 +96,8 @@
     void contentSuspendRequested();
     void contentResumeRequested();
 
-    void contentViewportChanged(const QPointF& trajectory = QPointF());
+    void informVisibleContentChange(const QPointF& trajectory = QPointF());
 
-    void viewportTrajectoryVectorChanged(const QPointF&);
     void visibleContentRectAndScaleChanged();
 
 private Q_SLOTS:
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to