Changeset 50454 in webkit


Ignore:
Timestamp:
Nov 3, 2009 6:50:55 AM (14 years ago)
Author:
Simon Hausmann
Message:

WebCore: Extended the conversion of the WebCore ResourceRequest to the
QNetworkRequest with a mandatory originating object argument,
which is meant to be the QWebFrame the request belongs to.

Patch by Simon Hausmann <Simon Hausmann> on 2009-11-03
Reviewed by Tor Arne Vestbø.

https://bugs.webkit.org/show_bug.cgi?id=29975

  • platform/network/qt/QNetworkReplyHandler.cpp:

(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
(WebCore::QNetworkReplyHandler::start):

  • platform/network/qt/ResourceRequest.h:
  • platform/network/qt/ResourceRequestQt.cpp:

(WebCore::ResourceRequest::toNetworkRequest):

WebKit/qt: Replace the QWebPage::networkRequestStarted() signal with the originatingObject
property set to the QWebFrame that belongs to the request.

Patch by Simon Hausmann <Simon Hausmann> on 2009-11-03
Reviewed by Tor Arne Vestbø.

https://bugs.webkit.org/show_bug.cgi?id=29975

  • Api/qwebpage.h:
  • WebCoreSupport/FrameLoaderClientQt.cpp:

(WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction):
(WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):
(WebCore::FrameLoaderClientQt::startDownload):

  • tests/qwebpage/tst_qwebpage.cpp:

(tst_QWebPage::loadFinished):
(TestNetworkManager::createRequest):
(tst_QWebPage::originatingObjectInNetworkRequests):

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r50453 r50454  
     12009-11-03  Simon Hausmann  <hausmann@webkit.org>
     2
     3        Reviewed by Tor Arne Vestbø.
     4
     5        Extended the conversion of the WebCore ResourceRequest to the
     6        QNetworkRequest with a mandatory originating object argument,
     7        which is meant to be the QWebFrame the request belongs to.
     8
     9        https://bugs.webkit.org/show_bug.cgi?id=29975
     10
     11        * platform/network/qt/QNetworkReplyHandler.cpp:
     12        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
     13        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
     14        (WebCore::QNetworkReplyHandler::start):
     15        * platform/network/qt/ResourceRequest.h:
     16        * platform/network/qt/ResourceRequestQt.cpp:
     17        (WebCore::ResourceRequest::toNetworkRequest):
     18
    1192009-11-03  Keishi Hattori  <casey.hattori@gmail.com>
    220
  • trunk/WebCore/platform/network/qt/QNetworkReplyHandler.cpp

    r50288 r50454  
    148148        m_method = QNetworkAccessManager::UnknownOperation;
    149149
    150     m_request = r.toNetworkRequest();
     150    m_request = r.toNetworkRequest(m_resourceHandle->getInternal()->m_frame);
    151151
    152152    if (m_loadMode == LoadNormal)
     
    328328        client->willSendRequest(m_resourceHandle, newRequest, response);
    329329        m_redirected = true;
    330         m_request = newRequest.toNetworkRequest();
    331 
    332         ResourceHandleInternal* d = m_resourceHandle->getInternal();
    333         emit d->m_frame->page()->networkRequestStarted(d->m_frame, &m_request);
     330        m_request = newRequest.toNetworkRequest(m_resourceHandle->getInternal()->m_frame);
    334331        return;
    335332    }
     
    372369
    373370    QNetworkAccessManager* manager = d->m_frame->page()->networkAccessManager();
    374 
    375     emit d->m_frame->page()->networkRequestStarted(d->m_frame, &m_request);
    376371
    377372    const QUrl url = m_request.url();
  • trunk/WebCore/platform/network/qt/ResourceRequest.h

    r47907 r50454  
    3232QT_BEGIN_NAMESPACE
    3333class QNetworkRequest;
     34class QObject;
    3435QT_END_NAMESPACE
    3536
     
    6061
    6162#if QT_VERSION >= 0x040400
    62         QNetworkRequest toNetworkRequest() const;
     63        QNetworkRequest toNetworkRequest(QObject* originatingObject) const;
    6364#endif
    6465
  • trunk/WebCore/platform/network/qt/ResourceRequestQt.cpp

    r42516 r50454  
    2929namespace WebCore {
    3030
    31 QNetworkRequest ResourceRequest::toNetworkRequest() const
     31QNetworkRequest ResourceRequest::toNetworkRequest(QObject* originatingFrame) const
    3232{
    3333    QNetworkRequest request;
    3434    request.setUrl(url());
     35#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
     36    request.setOriginatingObject(originatingFrame);
     37#endif
    3538
    3639    const HTTPHeaderMap &headers = httpHeaderFields();
  • trunk/WebKit/qt/Api/qwebpage.h

    r49766 r50454  
    348348    void restoreFrameStateRequested(QWebFrame* frame);
    349349
    350     void networkRequestStarted(QWebFrame* frame, QNetworkRequest* request);
    351 
    352350protected:
    353351    virtual QWebPage *createWindow(WebWindowType type);
  • trunk/WebKit/qt/ChangeLog

    r50415 r50454  
     12009-11-03  Simon Hausmann  <hausmann@webkit.org>
     2
     3        Reviewed by Tor Arne Vestbø.
     4
     5        Replace the QWebPage::networkRequestStarted() signal with the originatingObject
     6        property set to the QWebFrame that belongs to the request.
     7
     8        https://bugs.webkit.org/show_bug.cgi?id=29975
     9
     10        * Api/qwebpage.h:
     11        * WebCoreSupport/FrameLoaderClientQt.cpp:
     12        (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction):
     13        (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):
     14        (WebCore::FrameLoaderClientQt::startDownload):
     15        * tests/qwebpage/tst_qwebpage.cpp:
     16        (tst_QWebPage::loadFinished):
     17        (TestNetworkManager::createRequest):
     18        (tst_QWebPage::originatingObjectInNetworkRequests):
     19
    1202009-11-02  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
    221
  • trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp

    r50392 r50454  
    947947    QWebNetworkRequest r(request);
    948948#else
    949     QNetworkRequest r(request.toNetworkRequest());
     949    QNetworkRequest r(request.toNetworkRequest(m_webFrame));
    950950#endif
    951951    QWebPage* page = m_webFrame->page();
     
    972972    QWebNetworkRequest r(request);
    973973#else
    974     QNetworkRequest r(request.toNetworkRequest());
     974    QNetworkRequest r(request.toNetworkRequest(m_webFrame));
    975975#endif
    976976    QWebPage*page = m_webFrame->page();
     
    10021002        return;
    10031003
    1004     emit m_webFrame->page()->downloadRequested(request.toNetworkRequest());
     1004    emit m_webFrame->page()->downloadRequested(request.toNetworkRequest(m_webFrame));
    10051005#endif
    10061006}
  • trunk/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp

    r50058 r50454  
    130130    void screenshot();
    131131
     132    void originatingObjectInNetworkRequests();
     133
    132134private:
    133135    QWebView* m_view;
     
    235237    qRegisterMetaType<QWebFrame*>("QWebFrame*");
    236238    qRegisterMetaType<QNetworkRequest*>("QNetworkRequest*");
    237     QSignalSpy spyNetworkRequestStarted(m_page, SIGNAL(networkRequestStarted(QWebFrame*, QNetworkRequest*)));
    238239    QSignalSpy spyLoadStarted(m_view, SIGNAL(loadStarted()));
    239240    QSignalSpy spyLoadFinished(m_view, SIGNAL(loadFinished(bool)));
     
    246247    QTest::qWait(3000);
    247248
    248     QVERIFY(spyNetworkRequestStarted.count() > 1);
    249249    QVERIFY(spyLoadStarted.count() > 1);
    250250    QVERIFY(spyLoadFinished.count() > 1);
     
    347347
    348348    QList<QUrl> requestedUrls;
     349    QList<QNetworkRequest> requests;
    349350
    350351protected:
    351352    virtual QNetworkReply* createRequest(Operation op, const QNetworkRequest &request, QIODevice* outgoingData) {
     353        requests.append(request);
    352354        requestedUrls.append(request.url());
    353355        return QNetworkAccessManager::createRequest(op, request, outgoingData);
     
    16101612}
    16111613
     1614void tst_QWebPage::originatingObjectInNetworkRequests()
     1615{
     1616    TestNetworkManager* networkManager = new TestNetworkManager(m_page);
     1617    m_page->setNetworkAccessManager(networkManager);
     1618    networkManager->requests.clear();
     1619
     1620    m_view->setHtml(QString("data:text/html,<frameset cols=\"25%,75%\"><frame src=\"data:text/html,"
     1621                            "<head><meta http-equiv='refresh' content='1'></head>foo \">"
     1622                            "<frame src=\"data:text/html,bar\"></frameset>"), QUrl());
     1623    QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
     1624
     1625    QCOMPARE(networkManager->requests.count(), 2);
     1626
     1627    QList<QWebFrame*> childFrames = m_page->mainFrame()->childFrames();
     1628    QCOMPARE(childFrames.count(), 2);
     1629
     1630    for (int i = 0; i < 2; ++i)
     1631        QVERIFY(qobject_cast<QWebFrame*>(networkManager->requests.at(i).originatingObject()) == childFrames.at(i));
     1632}
     1633
    16121634QTEST_MAIN(tst_QWebPage)
    16131635#include "tst_qwebpage.moc"
Note: See TracChangeset for help on using the changeset viewer.