⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 100744 in webkit


Ignore:
Timestamp:
Nov 18, 2011, 3:34:51 AM (15 years ago)
Author:
Simon Hausmann
Message:

[Qt] Removal of QtViewInterface part 3

Reviewed by Kenneth Rohde Christiansen.

Move the remaining forwarded calls from ClientImpl that went through
ViewInterface and then PageProxy or WebView to go straight to
QtWebPageProxy. QtViewInterface is empty now and therefore removed.

  • Target.pri:
  • UIProcess/API/qt/qquickwebpage_p.h:
  • UIProcess/API/qt/qquickwebpage_p_p.h:
  • UIProcess/API/qt/qquickwebview.cpp:

(QQuickWebViewPrivate::initialize):
(QQuickWebViewPrivate::chooseFiles):

  • UIProcess/API/qt/qquickwebview_p.h:
  • UIProcess/API/qt/qquickwebview_p_p.h:
  • UIProcess/qt/ClientImpl.cpp:

(qt_wk_runJavaScriptAlert):
(qt_wk_runJavaScriptConfirm):
(qt_wk_runJavaScriptPrompt):
(qt_wk_setStatusText):
(qt_wk_runOpenPanel):
(qt_wk_mouseDidMoveOverElement):
(setupPageUiClient):

  • UIProcess/qt/QtViewInterface.cpp: Removed.
  • UIProcess/qt/QtViewInterface.h: Removed.
  • UIProcess/qt/QtWebPageProxy.cpp:

(QtWebPageProxy::QtWebPageProxy):
(QtWebPageProxy::didChangeStatusText):
(QtWebPageProxy::didMouseMoveOverElement):
(QtWebPageProxy::showContextMenu):
(QtWebPageProxy::hideContextMenu):
(QtWebPageProxy::runJavaScriptAlert):
(QtWebPageProxy::runJavaScriptConfirm):
(QtWebPageProxy::runJavaScriptPrompt):
(QtWebPageProxy::chooseFiles):
(QtWebPageProxy::createContextMenuProxy):
(QtWebPageProxy::didChangeLoadProgress):

  • UIProcess/qt/QtWebPageProxy.h:

(QtWebPageProxy::contextMenuItemSelected):

  • UIProcess/qt/WebContextMenuProxyQt.cpp:

(WebKit::WebContextMenuProxyQt::WebContextMenuProxyQt):
(WebKit::WebContextMenuProxyQt::create):
(WebKit::WebContextMenuProxyQt::hideContextMenu):

  • UIProcess/qt/WebContextMenuProxyQt.h:
Location:
trunk/Source/WebKit2
Files:
2 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r100741 r100744  
     12011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
     2
     3        [Qt] Removal of QtViewInterface part 3
     4
     5        Reviewed by Kenneth Rohde Christiansen.
     6
     7        Move the remaining forwarded calls from ClientImpl that went through
     8        ViewInterface and then PageProxy or WebView to go straight to
     9        QtWebPageProxy. QtViewInterface is empty now and therefore removed.
     10
     11        * Target.pri:
     12        * UIProcess/API/qt/qquickwebpage_p.h:
     13        * UIProcess/API/qt/qquickwebpage_p_p.h:
     14        * UIProcess/API/qt/qquickwebview.cpp:
     15        (QQuickWebViewPrivate::initialize):
     16        (QQuickWebViewPrivate::chooseFiles):
     17        * UIProcess/API/qt/qquickwebview_p.h:
     18        * UIProcess/API/qt/qquickwebview_p_p.h:
     19        * UIProcess/qt/ClientImpl.cpp:
     20        (qt_wk_runJavaScriptAlert):
     21        (qt_wk_runJavaScriptConfirm):
     22        (qt_wk_runJavaScriptPrompt):
     23        (qt_wk_setStatusText):
     24        (qt_wk_runOpenPanel):
     25        (qt_wk_mouseDidMoveOverElement):
     26        (setupPageUiClient):
     27        * UIProcess/qt/QtViewInterface.cpp: Removed.
     28        * UIProcess/qt/QtViewInterface.h: Removed.
     29        * UIProcess/qt/QtWebPageProxy.cpp:
     30        (QtWebPageProxy::QtWebPageProxy):
     31        (QtWebPageProxy::didChangeStatusText):
     32        (QtWebPageProxy::didMouseMoveOverElement):
     33        (QtWebPageProxy::showContextMenu):
     34        (QtWebPageProxy::hideContextMenu):
     35        (QtWebPageProxy::runJavaScriptAlert):
     36        (QtWebPageProxy::runJavaScriptConfirm):
     37        (QtWebPageProxy::runJavaScriptPrompt):
     38        (QtWebPageProxy::chooseFiles):
     39        (QtWebPageProxy::createContextMenuProxy):
     40        (QtWebPageProxy::didChangeLoadProgress):
     41        * UIProcess/qt/QtWebPageProxy.h:
     42        (QtWebPageProxy::contextMenuItemSelected):
     43        * UIProcess/qt/WebContextMenuProxyQt.cpp:
     44        (WebKit::WebContextMenuProxyQt::WebContextMenuProxyQt):
     45        (WebKit::WebContextMenuProxyQt::create):
     46        (WebKit::WebContextMenuProxyQt::hideContextMenu):
     47        * UIProcess/qt/WebContextMenuProxyQt.h:
     48
    1492011-11-18  Zalan Bujtas  <zbujtas@gmail.com>
    250
  • trunk/Source/WebKit2/Target.pri

    r100602 r100744  
    325325    UIProcess/qt/QtSGUpdateQueue.h \
    326326    UIProcess/qt/QtSGTileNode.h \
    327     UIProcess/qt/QtViewInterface.h \
    328327    UIProcess/qt/QtViewportInteractionEngine.h \
    329328    UIProcess/qt/QtWebUndoCommand.h \
    … …  
    619618    UIProcess/qt/ClientImpl.cpp \
    620619    UIProcess/qt/LayerTreeHostProxyQt.cpp \
    621     UIProcess/qt/QtViewInterface.cpp \
    622620    UIProcess/qt/QtGestureRecognizer.cpp \
    623621    UIProcess/qt/QtPanGestureRecognizer.cpp \
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p.h

    r100739 r100744  
    3232
    3333namespace WebKit {
    34 class QtViewInterface;
    3534class QtSGUpdateQueue;
    3635}
    … …  
    7574    QQuickWebPagePrivate* d;
    7675    friend class QQuickWebViewPrivate;
    77     friend class WebKit::QtViewInterface;
    7876    friend class QtWebPageProxy;
    7977};
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage_p_p.h

    r100602 r100744  
    2323
    2424#include "QtSGUpdateQueue.h"
    25 #include "QtViewInterface.h"
    2625#include "QtWebPageProxy.h"
    2726#include "qquickwebpage_p.h"
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp

    r100739 r100744  
    2222#include "qquickwebview_p.h"
    2323
    24 #include "QtViewInterface.h"
    2524#include "QtWebPageProxy.h"
    2625#include "UtilsQt.h"
    … …  
    7170    QObject::connect(viewport, SIGNAL(visibleChanged()), viewport, SLOT(_q_onVisibleChanged()));
    7271    pageView.reset(new QQuickWebPage(viewport));
    73     viewInterface.reset(new WebKit::QtViewInterface(viewport));
    7472
    7573    QQuickWebPagePrivate* const pageViewPrivate = pageView.data()->d;
    76     setPageProxy(new QtWebPageProxy(pageView.data(), q_ptr, viewInterface.data(), 0, this, contextRef, pageGroupRef));
     74    setPageProxy(new QtWebPageProxy(pageView.data(), q_ptr, 0, this, contextRef, pageGroupRef));
    7775    pageViewPrivate->setPageProxy(pageProxy.data());
    7876
    … …  
    265263}
    266264
    267 void QQuickWebViewPrivate::chooseFiles(WKOpenPanelResultListenerRef listenerRef, const QStringList& selectedFileNames, QtViewInterface::FileChooserType type)
     265void QQuickWebViewPrivate::chooseFiles(WKOpenPanelResultListenerRef listenerRef, const QStringList& selectedFileNames, QtWebPageProxy::FileChooserType type)
    268266{
    269267#ifndef QT_NO_FILEDIALOG
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h

    r100623 r100744  
    3030class QWebDownloadItem;
    3131class QWebPreferences;
    32 
    33 namespace WebKit {
    34 class QtViewInterface;
    35 }
    3632
    3733namespace WTR {
    … …  
    134130
    135131    friend class QtWebPageProxy;
    136     friend class WebKit::QtViewInterface;
    137132    friend class WTR::PlatformWebView;
    138133    friend class QQuickWebViewExperimental;
  • trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h

    r100739 r100744  
    2323
    2424#include "QtPolicyInterface.h"
    25 #include "QtViewInterface.h"
    2625#include "QtViewportInteractionEngine.h"
    2726#include "QtWebPageProxy.h"
    … …  
    7271    virtual QtPolicyInterface::PolicyAction navigationPolicyForURL(const QUrl&, Qt::MouseButton, Qt::KeyboardModifiers);
    7372
    74     void chooseFiles(WKOpenPanelResultListenerRef, const QStringList& selectedFileNames, WebKit::QtViewInterface::FileChooserType);
     73    void chooseFiles(WKOpenPanelResultListenerRef, const QStringList& selectedFileNames, QtWebPageProxy::FileChooserType);
    7574    void runJavaScriptAlert(const QString&);
    7675    bool runJavaScriptConfirm(const QString&);
    … …  
    109108
    110109    QScopedPointer<QQuickWebPage> pageView;
    111     QScopedPointer<WebKit::QtViewInterface> viewInterface;
    112110    QScopedPointer<QtViewportInteractionEngine> interactionEngine;
    113111
  • trunk/Source/WebKit2/UIProcess/qt/ClientImpl.cpp

    r100590 r100744  
    2727#include "WKURLQt.h"
    2828#include <QtPolicyInterface.h>
    29 #include <QtViewInterface.h>
    3029#include <QtWebPageProxy.h>
    3130#include <WKArray.h>
    … …  
    4948}
    5049
    51 static inline QtViewInterface* toQtViewInterface(const void* clientInfo)
    52 {
    53     ASSERT(clientInfo);
    54     return reinterpret_cast<QtViewInterface*>(const_cast<void*>(clientInfo));
    55 }
    56 
    5750static inline QtPolicyInterface* toQtPolicyInterface(const void* clientInfo)
    5851{
    … …  
    163156{
    164157    QString qAlertText = WKStringCopyQString(alertText);
    165     toQtViewInterface(clientInfo)->runJavaScriptAlert(qAlertText);
     158    toQtWebPageProxy(clientInfo)->runJavaScriptAlert(qAlertText);
    166159}
    167160
    … …  
    169162{
    170163    QString qMessage = WKStringCopyQString(message);
    171     return toQtViewInterface(clientInfo)->runJavaScriptConfirm(qMessage);
     164    return toQtWebPageProxy(clientInfo)->runJavaScriptConfirm(qMessage);
    172165}
    173166
    … …  
    183176    QString qDefaultValue = WKStringCopyQString(defaultValue);
    184177    bool ok = false;
    185     QString result = toQtViewInterface(clientInfo)->runJavaScriptPrompt(qMessage, qDefaultValue, ok);
     178    QString result = toQtWebPageProxy(clientInfo)->runJavaScriptPrompt(qMessage, qDefaultValue, ok);
    186179    if (!ok)
    187180        return createNullWKString();
    … …  
    192185{
    193186    QString qText = WKStringCopyQString(text);
    194     toQtViewInterface(clientInfo)->didChangeStatusText(qText);
     187    toQtWebPageProxy(clientInfo)->didChangeStatusText(qText);
    195188}
    196189
    … …  
    204197            selectedFileNames += wkSelectedFileNames.at(i);
    205198
    206     QtViewInterface::FileChooserType allowMultipleFiles = WKOpenPanelParametersGetAllowsMultipleFiles(parameters) ? QtViewInterface::MultipleFilesSelection : QtViewInterface::SingleFileSelection;
    207     toQtViewInterface(clientInfo)->chooseFiles(listener, selectedFileNames, allowMultipleFiles);
     199    QtWebPageProxy::FileChooserType allowMultipleFiles = WKOpenPanelParametersGetAllowsMultipleFiles(parameters) ? QtWebPageProxy::MultipleFilesSelection : QtWebPageProxy::SingleFileSelection;
     200    toQtWebPageProxy(clientInfo)->chooseFiles(listener, selectedFileNames, allowMultipleFiles);
    208201}
    209202
    … …  
    212205    const QUrl absoluteLinkUrl = WKURLCopyQUrl(WKHitTestResultCopyAbsoluteLinkURL(hitTestResult));
    213206    const QString linkTitle = WKStringCopyQString(WKHitTestResultCopyLinkTitle(hitTestResult));
    214     toQtViewInterface(clientInfo)->didMouseMoveOverElement(absoluteLinkUrl, linkTitle);
     207    toQtWebPageProxy(clientInfo)->didMouseMoveOverElement(absoluteLinkUrl, linkTitle);
    215208}
    216209
    … …  
    334327    memset(&uiClient, 0, sizeof(WKPageUIClient));
    335328    uiClient.version = kWKPageUIClientCurrentVersion;
    336     uiClient.clientInfo = qtWebPageProxy->viewInterface();
     329    uiClient.clientInfo = qtWebPageProxy;
    337330    uiClient.runJavaScriptAlert = qt_wk_runJavaScriptAlert;
    338331    uiClient.runJavaScriptConfirm = qt_wk_runJavaScriptConfirm;
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp

    r100741 r100744  
    4646#include "NotImplemented.h"
    4747#include "QtPolicyInterface.h"
    48 #include "QtViewInterface.h"
    4948#include "QtViewportInteractionEngine.h"
    5049#include "QtWebUndoCommand.h"
    … …  
    135134}
    136135
    137 QtWebPageProxy::QtWebPageProxy(QQuickWebPage* qmlWebPage, QQuickWebView* qmlWebView, QtViewInterface* viewInterface, QtViewportInteractionEngine* viewportInteractionEngine, QtPolicyInterface* policyInterface, WKContextRef contextRef, WKPageGroupRef pageGroupRef)
     136QtWebPageProxy::QtWebPageProxy(QQuickWebPage* qmlWebPage, QQuickWebView* qmlWebView, QtViewportInteractionEngine* viewportInteractionEngine, QtPolicyInterface* policyInterface, WKContextRef contextRef, WKPageGroupRef pageGroupRef)
    138137    : m_qmlWebPage(qmlWebPage)
    139138    , m_qmlWebView(qmlWebView)
    140     , m_viewInterface(viewInterface)
    141139    , m_interactionEngine(viewportInteractionEngine)
    142140    , m_panGestureRecognizer(viewportInteractionEngine)
    … …  
    356354}
    357355
     356void QtWebPageProxy::didChangeStatusText(const QString& newMessage)
     357{
     358    emit m_qmlWebView->statusBarMessageChanged(newMessage);
     359}
     360
     361void QtWebPageProxy::didMouseMoveOverElement(const QUrl& linkURL, const QString& linkTitle)
     362{
     363    if (linkURL == lastHoveredURL && linkTitle == lastHoveredTitle)
     364        return;
     365    lastHoveredURL = linkURL;
     366    lastHoveredTitle = linkTitle;
     367    emit m_qmlWebView->linkHovered(lastHoveredURL, lastHoveredTitle);
     368}
     369
     370void QtWebPageProxy::showContextMenu(QSharedPointer<QMenu> menu)
     371{
     372    // Remove the active menu in case this function is called twice.
     373    if (activeMenu)
     374        activeMenu->hide();
     375
     376    if (menu->isEmpty())
     377        return;
     378
     379    QWindow* window = m_qmlWebView->canvas();
     380    if (!window)
     381        return;
     382
     383    activeMenu = menu;
     384
     385    activeMenu->window()->winId(); // Ensure that the menu has a window
     386    Q_ASSERT(activeMenu->window()->windowHandle());
     387    activeMenu->window()->windowHandle()->setTransientParent(window);
     388
     389    QPoint menuPositionInScene = m_qmlWebView->mapToScene(menu->pos()).toPoint();
     390    menu->exec(window->mapToGlobal(menuPositionInScene));
     391    // The last function to get out of exec() clear the local copy.
     392    if (activeMenu == menu)
     393        activeMenu.clear();
     394}
     395
     396void QtWebPageProxy::hideContextMenu()
     397{
     398    if (activeMenu)
     399        activeMenu->hide();
     400}
     401
     402void QtWebPageProxy::runJavaScriptAlert(const QString& alertText)
     403{
     404    m_qmlWebView->d_func()->runJavaScriptAlert(alertText);
     405}
     406
     407bool QtWebPageProxy::runJavaScriptConfirm(const QString& message)
     408{
     409    return m_qmlWebView->d_func()->runJavaScriptConfirm(message);
     410}
     411
     412QString QtWebPageProxy::runJavaScriptPrompt(const QString& message, const QString& defaultValue, bool& ok)
     413{
     414    return m_qmlWebView->d_func()->runJavaScriptPrompt(message, defaultValue, ok);
     415}
     416
     417void QtWebPageProxy::chooseFiles(WKOpenPanelResultListenerRef listenerRef, const QStringList& selectedFileNames, FileChooserType type)
     418{
     419    m_qmlWebView->d_func()->chooseFiles(listenerRef, selectedFileNames, type);
     420}
     421
    358422void QtWebPageProxy::timerEvent(QTimerEvent* ev)
    359423{
    … …  
    542606PassRefPtr<WebContextMenuProxy> QtWebPageProxy::createContextMenuProxy(WebPageProxy*)
    543607{
    544     return WebContextMenuProxyQt::create(m_webPageProxy.get(), m_viewInterface);
     608    return WebContextMenuProxyQt::create(this);
    545609}
    546610
    … …  
    612676}
    613677
    614 void QtWebPageProxy::didChangeLoadProgress(int newLoadProgress)
    615 {
    616     m_loadProgress = newLoadProgress;
    617     m_viewInterface->didChangeLoadProgress(newLoadProgress);
     678void QtWebPageProxy::didChangeLoadProgress(int percentageLoaded)
     679{
     680    m_loadProgress = percentageLoaded;
     681    emit m_qmlWebView->loadProgressChanged(percentageLoaded);
    618682}
    619683
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h

    r100739 r100744  
    3030#include "QtPolicyInterface.h"
    3131#include "QtTapGestureRecognizer.h"
    32 #include "QtViewInterface.h"
    3332#include "ShareableBitmap.h"
    3433#include "ViewportArguments.h"
    … …  
    7675    };
    7776
    78     QtWebPageProxy(QQuickWebPage*, QQuickWebView*, WebKit::QtViewInterface*, WebKit::QtViewportInteractionEngine* = 0, WebKit::QtPolicyInterface* = 0, WKContextRef = 0, WKPageGroupRef = 0);
     77    enum FileChooserType {
     78        SingleFileSelection,
     79        MultipleFilesSelection
     80    };
     81
     82    QtWebPageProxy(QQuickWebPage*, QQuickWebView*, WebKit::QtViewportInteractionEngine* = 0, WebKit::QtPolicyInterface* = 0, WKContextRef = 0, WKPageGroupRef = 0);
    7983    ~QtWebPageProxy();
    8084
    … …  
    194198
    195199    QWKHistory* history() const;
    196     QtViewInterface* viewInterface() const { return m_viewInterface; }
    197     QQuickWebPage* qmlWebPage() const { return m_qmlWebPage; }
     200
     201    void contextMenuItemSelected(const WebContextMenuItemData& data)
     202    {
     203        m_webPageProxy->contextMenuItemSelected(data);
     204    }
    198205
    199206    void handleDownloadRequest(DownloadProxy*);
    … …  
    202209    void handleSingleTapEvent(const QTouchEvent::TouchPoint&);
    203210    void handleDoubleTapEvent(const QTouchEvent::TouchPoint&);
     211
     212    void didChangeStatusText(const QString&);
     213
     214    void showContextMenu(QSharedPointer<QMenu>);
     215    void hideContextMenu();
     216
     217    void runJavaScriptAlert(const QString&);
     218    bool runJavaScriptConfirm(const QString&);
     219    QString runJavaScriptPrompt(const QString&, const QString& defaultValue, bool& ok);
     220
     221    void chooseFiles(WKOpenPanelResultListenerRef, const QStringList& selectedFileNames, FileChooserType);
     222
     223    void didMouseMoveOverElement(const QUrl&, const QString&);
    204224
    205225public Q_SLOTS:
    … …  
    216236    QQuickWebView* m_qmlWebView;
    217237    RefPtr<WebKit::WebPageProxy> m_webPageProxy;
    218     WebKit::QtViewInterface* const m_viewInterface;
    219238    QtViewportInteractionEngine* m_interactionEngine;
    220239    QtPanGestureRecognizer m_panGestureRecognizer;
    … …  
    264283    QPoint m_tripleClick;
    265284    QBasicTimer m_tripleClickTimer;
     285
     286    QSharedPointer<QMenu> activeMenu;
     287    QUrl lastHoveredURL;
     288    QString lastHoveredTitle;
    266289};
    267290
  • trunk/Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp

    r98449 r100744  
    4040namespace WebKit {
    4141
    42 WebContextMenuProxyQt::WebContextMenuProxyQt(WebPageProxy* pageProxy, QtViewInterface* viewInterface)
     42WebContextMenuProxyQt::WebContextMenuProxyQt(QtWebPageProxy* pageProxy)
    4343    : m_webPageProxy(pageProxy)
    44     , m_viewInterface(viewInterface)
    4544{
    4645}
    4746
    48 PassRefPtr<WebContextMenuProxyQt> WebContextMenuProxyQt::create(WebPageProxy* pageProxy, QtViewInterface* viewInterface)
     47PassRefPtr<WebContextMenuProxyQt> WebContextMenuProxyQt::create(QtWebPageProxy *pageProxy)
    4948{
    50     return adoptRef(new WebContextMenuProxyQt(pageProxy, viewInterface));
     49    return adoptRef(new WebContextMenuProxyQt(pageProxy));
    5150}
    5251
    … …  
    7574void WebContextMenuProxyQt::hideContextMenu()
    7675{
    77     m_viewInterface->hideContextMenu();
     76    m_webPageProxy->hideContextMenu();
    7877}
    7978
  • trunk/Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.h

    r97852 r100744  
    3636
    3737namespace WebKit {
    38 class QtViewInterface;
    3938class WebContextMenuItemData;
    40 class WebPageProxy;
    4139}
     40class QtWebPageProxy;
    4241
    4342namespace WebKit {
    … …  
    4645    Q_OBJECT
    4746public:
    48     static PassRefPtr<WebContextMenuProxyQt> create(WebPageProxy*, QtViewInterface*);
     47    static PassRefPtr<WebContextMenuProxyQt> create(QtWebPageProxy*);
    4948
    5049private Q_SLOTS:
    … …  
    5251
    5352private:
    54     WebContextMenuProxyQt(WebPageProxy*, QtViewInterface*);
     53    WebContextMenuProxyQt(QtWebPageProxy*);
    5554
    5655    virtual void showContextMenu(const WebCore::IntPoint&, const Vector<WebContextMenuItemData>&);
    … …  
    5958    PassOwnPtr<QMenu> createContextMenu(const Vector<WebContextMenuItemData>& items) const;
    6059
    61     WebPageProxy* const m_webPageProxy;
    62     QtViewInterface* const m_viewInterface;
     60    QtWebPageProxy* const m_webPageProxy;
    6361};
    6462
Note: See TracChangeset for help on using the changeset viewer.