WebKit Bugzilla
Attachment 340949 Details for
Bug 185849
: NetworkLoadChecker should check cached redirections
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185849-20180521202226.patch (text/plain), 25.38 KB, created by
youenn fablet
on 2018-05-21 20:22:27 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-05-21 20:22:27 PDT
Size:
25.38 KB
patch
obsolete
>Subversion Revision: 232031 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f514aaa94823cc055a4dee12b4f26c2863832291..4507d9a1a146a9eb6c9f995bd800df3d72d882e3 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2018-05-21 Youenn Fablet <youenn@apple.com> >+ >+ NetworkLoadChecker should check cached redirections >+ https://bugs.webkit.org/show_bug.cgi?id=185849 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Covered by updated tests. >+ >+ * loader/SubresourceLoader.cpp: >+ (WebCore::SubresourceLoader::willSendRequestInternal): >+ Log the case of a redirection with fetch error mode. >+ > 2018-05-21 Chris Dumez <cdumez@apple.com> > > File's structured serialization should serialize lastModified attribute >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index d1815fc0aa2170df9c63407c9dcd9662314962d8..9d8b383811fbfe3725ab9db2b54477871d64af07 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,24 @@ >+2018-05-21 Youenn Fablet <youenn@apple.com> >+ >+ NetworkLoadChecker should check cached redirections >+ https://bugs.webkit.org/show_bug.cgi?id=185849 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/NetworkLoadChecker.cpp: >+ (WebKit::NetworkLoadChecker::checkRedirection): >+ Set the resource error url as done by WebCore SubresourceLoader. >+ * NetworkProcess/NetworkResourceLoader.cpp: >+ (WebKit::NetworkResourceLoader::retrieveCacheEntry): >+ Pass the resource request to dispatchWillSendRedirectedRequest now needs it. >+ (WebKit::NetworkResourceLoader::willSendRedirectedRequest): >+ Make sure that m_networkLoad is not null before cancelling it since we might be checking a cached redirection. >+ (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): >+ Ensure the redirect response is coming from the Network before adding it to the cache. >+ (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): >+ Call willSendRedirectedRequest to make sure the cached redirect is validated. >+ * NetworkProcess/NetworkResourceLoader.h: >+ > 2018-05-21 Brian Burg <bburg@apple.com> > > Web Automation: always return an empty cookie list if document.cookieURL() is empty >diff --git a/Source/WebCore/loader/SubresourceLoader.cpp b/Source/WebCore/loader/SubresourceLoader.cpp >index f547035f3e3f273227408ed3ec4604417f5e3319..447c071905c5be2a0b41a483a1ec0e16ef432c5c 100644 >--- a/Source/WebCore/loader/SubresourceLoader.cpp >+++ b/Source/WebCore/loader/SubresourceLoader.cpp >@@ -209,7 +209,12 @@ void SubresourceLoader::willSendRequestInternal(ResourceRequest&& newRequest, co > if (!redirectResponse.isNull()) { > if (options().redirect != FetchOptions::Redirect::Follow) { > if (options().redirect == FetchOptions::Redirect::Error) { >- cancel(ResourceError { errorDomainWebKitInternal, 0, redirectResponse.url(), "Redirections are not allowed", ResourceError::Type::AccessControl }); >+ ResourceError error { errorDomainWebKitInternal, 0, redirectResponse.url(), ASCIILiteral("Redirections are not allowed"), ResourceError::Type::AccessControl }; >+ >+ if (m_frame && m_frame->document()) >+ m_frame->document()->addConsoleMessage(MessageSource::Security, MessageLevel::Error, error.localizedDescription()); >+ >+ cancel(error); > return completionHandler(WTFMove(newRequest)); > } > >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >index 0a4d5c11308dfb2863f2ee56fb2bb8c491c7214a..778ed9e36e27a9faea5b94b7943efc545593ce7c 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >@@ -100,7 +100,7 @@ void NetworkLoadChecker::checkRedirection(ResourceResponse& redirectResponse, Re > auto error = validateResponse(redirectResponse); > if (!error.isNull()) { > auto errorMessage = makeString("Cross-origin redirection to ", request.url().string(), " denied by Cross-Origin Resource Sharing policy: ", error.localizedDescription()); >- handler(makeUnexpected(ResourceError { String { }, 0, request.url(), WTFMove(errorMessage), ResourceError::Type::AccessControl })); >+ handler(makeUnexpected(ResourceError { String { }, 0, redirectResponse.url(), WTFMove(errorMessage), ResourceError::Type::AccessControl })); > return; > } > >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >index 44a32543adad13b7e0e42fc9846db53a9eae155e..0cff3310ecc2f62d56ad4592235639b2ede54643 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >@@ -230,7 +230,7 @@ void NetworkResourceLoader::retrieveCacheEntry(const ResourceRequest& request) > } > if (entry->redirectRequest()) { > RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Handling redirect (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >- loader->dispatchWillSendRequestForCacheEntry(WTFMove(entry)); >+ loader->dispatchWillSendRequestForCacheEntry(WTFMove(request), WTFMove(entry)); > return; > } > if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) { >@@ -615,6 +615,9 @@ void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&& request, > { > ++m_redirectCount; > >+ if (redirectResponse.source() == ResourceResponse::Source::Network && canUseCachedRedirect(request)) >+ m_cache->storeRedirect(request, redirectResponse, redirectRequest); >+ > if (m_networkLoadChecker) { > m_networkLoadChecker->checkRedirection(redirectResponse, WTFMove(redirectRequest), [protectedThis = makeRef(*this), this, storedCredentialsPolicy = m_networkLoadChecker->storedCredentialsPolicy(), request = WTFMove(request), redirectResponse](auto&& result) mutable { > if (!result.has_value()) { >@@ -622,9 +625,7 @@ void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&& request, > return; > > if (m_parameters.options.redirect == FetchOptions::Redirect::Manual) { >- redirectResponse.setType(ResourceResponse::Type::Opaqueredirect); >- this->didReceiveResponse(WTFMove(redirectResponse)); >- this->didFinishLoading({ }); >+ this->didFinishWithRedirectResponse(WTFMove(redirectResponse)); > return; > } > >@@ -634,7 +635,8 @@ void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&& request, > > if (storedCredentialsPolicy != m_networkLoadChecker->storedCredentialsPolicy()) { > // We need to restart the load to update the session according the new credential policy. >- m_networkLoad->cancel(); >+ if (m_networkLoad) >+ m_networkLoad->cancel(); > auto request = WTFMove(result.value()); > m_networkLoadChecker->prepareRedirectedRequest(request); > >@@ -656,13 +658,10 @@ void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&& request, > continueWillSendRedirectedRequest(WTFMove(request), WTFMove(redirectRequest), WTFMove(redirectResponse)); > } > >-void NetworkResourceLoader::continueWillSendRedirectedRequest(WebCore::ResourceRequest&& request, WebCore::ResourceRequest&& redirectRequest, ResourceResponse&& redirectResponse) >+void NetworkResourceLoader::continueWillSendRedirectedRequest(ResourceRequest&& request, ResourceRequest&& redirectRequest, ResourceResponse&& redirectResponse) > { > ASSERT(!isSynchronous()); > >- if (canUseCachedRedirect(request)) >- m_cache->storeRedirect(request, redirectResponse, redirectRequest); >- > if (m_parameters.shouldEnableFromOriginResponseHeader && shouldCancelCrossOriginLoad(redirectResponse, m_parameters.frameAncestorOrigins) && m_networkLoad) { > didFailLoading(fromOriginResourceError(redirectResponse.url())); > return; >@@ -671,6 +670,23 @@ void NetworkResourceLoader::continueWillSendRedirectedRequest(WebCore::ResourceR > send(Messages::WebResourceLoader::WillSendRequest(redirectRequest, sanitizeResponseIfPossible(WTFMove(redirectResponse), ResourceResponse::SanitizationType::Redirection))); > } > >+void NetworkResourceLoader::didFinishWithRedirectResponse(ResourceResponse&& redirectResponse) >+{ >+ redirectResponse.setType(ResourceResponse::Type::Opaqueredirect); >+ didReceiveResponse(WTFMove(redirectResponse)); >+ >+ WebCore::NetworkLoadMetrics networkLoadMetrics; >+ networkLoadMetrics.markComplete(); >+ networkLoadMetrics.requestHeaderBytesSent = 0; >+ networkLoadMetrics.requestBodyBytesSent = 0; >+ networkLoadMetrics.responseHeaderBytesReceived = 0; >+ networkLoadMetrics.responseBodyBytesReceived = 0; >+ networkLoadMetrics.responseBodyDecodedSize = 0; >+ send(Messages::WebResourceLoader::DidFinishResourceLoad { networkLoadMetrics }); >+ >+ cleanup(LoadResult::Success); >+} >+ > ResourceResponse NetworkResourceLoader::sanitizeResponseIfPossible(ResourceResponse&& response, ResourceResponse::SanitizationType type) > { > if (m_parameters.shouldRestrictHTTPResponseAccess) >@@ -903,22 +919,15 @@ void NetworkResourceLoader::validateCacheEntry(std::unique_ptr<NetworkCache::Ent > startNetworkLoad(WTFMove(revalidationRequest), FirstLoad::Yes); > } > >-void NetworkResourceLoader::dispatchWillSendRequestForCacheEntry(std::unique_ptr<NetworkCache::Entry> entry) >+void NetworkResourceLoader::dispatchWillSendRequestForCacheEntry(ResourceRequest&& request, std::unique_ptr<NetworkCache::Entry>&& entry) > { > ASSERT(entry->redirectRequest()); > ASSERT(!m_isWaitingContinueWillSendRequestForCachedRedirect); > > LOG(NetworkCache, "(NetworkProcess) Executing cached redirect"); > >- auto& response = entry->response(); >- if (m_parameters.shouldEnableFromOriginResponseHeader && shouldCancelCrossOriginLoad(response, m_parameters.frameAncestorOrigins) && m_networkLoad) { >- didFailLoading(fromOriginResourceError(response.url())); >- return; >- } >- >- ++m_redirectCount; >- send(Messages::WebResourceLoader::WillSendRequest { *entry->redirectRequest(), sanitizeResponseIfPossible(ResourceResponse { response }, ResourceResponse::SanitizationType::Redirection) }); > m_isWaitingContinueWillSendRequestForCachedRedirect = true; >+ willSendRedirectedRequest(WTFMove(request), ResourceRequest { *entry->redirectRequest() }, ResourceResponse { entry->response() }); > } > > IPC::Connection* NetworkResourceLoader::messageSenderConnection() >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoader.h b/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >index 773ca82fc5c84350457ab6968760843806361e4f..c2ccdd94a99a180481a8c83a2b120f26e2355cb0 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoader.h >@@ -137,7 +137,7 @@ private: > void didRetrieveCacheEntry(std::unique_ptr<NetworkCache::Entry>); > void sendResultForCacheEntry(std::unique_ptr<NetworkCache::Entry>); > void validateCacheEntry(std::unique_ptr<NetworkCache::Entry>); >- void dispatchWillSendRequestForCacheEntry(std::unique_ptr<NetworkCache::Entry>); >+ void dispatchWillSendRequestForCacheEntry(WebCore::ResourceRequest&&, std::unique_ptr<NetworkCache::Entry>&&); > void continueProcessingCachedEntryAfterDidReceiveResponse(std::unique_ptr<NetworkCache::Entry>); > > bool shouldInterruptLoadForXFrameOptions(const String&, const WebCore::URL&); >@@ -169,7 +169,7 @@ private: > #endif > > void continueWillSendRedirectedRequest(WebCore::ResourceRequest&& request, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&&); >- >+ void didFinishWithRedirectResponse(WebCore::ResourceResponse&&); > WebCore::ResourceResponse sanitizeResponseIfPossible(WebCore::ResourceResponse&&, WebCore::ResourceResponse::SanitizationType); > > // ContentSecurityPolicyClient >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 441dcd8b882d044cdfd8e74b85b901c8ff3ee50c..d742a9487993f977c1f8d6ef7e2fed8051f9906c 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,17 @@ >+2018-05-21 Youenn Fablet <youenn@apple.com> >+ >+ NetworkLoadChecker should check cached redirections >+ https://bugs.webkit.org/show_bug.cgi?id=185849 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * http/tests/fetch/redirectmode-and-preload-expected.txt: >+ * http/tests/fetch/redirectmode-and-preload.html: >+ Removed tests that mix manual/error redirect mode with no-cors since this is no longer a valid possibility. >+ * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: >+ * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: >+ * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Removed. >+ > 2018-05-21 Chris Dumez <cdumez@apple.com> > > File's structured serialization should serialize lastModified attribute >diff --git a/LayoutTests/http/tests/fetch/redirectmode-and-preload-expected.txt b/LayoutTests/http/tests/fetch/redirectmode-and-preload-expected.txt >index 4ab5519ccf6f4aba81ca0bc8aff0d2c0e7b6386d..ae5f8ca2f2f067bb9c23d3a600f0fbf7516c17d5 100644 >--- a/LayoutTests/http/tests/fetch/redirectmode-and-preload-expected.txt >+++ b/LayoutTests/http/tests/fetch/redirectmode-and-preload-expected.txt >@@ -1,13 +1,6 @@ >-CONSOLE MESSAGE: line 19: No-Cors mode requires follow redirect mode >-CONSOLE MESSAGE: line 19: Not allowed to request resource >-CONSOLE MESSAGE: line 19: Fetch API cannot load http://127.0.0.1:8000/fetch/resources/redirect-with-cache.php?enableCaching&url=http://localhost:8000/security/resources/allow-if-origin.php?allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=alert-fail.js&contentType=text/ascii due to access control checks. >-CONSOLE MESSAGE: line 32: No-Cors mode requires follow redirect mode >-CONSOLE MESSAGE: line 32: Not allowed to request resource >-CONSOLE MESSAGE: line 32: Fetch API cannot load http://127.0.0.1:8000/fetch/resources/redirect-with-cache.php?enableCaching&url=http://localhost:8000/security/resources/allow-if-origin.php?allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=alert-fail.js&contentType=text/ascii due to access control checks. >+CONSOLE MESSAGE: Redirections are not allowed > CONSOLE MESSAGE: Fetch API cannot load http://127.0.0.1:8000/fetch/resources/redirect-with-cache.php?enableCaching&url=http://localhost:8000/security/resources/allow-if-origin.php?allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=alert-fail.js&contentType=text/ascii due to access control checks. > >-PASS Fetch should check for redirections even if resource is preloaded (same fetch options except for redirect mode) > PASS Fetch should check for redirections even if resource is preloaded (different fetch mode, different redirect mode) >-PASS Fetch should check for redirections even if resource is preloaded (same fetch options except for redirect mode) > PASS Fetch should check for redirections even if resource is preloaded (different fetch mode, different redirect mode) > >diff --git a/LayoutTests/http/tests/fetch/redirectmode-and-preload.html b/LayoutTests/http/tests/fetch/redirectmode-and-preload.html >index 8dbb0087e2ca2b491af068c7132e1f14e963674f..8bcd9b40b8ae4c61ea03e75a2e29131010a58473 100644 >--- a/LayoutTests/http/tests/fetch/redirectmode-and-preload.html >+++ b/LayoutTests/http/tests/fetch/redirectmode-and-preload.html >@@ -15,9 +15,6 @@ > function startTests() > { > var preloadUrl = "./resources/redirect-with-cache.php?enableCaching&url=http://localhost:8000/security/resources/allow-if-origin.php?allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=alert-fail.js&contentType=text/ascii"; >- promise_test(function(test) { >- return promise_rejects(test,new TypeError(), fetch(preloadUrl, {redirect: "manual", mode: "no-cors", credentials: "include"})); >- }, "Fetch should check for redirections even if resource is preloaded (same fetch options except for redirect mode)"); > > promise_test(function(test) { > return fetch(preloadUrl, {redirect: "manual", mode: "cors", credentials: "include"}).then((response) => { >@@ -28,10 +25,6 @@ function startTests() > }); > }, "Fetch should check for redirections even if resource is preloaded (different fetch mode, different redirect mode)"); > >- promise_test(function(test) { >- return promise_rejects(test, new TypeError(), fetch(preloadUrl, {redirect: "error", mode: "no-cors", credentials: "include"})); >- }, "Fetch should check for redirections even if resource is preloaded (same fetch options except for redirect mode)"); >- > promise_test(function(test) { > return promise_rejects(test, new TypeError(), fetch(preloadUrl, {redirect: "error", mode: "cors", credentials: "include"})); > }, "Fetch should check for redirections even if resource is preloaded (different fetch mode, different redirect mode)"); >diff --git a/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt b/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt >index 593f6c62c082a17aa229bcd69b9d0b47bae1fec1..b7fe7446c7e2e630af5e4fcb80a0443460f2e806 100644 >--- a/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt >+++ b/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt >@@ -1,5 +1,5 @@ > CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi due to access control checks. >+CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi due to access control checks. > CONSOLE MESSAGE: Cross-origin redirection to foo://bar.cgi denied by Cross-Origin Resource Sharing policy: URL is either a non-HTTP URL or contains credentials. > CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=foo://bar.cgi&%20%20access-control-allow-origin=http://127.0.0.1:8000 due to access control checks. > CONSOLE MESSAGE: Preflight response is not successful >diff --git a/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt b/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt >index ceca46892ca3db6c7af3ffb15af0e6fc621df765..2f32d7baf1cd13eda1cac43efee66ff7fdd2d490 100644 >--- a/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt >+++ b/LayoutTests/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt >@@ -1,11 +1,11 @@ > CONSOLE MESSAGE: line 25: Cross-origin redirection to http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: line 25: XMLHttpRequest cannot load http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. >+CONSOLE MESSAGE: line 25: XMLHttpRequest cannot load http://localhost:8000/resources/redirect.php?url=http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. > CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. >+CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/resources/redirect.php?url=http://127.0.0.1:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. > CONSOLE MESSAGE: line 25: Cross-origin redirection to http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: line 25: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. >+CONSOLE MESSAGE: line 25: XMLHttpRequest cannot load http://localhost:8000/resources/redirect.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. > CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. >+CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/resources/redirect.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow.cgi due to access control checks. > Tests that redirects between origins are never allowed, even when access control is involved. > > Per the spec, these test cases should be allowed, but cross-origin redirects are currently unsupported in WebCore. >diff --git a/LayoutTests/platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt b/LayoutTests/platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt >deleted file mode 100644 >index b7fe7446c7e2e630af5e4fcb80a0443460f2e806..0000000000000000000000000000000000000000 >--- a/LayoutTests/platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt >+++ /dev/null >@@ -1,34 +0,0 @@ >-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi denied by Cross-Origin Resource Sharing policy: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi due to access control checks. >-CONSOLE MESSAGE: Cross-origin redirection to foo://bar.cgi denied by Cross-Origin Resource Sharing policy: URL is either a non-HTTP URL or contains credentials. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=foo://bar.cgi&%20%20access-control-allow-origin=http://127.0.0.1:8000 due to access control checks. >-CONSOLE MESSAGE: Preflight response is not successful >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?redirect-preflight=true&%20%20url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi&%20%20access-control-allow-origin=* due to access control checks. >-CONSOLE MESSAGE: Request header field x-webkit is not allowed by Access-Control-Allow-Headers. >-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi due to access control checks. >-Tests that asynchronous XMLHttpRequests handle redirects according to the CORS standard. >- >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi without credentials >-Expecting success: false >-PASS: 0 >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi& access-control-allow-origin=http://127.0.0.1:8000 without credentials >-Expecting success: true >-PASS: PASS: Cross-domain access allowed. >- >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=http://username:password@localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi& access-control-allow-origin=http://127.0.0.1:8000 without credentials >-Expecting success: true >-PASS: PASS: Cross-domain access allowed. >- >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?url=foo://bar.cgi& access-control-allow-origin=http://127.0.0.1:8000 without credentials >-Expecting success: false >-PASS: 0 >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?redirect-preflight=true& url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi& access-control-allow-origin=* without credentials >-Expecting success: false >-PASS: 0 >-Testing http://localhost:8000/xmlhttprequest/resources/redirect-cors.php?redirect-preflight=false& url=http://localhost:8000/xmlhttprequest/resources/access-control-basic-allow-star.cgi& access-control-allow-origin=*& access-control-allow-headers=x-webkit without credentials >-Expecting success: false >-PASS: 0 >-Testing resources/redirect-cors.php?url=http://127.0.0.1:8000/xmlhttprequest/resources/get.txt without credentials >-Expecting success: true >-PASS: PASS >-
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
Flags:
ews-watchlist
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185849
:
340918
|
340931
|
340934
|
340949
|
340951
|
340991
|
340994
|
341022
|
341050
|
341108