[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

robert at webkit.org robert at webkit.org
Wed Dec 22 14:02:16 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d04c18ed8c62620c0b4b828a9b7d5104053c8443
Author: robert at webkit.org <robert at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 1 18:40:19 2010 +0000

    2010-10-01  Robert Hogan  <robert at webkit.org>
    
            Reviewed by Adam Barth.
    
            [Qt] Fix http/tests/loading/redirect-methods.html
    
            https://bugs.webkit.org/show_bug.cgi?id=41571
    
            Unskip http/tests/loading/redirect-methods.html
    
            * platform/qt/Skipped:
    2010-10-01  Robert Hogan  <robert at webkit.org>
    
            Reviewed by Adam Barth.
    
            [Qt] Fix http/tests/loading/redirect-methods.html
    
            Document our redirection behaviour too.
    
            https://bugs.webkit.org/show_bug.cgi?id=41571
    
            * platform/network/qt/QNetworkReplyHandler.cpp:
            (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
            (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
            * platform/network/qt/QNetworkReplyHandler.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68906 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index d9c8c30..bd8474d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-01  Robert Hogan  <robert at webkit.org>
+
+        Reviewed by Adam Barth.
+
+        [Qt] Fix http/tests/loading/redirect-methods.html
+
+        https://bugs.webkit.org/show_bug.cgi?id=41571
+
+        Unskip http/tests/loading/redirect-methods.html
+ 
+        * platform/qt/Skipped:
+
 2010-09-30  Ryosuke Niwa  <rniwa at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped
index d49e142..8d46cad 100644
--- a/LayoutTests/platform/qt/Skipped
+++ b/LayoutTests/platform/qt/Skipped
@@ -182,9 +182,6 @@ http/tests/wml
 # https://bugs.webkit.org/show_bug.cgi?id=44282
 http/tests/incremental/slow-utf8-text.pl
 
-# webkit.org/b/41571
-http/tests/loading/redirect-methods.html
-
 # expected results need updating
 http/tests/loading/simple-subframe.html
 
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 390a49c..f20294e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-10-01  Robert Hogan  <robert at webkit.org>
+
+        Reviewed by Adam Barth.
+
+        [Qt] Fix http/tests/loading/redirect-methods.html
+
+        Document our redirection behaviour too.
+
+        https://bugs.webkit.org/show_bug.cgi?id=41571
+
+        * platform/network/qt/QNetworkReplyHandler.cpp:
+        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
+        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
+        * platform/network/qt/QNetworkReplyHandler.h:
+
 2010-10-01  Adam Roben  <aroben at apple.com>
 
         Copy forwarding headers and Inspector JS files as part of
diff --git a/WebCore/platform/network/qt/QNetworkReplyHandler.cpp b/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
index ca3af75..032dd4c 100644
--- a/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
+++ b/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
@@ -137,6 +137,30 @@ bool FormDataIODevice::isSequential() const
     return true;
 }
 
+static QString httpMethodString(QNetworkAccessManager::Operation method)
+{
+    switch (method) {
+    case QNetworkAccessManager::GetOperation:
+        return "GET";
+    case QNetworkAccessManager::HeadOperation:
+        return "HEAD";
+    case QNetworkAccessManager::PostOperation:
+        return "POST";
+    case QNetworkAccessManager::PutOperation:
+        return "PUT";
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+    case QNetworkAccessManager::DeleteOperation:
+        return "DELETE";
+#endif
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
+    case QNetworkAccessManager::CustomOperation:
+        return "OPTIONS";
+#endif
+    default:
+        return "GET";
+    }
+}
+
 QNetworkReplyHandler::QNetworkReplyHandler(ResourceHandle* handle, LoadMode loadMode)
     : QObject(0)
     , m_reply(0)
@@ -359,13 +383,17 @@ void QNetworkReplyHandler::sendResponseIfNeeded()
         }
         m_redirected = true;
 
-        ResourceRequest newRequest = m_resourceHandle->firstRequest();
-        newRequest.setURL(newUrl);
 
-        if (((statusCode >= 301 && statusCode <= 303) || statusCode == 307) && newRequest.httpMethod() == "POST") {
+        //  Status Code 301 (Moved Permanently), 302 (Moved Temporarily), 303 (See Other):
+        //    - If original request is POST convert to GET and redirect automatically
+        //  Status Code 307 (Temporary Redirect) and all other redirect status codes:
+        //    - Use the HTTP method from the previous request
+        if ((statusCode >= 301 && statusCode <= 303) && m_resourceHandle->firstRequest().httpMethod() == "POST")
             m_method = QNetworkAccessManager::GetOperation;
-            newRequest.setHTTPMethod("GET");
-        }
+
+        ResourceRequest newRequest = m_resourceHandle->firstRequest();
+        newRequest.setHTTPMethod(httpMethodString(m_method));
+        newRequest.setURL(newUrl);
 
         // Should not set Referer after a redirect from a secure resource to non-secure one.
         if (!newRequest.url().protocolIs("https") && protocolIs(newRequest.httpReferrer(), "https"))

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list