Changeset 154724 in webkit


Ignore:
Timestamp:
Aug 28, 2013 12:24:46 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Add a 'isMainFrame' parameter to QWebNavigationRequest.
https://bugs.webkit.org/show_bug.cgi?id=118860

Patch by Alexandre Abreu <alexandre.abreu@canonical.com> on 2013-08-28
Reviewed by Simon Hausmann.

  • UIProcess/API/qt/qwebnavigationrequest.cpp:

(QWebNavigationRequestPrivate::QWebNavigationRequestPrivate):
(QWebNavigationRequest::QWebNavigationRequest):
(QWebNavigationRequest::navigationType):
(QWebNavigationRequest::isMainFrame):

  • UIProcess/API/qt/qwebnavigationrequest_p.h:
  • UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
  • UIProcess/qt/QtWebPagePolicyClient.cpp:

(WebKit::QtWebPagePolicyClient::decidePolicyForNavigationAction):

  • UIProcess/qt/QtWebPagePolicyClient.h:
Location:
trunk/Source
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/qt/declarative/plugin.cpp

    r129609 r154724  
    5858        qmlRegisterUncreatableType<QQuickWebPage>(uri, 3, 0, "WebPage", QObject::tr("Cannot create separate instance of WebPage, use WebView"));
    5959        qmlRegisterUncreatableType<QNetworkReply>(uri, 3, 0, "NetworkReply", QObject::tr("Cannot create separate instance of NetworkReply"));
    60         qmlRegisterUncreatableType<QWebNavigationRequest>(uri, 3, 0, "NavigationRequest", QObject::tr("Cannot create separate instance of NavigationRequest"));
     60        qmlRegisterUncreatableType<QWebNavigationRequest, 1>(uri, 3, 1, "NavigationRequest", QObject::tr("Cannot create separate instance of NavigationRequest"));
    6161        qmlRegisterUncreatableType<QWebLoadRequest>(uri, 3, 0, "WebLoadRequest", QObject::tr("Cannot create separate instance of WebLoadRequest"));
    6262#endif
  • trunk/Source/WebKit2/ChangeLog

    r154711 r154724  
     12013-08-28  Alexandre Abreu  <alexandre.abreu@canonical.com>
     2
     3        Add a 'isMainFrame' parameter to QWebNavigationRequest.
     4        https://bugs.webkit.org/show_bug.cgi?id=118860
     5
     6        Reviewed by Simon Hausmann.
     7
     8        * UIProcess/API/qt/qwebnavigationrequest.cpp:
     9        (QWebNavigationRequestPrivate::QWebNavigationRequestPrivate):
     10        (QWebNavigationRequest::QWebNavigationRequest):
     11        (QWebNavigationRequest::navigationType):
     12        (QWebNavigationRequest::isMainFrame):
     13        * UIProcess/API/qt/qwebnavigationrequest_p.h:
     14        * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
     15        * UIProcess/qt/QtWebPagePolicyClient.cpp:
     16        (WebKit::QtWebPagePolicyClient::decidePolicyForNavigationAction):
     17        * UIProcess/qt/QtWebPagePolicyClient.h:
     18
    1192013-08-27  Luciano Wolf  <luciano.wolf@openbossa.org>
    220
  • trunk/Source/WebKit2/UIProcess/API/qt/qwebnavigationrequest.cpp

    r110047 r154724  
    2626class QWebNavigationRequestPrivate {
    2727public:
    28     QWebNavigationRequestPrivate(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType)
     28    QWebNavigationRequestPrivate(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, bool isMainFrame)
    2929        : url(url)
    3030        , mouseButton(mouseButton)
     
    3232        , action(QQuickWebView::AcceptRequest)
    3333        , navigationType(navigationType)
     34        , isMainFrame(isMainFrame)
    3435    {
    3536    }
     
    4445    QQuickWebView::NavigationRequestAction action;
    4546    QQuickWebView::NavigationType navigationType;
     47    bool isMainFrame;
    4648};
    4749
    48 QWebNavigationRequest::QWebNavigationRequest(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, QObject* parent)
     50QWebNavigationRequest::QWebNavigationRequest(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, bool isMainFrame, QObject* parent)
    4951    : QObject(parent)
    50     , d(new QWebNavigationRequestPrivate(url, mouseButton, keyboardModifiers, navigationType))
     52    , d(new QWebNavigationRequestPrivate(url, mouseButton, keyboardModifiers, navigationType, isMainFrame))
    5153{
    5254}
     
    9092    return d->navigationType;
    9193}
     94
     95bool QWebNavigationRequest::isMainFrame() const
     96{
     97    return d->isMainFrame;
     98}
  • trunk/Source/WebKit2/UIProcess/API/qt/qwebnavigationrequest_p.h

    r110047 r154724  
    3636    Q_PROPERTY(QQuickWebView::NavigationRequestAction action READ action WRITE setAction NOTIFY actionChanged FINAL)
    3737    Q_PROPERTY(QQuickWebView::NavigationType navigationType READ navigationType CONSTANT FINAL)
     38    Q_PROPERTY(bool isMainFrame READ isMainFrame CONSTANT FINAL REVISION 1)
    3839
    3940public:
    40     QWebNavigationRequest(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, QObject* parent = 0);
     41    QWebNavigationRequest(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, bool isMainFrame, QObject* parent = 0);
    4142    ~QWebNavigationRequest();
    4243
     
    4950    QQuickWebView::NavigationType navigationType() const;
    5051
     52    bool isMainFrame() const;
     53
    5154Q_SIGNALS:
    5255    void actionChanged();
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp

    r128177 r154724  
    9191    << "QWebNavigationRequest.action --> QQuickWebView::NavigationRequestAction"
    9292    << "QWebNavigationRequest.navigationType --> QQuickWebView::NavigationType"
     93    << "QWebNavigationRequest.isMainFrame --> bool"
    9394    << "QWebNavigationRequest.actionChanged() --> void"
    9495    ;
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp

    r114897 r154724  
    4545}
    4646
    47 void QtWebPagePolicyClient::decidePolicyForNavigationAction(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, WKFramePolicyListenerRef listener)
     47void QtWebPagePolicyClient::decidePolicyForNavigationAction(const QUrl& url, Qt::MouseButton mouseButton, Qt::KeyboardModifiers keyboardModifiers, QQuickWebView::NavigationType navigationType, bool isMainFrame, WKFramePolicyListenerRef listener)
    4848{
    4949    // NOTE: even though the C API (and the WebKit2 IPC) supports an asynchronous answer, this is not currently working.
    5050    // We are expected to call the listener immediately. See the patch for https://bugs.webkit.org/show_bug.cgi?id=53785.
    51     QWebNavigationRequest navigationRequest(url, mouseButton, keyboardModifiers, navigationType);
     51    QWebNavigationRequest navigationRequest(url, mouseButton, keyboardModifiers, navigationType, isMainFrame);
    5252    emit m_webView->navigationRequested(&navigationRequest);
    5353
     
    122122}
    123123
    124 void QtWebPagePolicyClient::decidePolicyForNavigationAction(WKPageRef, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo)
     124void QtWebPagePolicyClient::decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo)
    125125{
    126126    WKRetainPtr<WKURLRef> frameURL(AdoptWK, WKFrameCopyURL(frame));
    127127    WKRetainPtr<WKURLRef> requestURL(AdoptWK, WKURLRequestCopyURL(request));
    128128    QUrl qUrl = WKURLCopyQUrl(requestURL.get());
    129     toQtWebPagePolicyClient(clientInfo)->decidePolicyForNavigationAction(qUrl, toQtMouseButton(mouseButton), toQtKeyboardModifiers(modifiers), toQuickWebViewNavigationType(navigationType), listener);
     129    bool isMainFrame = (WKPageGetMainFrame(page) == frame);
     130    toQtWebPagePolicyClient(clientInfo)->decidePolicyForNavigationAction(qUrl, toQtMouseButton(mouseButton), toQtKeyboardModifiers(modifiers), toQuickWebViewNavigationType(navigationType), isMainFrame, listener);
    130131}
    131132
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.h

    r114897 r154724  
    3737
    3838private:
    39     void decidePolicyForNavigationAction(const QUrl&, Qt::MouseButton, Qt::KeyboardModifiers, QQuickWebView::NavigationType, WKFramePolicyListenerRef);
     39    void decidePolicyForNavigationAction(const QUrl&, Qt::MouseButton, Qt::KeyboardModifiers, QQuickWebView::NavigationType, bool isMainFrame, WKFramePolicyListenerRef);
    4040
    4141    // WKPagePolicyClient callbacks.
Note: See TracChangeset for help on using the changeset viewer.