Changeset 57085 in webkit


Ignore:
Timestamp:
Apr 5, 2010 10:57:00 AM (14 years ago)
Author:
robert@webkit.org
Message:

2010-04-05 Robert Hogan <robert@webkit.org>

Reviewed by Kenneth Rohde-Christiansen.

[Qt] Fix infinite redirection loop in QNetworkReplyHandler

Qt enters an infinite loop if a redirect response redirects to itself.

Fixes http/tests/xmlhttprequest/connection-error-sync.html

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

  • platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):

2010-04-05 Robert Hogan <robert@webkit.org>

Reviewed by Kenneth Rohde-Christiansen.

[Qt] Fix infinite redirection loop in QNetworkReplyHandler

Unskip http/tests/xmlhttprequest/connection-error-sync.html

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

  • platform/qt/Skipped:
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r57083 r57085  
     12010-04-05  Robert Hogan  <robert@webkit.org>
     2
     3        Reviewed by Kenneth Rohde-Christiansen.
     4
     5        [Qt] Fix infinite redirection loop in QNetworkReplyHandler
     6
     7        Unskip http/tests/xmlhttprequest/connection-error-sync.html
     8
     9        https://bugs.webkit.org/show_bug.cgi?id=37097
     10
     11        * platform/qt/Skipped:
     12
    1132010-04-05  Kenneth Rohde Christiansen  <kenneth@webkit.org>
    214
  • trunk/LayoutTests/platform/qt/Skipped

    r57075 r57085  
    50165016http/tests/xmlhttprequest/access-control-response-with-body-sync.html
    50175017http/tests/xmlhttprequest/cache-override.html
    5018 http/tests/xmlhttprequest/connection-error-sync.html
    50195018http/tests/xmlhttprequest/cookies.html
    50205019http/tests/xmlhttprequest/methods-lower-case.html
  • trunk/WebCore/ChangeLog

    r57082 r57085  
     12010-04-05  Robert Hogan  <robert@webkit.org>
     2
     3        Reviewed by Kenneth Rohde-Christiansen.
     4
     5        [Qt] Fix infinite redirection loop in QNetworkReplyHandler
     6
     7        Qt enters an infinite loop if a redirect response redirects to itself.
     8
     9        Fixes http/tests/xmlhttprequest/connection-error-sync.html
     10
     11        https://bugs.webkit.org/show_bug.cgi?id=37097
     12
     13        * platform/network/qt/QNetworkReplyHandler.cpp:
     14        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
     15
    1162010-04-05  Yury Semikhatsky  <yurys@chromium.org>
    217
  • trunk/WebCore/platform/network/qt/QNetworkReplyHandler.cpp

    r56825 r57085  
    336336    QUrl redirection = m_reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
    337337    if (redirection.isValid()) {
     338        QUrl newUrl = m_reply->url().resolved(redirection);
     339        if (newUrl == m_reply->url()) { // avoid redirecting to the same url as it causes infinite recursion
     340            ResourceError error(newUrl.host(), 400 /*bad request*/,
     341                                newUrl.toString(),
     342                                QCoreApplication::translate("QWebPage", "Infinite recursion in redirection request"));
     343            client->didFail(m_resourceHandle, error);
     344            return;
     345        }
     346
    338347        m_redirected = true;
    339348
    340         QUrl newUrl = m_reply->url().resolved(redirection);
    341349        ResourceRequest newRequest = m_resourceHandle->request();
    342350        newRequest.setURL(newUrl);
Note: See TracChangeset for help on using the changeset viewer.