WebKit Bugzilla
Attachment 356593 Details for
Bug 114965
: [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-114965-20181205112458.patch (text/plain), 9.84 KB, created by
Rob Buis
on 2018-12-05 02:24:59 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Rob Buis
Created:
2018-12-05 02:24:59 PST
Size:
9.84 KB
patch
obsolete
>Subversion Revision: 238890 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index ecc907c6bd207c8a0d3d3d4fae999fb5e1bae3e6..4b5e21bbb267406f78838cd72ebd31ec0a546540 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,25 @@ >+2018-12-05 Rob Buis <rbuis@igalia.com> >+ >+ [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html) >+ https://bugs.webkit.org/show_bug.cgi?id=114965 >+ >+ Reviewed by Frédéric Wang. >+ >+ HEAD requests should not be changed to GET after 303 redirects, see [1]. >+ This was fixed earlier for GTK [2]. >+ >+ Behavior matches Firefox and Chrome. >+ >+ [1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#section-7.4 >+ [2] https://bugs.webkit.org/show_bug.cgi?id=110127 >+ >+ Tests: web-platform-tests/fetch/api/redirect/redirect-method.html >+ web-platform-tests/fetch/api/redirect/redirect-method-worker.html >+ http/tests/xmlhttprequest/head-redirection.html >+ >+ * platform/network/mac/ResourceHandleMac.mm: >+ (WebCore::ResourceHandle::willSendRequest): >+ > 2018-12-05 Rob Buis <rbuis@igalia.com> > > Align with Fetch on data: URLs >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index efce1cc93fdd90050a4894e8f9ea467ab44fe84e..d8df7441d7c345324eedf483addde018a4d8cec1 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,25 @@ >+2018-12-05 Rob Buis <rbuis@igalia.com> >+ >+ [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html) >+ https://bugs.webkit.org/show_bug.cgi?id=114965 >+ >+ Reviewed by Frédéric Wang. >+ >+ HEAD requests should not be changed to GET after 303 redirects, see [1]. >+ This was fixed earlier for GTK [2]. >+ >+ Behavior matches Firefox and Chrome. >+ >+ [1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#section-7.4 >+ [2] https://bugs.webkit.org/show_bug.cgi?id=110127 >+ >+ Tests: web-platform-tests/fetch/api/redirect/redirect-method.html >+ web-platform-tests/fetch/api/redirect/redirect-method-worker.html >+ http/tests/xmlhttprequest/head-redirection.html >+ >+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: >+ (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): >+ > 2018-12-04 Fujii Hironori <Hironori.Fujii@sony.com> > > Remove using namespace WebCore and WebKit under WebKit/Shared/API >diff --git a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm b/Source/WebCore/platform/network/mac/ResourceHandleMac.mm >index e7759eb4754a3511c7879e88bbd994af8217b534..26dd70a07813cfc37fbce9ce6bb31bad9e1abf4d 100644 >--- a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm >+++ b/Source/WebCore/platform/network/mac/ResourceHandleMac.mm >@@ -427,7 +427,8 @@ void ResourceHandle::willSendRequest(ResourceRequest&& request, ResourceResponse > if (!originalContentType.isEmpty()) > request.setHTTPHeaderField(HTTPHeaderName::ContentType, originalContentType); > } >- } >+ } else if (redirectResponse.httpStatusCode() == 303 && equalLettersIgnoringASCIICase(d->m_firstRequest.httpMethod(), "head")) // FIXME: (rdar://problem/13706454). >+ request.setHTTPMethod("HEAD"_s); > > // Should not set Referer after a redirect from a secure resource to non-secure one. > if (!request.url().protocolIs("https") && protocolIs(request.httpReferrer(), "https") && d->m_context->shouldClearReferrerOnHTTPSToHTTPRedirect()) >diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >index 68c1d57593258325805113f36c7e5e4da8afe4cb..c84141b8dd48ebe722e1d59b67e0c4b133892dea 100644 >--- a/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >+++ b/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm >@@ -307,7 +307,8 @@ void NetworkDataTaskCocoa::willPerformHTTPRedirection(WebCore::ResourceResponse& > String originalContentType = m_firstRequest.httpContentType(); > if (!originalContentType.isEmpty()) > request.setHTTPHeaderField(WebCore::HTTPHeaderName::ContentType, originalContentType); >- } >+ } else if (redirectResponse.httpStatusCode() == 303 && equalLettersIgnoringASCIICase(m_firstRequest.httpMethod(), "head")) // FIXME: (rdar://problem/13706454). >+ request.setHTTPMethod("HEAD"_s); > > // Should not set Referer after a redirect from a secure resource to non-secure one. > if (m_shouldClearReferrerOnHTTPSToHTTPRedirect && !request.url().protocolIs("https") && WTF::protocolIs(request.httpReferrer(), "https")) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 4606e2cd9ee820695d65bc98e139c3a09dcf80af..2b6eb8c247f1022c5f5a4cf33b9d69b102eda9cf 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2018-12-05 Rob Buis <rbuis@igalia.com> >+ >+ [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html) >+ https://bugs.webkit.org/show_bug.cgi?id=114965 >+ >+ Reviewed by Frédéric Wang. >+ >+ Update these since we now expect to pass head-redirection.html here. >+ >+ * platform/ios/TestExpectations: >+ * platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt: Removed. >+ > 2018-12-05 Javier Fernandez <jfernandez@igalia.com> > > [css-grid] Crash on debug changing the style of a positioned element >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 6c7a97813c5ab8d0a6ec6a8bdc311b823e631948..4a214f23009eda58f578ed69beb3e2aefcc10603 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,15 @@ >+2018-12-05 Rob Buis <rbuis@igalia.com> >+ >+ [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html) >+ https://bugs.webkit.org/show_bug.cgi?id=114965 >+ >+ Reviewed by Frédéric Wang. >+ >+ Update test expectations. >+ >+ * web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: >+ * web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: >+ > 2018-12-05 Rob Buis <rbuis@igalia.com> > > Align with Fetch on data: URLs >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt >index 24af5ffe774d10ce6e1bc09037a91623279b111e..ae32d5146630f4ab54bb46487700646d606dd68f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt >@@ -8,7 +8,7 @@ PASS Redirect 302 with POST > PASS Redirect 302 with HEAD > PASS Redirect 303 with GET > PASS Redirect 303 with POST >-FAIL Redirect 303 with HEAD assert_equals: Request method after redirection is HEAD expected "HEAD" but got "GET" >+PASS Redirect 303 with HEAD > PASS Redirect 307 with GET > PASS Redirect 307 with POST (string body) > PASS Redirect 307 with POST (blob body) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt >index 24af5ffe774d10ce6e1bc09037a91623279b111e..ae32d5146630f4ab54bb46487700646d606dd68f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt >@@ -8,7 +8,7 @@ PASS Redirect 302 with POST > PASS Redirect 302 with HEAD > PASS Redirect 303 with GET > PASS Redirect 303 with POST >-FAIL Redirect 303 with HEAD assert_equals: Request method after redirection is HEAD expected "HEAD" but got "GET" >+PASS Redirect 303 with HEAD > PASS Redirect 307 with GET > PASS Redirect 307 with POST (string body) > PASS Redirect 307 with POST (blob body) >diff --git a/LayoutTests/platform/ios/TestExpectations b/LayoutTests/platform/ios/TestExpectations >index f0fde23dac468a32e622e0d0750191dd12b7388c..fc23976e6649618c859d021743cf1a252f435936 100644 >--- a/LayoutTests/platform/ios/TestExpectations >+++ b/LayoutTests/platform/ios/TestExpectations >@@ -1551,7 +1551,6 @@ http/tests/webarchive/test-css-url-encoding.html > # XMLHttpRequest tests that fail: > http/tests/xmlhttprequest/basic-auth-nopassword.html [ Failure ] > http/tests/xmlhttprequest/default-content-type-dashboard.html [ Failure ] >-http/tests/xmlhttprequest/head-redirection.html [ Failure ] > > # DeviceMotion tests that time out: > fast/dom/DeviceMotion/no-page-cache.html >diff --git a/LayoutTests/platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt b/LayoutTests/platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt >deleted file mode 100644 >index 005ac614571745c1ca9c7dec3bfb74bd56454167..0000000000000000000000000000000000000000 >--- a/LayoutTests/platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt >+++ /dev/null >@@ -1,10 +0,0 @@ >-This page tests redirection of HEAD requests with different codes (301, 302, 303, 307). >-As described in http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics (in particular sections 7.4.2, 7.4.3, 7.4.4 and 7.4.7 as of version 22 of the document), a redirected HEAD request is expected to remain a HEAD request. >- >-This test loads a web page that does a XHR HEAD request to a first script. This script does a redirection to a second script that sends a response containing the request method as a HTTP header. >- >-HEAD-301 - expected HEAD and received HEAD >-HEAD-302 - expected HEAD and received HEAD >-HEAD-303 - expected HEAD and received GET >-HEAD-307 - expected HEAD and received HEAD >-
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 114965
:
356168
|
356169
|
356175
|
356181
|
356186
|
356199
|
356233
| 356593