From d12afeff4097dd78f1311511e0c8f74e1a810d47 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 7 Sep 2019 15:51:34 +0200 Subject: Set default redirect policy to NoLessSafeRedirectPolicy Not following redirects is not a feature, but just a hastle for everyone. The main issue with switching this default is that applications that actually do manual redirect handling will break in various ways. FollowRedirectsAttribute was removed as it no longer serves any purpose beyond duplicating the default value. [ChangeLog][Network] QNetworkAccessManager now follows redirects by default with the NoLessSafeRedirectPolicy. [ChangeLog][Potentially Source-Incompatible Changes] QNetworkRequest::FollowRedirectsAttribute was removed and has been superseded by QNetworkRequest::RedirectsPolicyAttribute Fixes: QTBUG-85901 Change-Id: Ic5b776180a4b84ac4fc895158bb5a66a3c91a042 Reviewed-by: Qt CI Bot Reviewed-by: Timur Pocheptsov --- tests/auto/network/access/http2/tst_http2.cpp | 2 +- .../access/qnetworkreply/tst_qnetworkreply.cpp | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'tests/auto/network') diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 775c9604b9..bc685e5ca9 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -935,7 +935,7 @@ void tst_Http2::sendRequest(int streamNumber, QNetworkRequest request(url); request.setAttribute(QNetworkRequest::Http2AllowedAttribute, QVariant(true)); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, QVariant(true)); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain")); request.setPriority(priority); request.setHttp2Configuration(h2Config); diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 109d4ce406..6bec0c8ee1 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -8178,7 +8178,7 @@ void tst_QNetworkReply::ioHttpSingleRedirect() localhost.setPort(server.serverPort()); QNetworkRequest request(localhost); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); QNetworkReplyPtr reply(manager.get(request)); QSignalSpy redSpy(reply.data(), SIGNAL(redirected(QUrl))); @@ -8223,7 +8223,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects() localhost.setPort(server1.serverPort()); QNetworkRequest request(localhost); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); // Set Max redirects to 1. This will cause TooManyRedirectsError request.setMaximumRedirectsAllowed(1); @@ -8285,7 +8285,7 @@ void tst_QNetworkReply::ioHttpRedirectErrors() server.setDataToTransmit(d2s); QNetworkRequest request(localhost); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); QNetworkReplyPtr reply(manager.get(request)); if (localhost.scheme() == "https") reply.data()->ignoreSslErrors(); @@ -8366,7 +8366,7 @@ void tst_QNetworkReply::ioHttpRedirectPolicy() redirectServer.responses.push_back(tempRedirectReplyStr().arg(QString(url.toEncoded())).toLatin1()); // This is the default one we preserve between tests. - QCOMPARE(manager.redirectPolicy(), QNetworkRequest::ManualRedirectPolicy); + QCOMPARE(manager.redirectPolicy(), QNetworkRequest::NoLessSafeRedirectPolicy); manager.setRedirectPolicy(policy); QCOMPARE(manager.redirectPolicy(), policy); @@ -8375,7 +8375,7 @@ void tst_QNetworkReply::ioHttpRedirectPolicy() reply->ignoreSslErrors(); // Restore default: - manager.setRedirectPolicy(QNetworkRequest::ManualRedirectPolicy); + manager.setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); QSignalSpy redirectSpy(reply.data(), SIGNAL(redirected(QUrl))); QSignalSpy finishedSpy(reply.data(), SIGNAL(finished())); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); @@ -8447,15 +8447,15 @@ void tst_QNetworkReply::ioHttpRedirectPolicyErrors() QNetworkRequest request(url); request.setMaximumRedirectsAllowed(maxRedirects); - // We always reset the policy to the default one ('Manual') after any related + // We always reset the policy to the default one ('NoLessSafe') after any related // test is finished: - QCOMPARE(manager.redirectPolicy(), QNetworkRequest::ManualRedirectPolicy); + QCOMPARE(manager.redirectPolicy(), QNetworkRequest::NoLessSafeRedirectPolicy); manager.setRedirectPolicy(policy); QCOMPARE(manager.redirectPolicy(), policy); QNetworkReplyPtr reply(manager.get(request)); // Set it back to default: - manager.setRedirectPolicy(QNetworkRequest::ManualRedirectPolicy); + manager.setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); if (ssl) reply->ignoreSslErrors(); @@ -8490,7 +8490,7 @@ void tst_QNetworkReply::ioHttpUserVerifiedRedirect() redirectServer.setDataToTransmit(tempRedirectReplyStr().arg(QString(url.toEncoded())).toLatin1()); url.setPort(redirectServer.serverPort()); - QCOMPARE(manager.redirectPolicy(), QNetworkRequest::ManualRedirectPolicy); + QCOMPARE(manager.redirectPolicy(), QNetworkRequest::NoLessSafeRedirectPolicy); manager.setRedirectPolicy(QNetworkRequest::UserVerifiedRedirectPolicy); QCOMPARE(manager.redirectPolicy(), QNetworkRequest::UserVerifiedRedirectPolicy); @@ -8508,8 +8508,8 @@ void tst_QNetworkReply::ioHttpUserVerifiedRedirect() }); // Before any test failed, reset the policy to default: - manager.setRedirectPolicy(QNetworkRequest::ManualRedirectPolicy); - QCOMPARE(manager.redirectPolicy(), QNetworkRequest::ManualRedirectPolicy); + manager.setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); + QCOMPARE(manager.redirectPolicy(), QNetworkRequest::NoLessSafeRedirectPolicy); QSignalSpy finishedSpy(reply.data(), SIGNAL(finished())); waitForFinish(reply); -- cgit v1.2.3