[Qt][WK2] Do not apply new viewport properties until after the first visually non...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Nov 2011 10:56:26 +0000 (10:56 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Nov 2011 10:56:26 +0000 (10:56 +0000)
commit8e6f9da064ec9232234f5bf5ef06aa76e087bee4
treed6094600b19701dc81cd3fe19547e94c236ad2db
parent81e8c83257925dd0d9861f7e85e69ddd3c5c30a6
[Qt][WK2] Do not apply new viewport properties until after the first visually non-empty layout.
https://bugs.webkit.org/show_bug.cgi?id=72508

Delay applying viewport properties on the viewport item until after the first visually non-empty
layout finished. It enables the viewport to be intact until the new page is ready to be rendered.

Patch by Zalan Bujtas <zbujtas@gmail.com> on 2011-11-17
Reviewed by Kenneth Rohde Christiansen.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewPrivate::loadDidCommit):
(QQuickWebViewPrivate::didFinishFirstNonEmptyLayout):
(QQuickWebViewPrivate::didChangeContentsSize):
(QQuickWebViewPrivate::didChangeViewportProperties):
(QQuickWebViewPrivate::updateViewportSize):
(QQuickWebViewPrivate::computeViewportConstraints):
* UIProcess/API/qt/qquickwebview_p.h:
(PostTransitionState::isTransitioningToNewPage):
* UIProcess/qt/ClientImpl.cpp:
(qt_wk_didFirstVisuallyNonEmptyLayoutForFrame):
(setupPageLoaderClient):
* UIProcess/qt/QtViewInterface.cpp:
(WebKit::QtViewInterface::didFinishFirstNonEmptyLayout):
(WebKit::QtViewInterface::didChangeContentsSize):
(WebKit::QtViewInterface::didChangeViewportProperties):
(WebKit::QtViewInterface::startDrag):
* UIProcess/qt/QtViewInterface.h:
* UIProcess/qt/QtViewportInteractionEngine.cpp:
(WebKit::QtViewportInteractionEngine::reset):
(WebKit::QtViewportInteractionEngine::applyConstraints):
* UIProcess/qt/QtViewportInteractionEngine.h:
* UIProcess/qt/QtWebPageProxy.cpp:
(QtWebPageProxy::didFinishFirstNonEmptyLayout):
(QtWebPageProxy::didChangeContentsSize):
(QtWebPageProxy::didChangeViewportProperties):
(QtWebPageProxy::startDrag):
* UIProcess/qt/QtWebPageProxy.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@100590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
Source/WebKit2/UIProcess/qt/ClientImpl.cpp
Source/WebKit2/UIProcess/qt/QtViewInterface.cpp
Source/WebKit2/UIProcess/qt/QtViewInterface.h
Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp
Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h
Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp
Source/WebKit2/UIProcess/qt/QtWebPageProxy.h