Changeset 148011 in webkit
- Timestamp:
- Apr 9, 2013 4:53:26 AM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r148008 r148011 1 2013-04-09 Michael Brüning <michael.bruning@digia.com> 2 3 [Qt][WK2] Remove direct references to WebPageProxy from QQuickWebPage. 4 https://bugs.webkit.org/show_bug.cgi?id=112850 5 6 Reviewed by Andreas Kling. 7 8 Removes direct references to WebPageProxy from QQuickWebPage and prepares the 9 class for the move to QRawWebView. The access to the device scale factor and 10 CoordinatedGraphicsScene is provided through QQuickWebViewPrivate, and therefore 11 accessors to these properties are temporarily added. Eventually, this access will 12 be provided through QRawWebView when the move is complete. 13 14 This also moves the pointer to QtWebPageEventHandler from QQuickWebPagePrivate 15 to QQuickWebViewPrivate as it is mainly used from there. 16 17 * UIProcess/API/qt/qquickwebpage.cpp: 18 (QQuickWebPagePrivate::QQuickWebPagePrivate): 19 (QQuickWebPagePrivate::paint): 20 (QQuickWebPage::updatePaintNode): 21 * UIProcess/API/qt/qquickwebpage_p.h: 22 * UIProcess/API/qt/qquickwebpage_p_p.h: 23 (QQuickWebPagePrivate): 24 * UIProcess/API/qt/qquickwebview.cpp: 25 (QQuickWebViewPrivate::initialize): 26 (QQuickWebViewPrivate::handleMouseEvent): 27 (QQuickWebViewPrivate::processDidCrash): 28 (QQuickWebViewPrivate::coordinatedGraphicsScene): 29 (QQuickWebViewPrivate::deviceScaleFactor): 30 (QQuickWebViewPrivate::setIntrinsicDeviceScaleFactor): 31 (QQuickWebViewFlickablePrivate::onComponentComplete): 32 (QQuickWebView::keyPressEvent): 33 (QQuickWebView::keyReleaseEvent): 34 (QQuickWebView::inputMethodEvent): 35 (QQuickWebView::focusInEvent): 36 (QQuickWebView::itemChange): 37 (QQuickWebView::touchEvent): 38 (QQuickWebView::wheelEvent): 39 (QQuickWebView::hoverEnterEvent): 40 (QQuickWebView::hoverMoveEvent): 41 (QQuickWebView::hoverLeaveEvent): 42 (QQuickWebView::dragMoveEvent): 43 (QQuickWebView::dragEnterEvent): 44 (QQuickWebView::dragLeaveEvent): 45 (QQuickWebView::dropEvent): 46 * UIProcess/API/qt/qquickwebview_p_p.h: 47 (WebCore): 48 (WebKit): 49 (QQuickWebViewPrivate): 50 1 51 2013-04-09 Michael Brüning <michael.bruning@digia.com> 2 52 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
r142579 r148011 22 22 #include "qquickwebpage_p.h" 23 23 24 #include "CoordinatedLayerTreeHostProxy.h"25 24 #include "QtWebPageEventHandler.h" 26 25 #include "QtWebPageSGNode.h" 27 26 #include "TransformationMatrix.h" 28 #include "WebPageProxy.h"29 27 #include "qquickwebpage_p_p.h" 30 28 #include "qquickwebview_p.h" 29 #include "qquickwebview_p_p.h" 31 30 #include "qwebkittest_p.h" 32 31 #include <QQuickWindow> … … 55 54 : q(q) 56 55 , viewportItem(viewportItem) 57 , webPageProxy(0)58 56 , paintingIsInitialized(false) 59 57 , contentsScale(1) … … 61 59 } 62 60 63 void QQuickWebPagePrivate:: initialize(WebKit::WebPageProxy* webPageProxy)61 void QQuickWebPagePrivate::paint(QPainter* painter) 64 62 { 65 this->webPageProxy = webPageProxy;66 eventHandler.reset(new QtWebPageEventHandler(toAPI(webPageProxy), q, viewportItem));63 if (WebCore::CoordinatedGraphicsScene* scene = QQuickWebViewPrivate::get(viewportItem)->coordinatedGraphicsScene()) 64 scene->paintToGraphicsContext(painter); 67 65 } 68 66 69 void QQuickWebPagePrivate::paint(QPainter* painter)70 {71 if (!webPageProxy->drawingArea())72 return;73 74 if (coordinatedLayerTreeHostProxy()->coordinatedGraphicsScene())75 coordinatedLayerTreeHostProxy()->coordinatedGraphicsScene()->paintToGraphicsContext(painter);76 }77 78 CoordinatedLayerTreeHostProxy* QQuickWebPagePrivate::coordinatedLayerTreeHostProxy()79 {80 if (webPageProxy->drawingArea())81 return webPageProxy->drawingArea()->coordinatedLayerTreeHostProxy();82 83 return 0;84 }85 67 86 68 QSGNode* QQuickWebPage::updatePaintNode(QSGNode* oldNode, UpdatePaintNodeData*) 87 69 { 88 if (!d->webPageProxy->drawingArea()) 70 QQuickWebViewPrivate* webViewPrivate = QQuickWebViewPrivate::get(d->viewportItem); 71 72 WebCore::CoordinatedGraphicsScene* scene = webViewPrivate->coordinatedGraphicsScene(); 73 if (!scene) 89 74 return oldNode; 90 91 WebCore::CoordinatedGraphicsScene* scene = d->coordinatedLayerTreeHostProxy()->coordinatedGraphicsScene();92 75 93 76 QtWebPageSGNode* node = static_cast<QtWebPageSGNode*>(oldNode); … … 96 79 ASSERT(window); 97 80 98 if (window && d->webPageProxy->deviceScaleFactor() != window->devicePixelRatio()) {99 d->webPageProxy->setIntrinsicDeviceScaleFactor(window->devicePixelRatio());81 if (window && webViewPrivate->deviceScaleFactor() != window->devicePixelRatio()) { 82 webViewPrivate->setIntrinsicDeviceScaleFactor(window->devicePixelRatio()); 100 83 // This signal is queued since if we are running a threaded renderer. This might cause failures 101 84 // if tests are reading the new value between the property change and the signal emission. … … 110 93 node->setScale(d->contentsScale); 111 94 node->setDevicePixelRatio(window->devicePixelRatio()); 112 QColor backgroundColor = d->webPageProxy->drawsTransparentBackground() ? Qt::transparent : Qt::white;95 QColor backgroundColor = webViewPrivate->transparentBackground() ? Qt::transparent : Qt::white; 113 96 QRectF backgroundRect(QPointF(0, 0), d->contentsSize); 114 97 node->setBackground(backgroundRect, backgroundColor); 115 98 116 99 return node; 117 }118 119 QtWebPageEventHandler* QQuickWebPage::eventHandler() const120 {121 return d->eventHandler.data();122 100 } 123 101 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p.h
r114897 r148011 29 29 class QQuickWebPagePrivate; 30 30 class QQuickWebView; 31 class QWebPreferences;32 33 namespace WebKit {34 class QtWebPageEventHandler;35 }36 31 37 32 class QWEBKIT_EXPORT QQuickWebPage : public QQuickItem { … … 49 44 QTransform transformToItem() const; 50 45 51 WebKit::QtWebPageEventHandler* eventHandler() const;52 53 46 protected: 54 47 virtual QSGNode* updatePaintNode(QSGNode*, UpdatePaintNodeData*); -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h
r137358 r148011 25 25 #include <QTransform> 26 26 27 namespace WebKit { 28 class WebPageProxy; 29 class QtWebPageEventHandler; 30 class CoordinatedLayerTreeHostProxy; 31 } 27 class QQuickWebViewPrivate; 32 28 33 29 class QQuickWebPagePrivate { … … 36 32 ~QQuickWebPagePrivate(); 37 33 38 void initialize(WebKit::WebPageProxy*);39 40 34 void updateSize(); 41 35 42 36 void paint(QPainter*); 43 37 void resetPaintNode(); 44 WebKit::CoordinatedLayerTreeHostProxy* coordinatedLayerTreeHostProxy();45 46 QScopedPointer<WebKit::QtWebPageEventHandler> eventHandler;47 38 QQuickWebPage* const q; 48 39 QQuickWebView* const viewportItem; 49 WebKit::WebPageProxy* webPageProxy;50 40 bool paintingIsInitialized; 51 41 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
r148008 r148011 24 24 #include "qquickwebview_p.h" 25 25 26 #include "CoordinatedLayerTreeHostProxy.h" 26 27 #include "DownloadProxy.h" 27 28 #include "DrawingAreaProxyImpl.h" … … 75 76 #include <WKStringQt.h> 76 77 #include <WKURLQt.h> 78 #include <WebCore/CoordinatedGraphicsScene.h> 77 79 #include <WebCore/IntPoint.h> 78 80 #include <WebCore/IntRect.h> … … 334 336 #endif 335 337 336 QQuickWebPagePrivate* const pageViewPrivate = pageView.data()->d; 337 pageViewPrivate->initialize(webPageProxy.get()); 338 pageEventHandler.reset(new QtWebPageEventHandler(webPage.get(), pageView.data(), q_ptr)); 338 339 339 340 { … … 384 385 webPageProxy->pageGroup()->preferences()->setForceCompositingMode(true); 385 386 386 pageClient.initialize(q_ptr, page ViewPrivate->eventHandler.data(), &undoController);387 pageClient.initialize(q_ptr, pageEventHandler.data(), &undoController); 387 388 webPageProxy->initializeWebPage(); 388 389 webPageProxy->registerApplicationScheme(ASCIILiteral("qrc")); … … 540 541 switch (event->type()) { 541 542 case QEvent::MouseButtonPress: 542 page View->eventHandler()->handleMousePressEvent(event);543 pageEventHandler->handleMousePressEvent(event); 543 544 break; 544 545 case QEvent::MouseMove: 545 page View->eventHandler()->handleMouseMoveEvent(event);546 pageEventHandler->handleMouseMoveEvent(event); 546 547 break; 547 548 case QEvent::MouseButtonRelease: 548 page View->eventHandler()->handleMouseReleaseEvent(event);549 pageEventHandler->handleMouseReleaseEvent(event); 549 550 break; 550 551 case QEvent::MouseButtonDblClick: … … 589 590 qWarning("WARNING: The web process experienced a crash on '%s'.", qPrintable(url.toString(QUrl::RemoveUserInfo))); 590 591 591 page View->eventHandler()->resetGestureRecognizers();592 pageEventHandler->resetGestureRecognizers(); 592 593 593 594 // Check if loading was ongoing, when process crashed. … … 937 938 } 938 939 940 CoordinatedGraphicsScene* QQuickWebViewPrivate::coordinatedGraphicsScene() 941 { 942 if (webPageProxy && webPageProxy->drawingArea() && webPageProxy->drawingArea()->coordinatedLayerTreeHostProxy()) 943 return webPageProxy->drawingArea()->coordinatedLayerTreeHostProxy()->coordinatedGraphicsScene(); 944 945 return 0; 946 } 947 948 float QQuickWebViewPrivate::deviceScaleFactor() 949 { 950 return webPageProxy->deviceScaleFactor(); 951 } 952 953 void QQuickWebViewPrivate::setIntrinsicDeviceScaleFactor(float scaleFactor) 954 { 955 webPageProxy->setIntrinsicDeviceScaleFactor(scaleFactor); 956 } 957 939 958 QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate(QQuickWebView* viewport) 940 959 : QQuickWebViewPrivate(viewport) … … 997 1016 m_pageViewportControllerClient.reset(new PageViewportControllerClientQt(q, pageView.data())); 998 1017 m_pageViewportController.reset(new PageViewportController(webPageProxy.get(), m_pageViewportControllerClient.data())); 999 page View->eventHandler()->setViewportController(m_pageViewportControllerClient.data());1018 pageEventHandler->setViewportController(m_pageViewportControllerClient.data()); 1000 1019 1001 1020 // Trigger setting of correct visibility flags after everything was allocated and initialized. … … 1944 1963 { 1945 1964 Q_D(QQuickWebView); 1946 d->page View->eventHandler()->handleKeyPressEvent(event);1965 d->pageEventHandler->handleKeyPressEvent(event); 1947 1966 } 1948 1967 … … 1950 1969 { 1951 1970 Q_D(QQuickWebView); 1952 d->page View->eventHandler()->handleKeyReleaseEvent(event);1971 d->pageEventHandler->handleKeyReleaseEvent(event); 1953 1972 } 1954 1973 … … 1956 1975 { 1957 1976 Q_D(QQuickWebView); 1958 d->page View->eventHandler()->handleInputMethodEvent(event);1977 d->pageEventHandler->handleInputMethodEvent(event); 1959 1978 } 1960 1979 … … 1962 1981 { 1963 1982 Q_D(QQuickWebView); 1964 d->page View->eventHandler()->handleFocusInEvent(event);1983 d->pageEventHandler->handleFocusInEvent(event); 1965 1984 } 1966 1985 … … 1971 1990 bool focus = value.boolValue; 1972 1991 if (!focus) 1973 d->page View->eventHandler()->handleFocusLost();1992 d->pageEventHandler->handleFocusLost(); 1974 1993 } 1975 1994 QQuickFlickable::itemChange(change, value); … … 1991 2010 1992 2011 forceActiveFocus(); 1993 d->page View->eventHandler()->handleTouchEvent(event);2012 d->pageEventHandler->handleTouchEvent(event); 1994 2013 } 1995 2014 … … 2023 2042 { 2024 2043 Q_D(QQuickWebView); 2025 d->page View->eventHandler()->handleWheelEvent(event);2044 d->pageEventHandler->handleWheelEvent(event); 2026 2045 } 2027 2046 … … 2030 2049 Q_D(QQuickWebView); 2031 2050 // Map HoverEnter to Move, for WebKit the distinction doesn't matter. 2032 d->page View->eventHandler()->handleHoverMoveEvent(event);2051 d->pageEventHandler->handleHoverMoveEvent(event); 2033 2052 } 2034 2053 … … 2036 2055 { 2037 2056 Q_D(QQuickWebView); 2038 d->page View->eventHandler()->handleHoverMoveEvent(event);2057 d->pageEventHandler->handleHoverMoveEvent(event); 2039 2058 } 2040 2059 … … 2042 2061 { 2043 2062 Q_D(QQuickWebView); 2044 d->page View->eventHandler()->handleHoverLeaveEvent(event);2063 d->pageEventHandler->handleHoverLeaveEvent(event); 2045 2064 } 2046 2065 … … 2048 2067 { 2049 2068 Q_D(QQuickWebView); 2050 d->page View->eventHandler()->handleDragMoveEvent(event);2069 d->pageEventHandler->handleDragMoveEvent(event); 2051 2070 } 2052 2071 … … 2054 2073 { 2055 2074 Q_D(QQuickWebView); 2056 d->page View->eventHandler()->handleDragEnterEvent(event);2075 d->pageEventHandler->handleDragEnterEvent(event); 2057 2076 } 2058 2077 … … 2060 2079 { 2061 2080 Q_D(QQuickWebView); 2062 d->page View->eventHandler()->handleDragLeaveEvent(event);2081 d->pageEventHandler->handleDragLeaveEvent(event); 2063 2082 } 2064 2083 … … 2066 2085 { 2067 2086 Q_D(QQuickWebView); 2068 d->page View->eventHandler()->handleDropEvent(event);2087 d->pageEventHandler->handleDropEvent(event); 2069 2088 } 2070 2089 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
r145515 r148011 38 38 #include <wtf/RefPtr.h> 39 39 40 namespace WebCore { 41 class CoordinatedGraphicsScene; 42 } 43 40 44 namespace WebKit { 41 45 class DownloadProxy; … … 45 49 class QtWebContext; 46 50 class QtWebError; 51 class QtWebPageEventHandler; 47 52 class QtWebPagePolicyClient; 48 53 class WebPageProxy; … … 133 138 134 139 void didReceiveMessageFromNavigatorQtObject(WKStringRef message); 140 141 WebCore::CoordinatedGraphicsScene* coordinatedGraphicsScene(); 142 float deviceScaleFactor(); 143 void setIntrinsicDeviceScaleFactor(float); 135 144 136 145 protected: … … 181 190 182 191 QScopedPointer<QQuickWebPage> pageView; 192 QScopedPointer<WebKit::QtWebPageEventHandler> pageEventHandler; 183 193 QQuickWebView* q_ptr; 184 194 QQuickWebViewExperimental* experimental;
Note: See TracChangeset
for help on using the changeset viewer.