Diff
Modified: trunk/LayoutTests/ChangeLog (251709 => 251710)
--- trunk/LayoutTests/ChangeLog 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/LayoutTests/ChangeLog 2019-10-29 17:04:09 UTC (rev 251710)
@@ -1,5 +1,17 @@
2019-10-29 Chris Dumez <cdu...@apple.com>
+ Unreviewed, rolling out r251594.
+
+ Caused an API test failure
+
+ Reverted changeset:
+
+ "mp4 video element broken with service worker"
+ https://bugs.webkit.org/show_bug.cgi?id=184447
+ https://trac.webkit.org/changeset/251594
+
+2019-10-29 Chris Dumez <cdu...@apple.com>
+
Unreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash
https://bugs.webkit.org/show_bug.cgi?id=203566
Modified: trunk/LayoutTests/TestExpectations (251709 => 251710)
--- trunk/LayoutTests/TestExpectations 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/LayoutTests/TestExpectations 2019-10-29 17:04:09 UTC (rev 251710)
@@ -760,6 +760,7 @@
# These fetch tests time out
imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-no-load-event.https.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination.https.html [ Skip ]
+imported/w3c/web-platform-tests/fetch/range/sw.https.window.html [ Skip ]
imported/w3c/web-platform-tests/fetch/content-encoding/bad-gzip-body.any.worker.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-prefetch.https.html [ Skip ]
imported/w3c/web-platform-tests/fetch/content-type/response.window.html [ Skip ]
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (251709 => 251710)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2019-10-29 17:04:09 UTC (rev 251710)
@@ -1,5 +1,17 @@
2019-10-29 Chris Dumez <cdu...@apple.com>
+ Unreviewed, rolling out r251594.
+
+ Caused an API test failure
+
+ Reverted changeset:
+
+ "mp4 video element broken with service worker"
+ https://bugs.webkit.org/show_bug.cgi?id=184447
+ https://trac.webkit.org/changeset/251594
+
+2019-10-29 Chris Dumez <cdu...@apple.com>
+
Unreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash
https://bugs.webkit.org/show_bug.cgi?id=203566
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/sw.https.window-expected.txt (251709 => 251710)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/sw.https.window-expected.txt 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/sw.https.window-expected.txt 2019-10-29 17:04:09 UTC (rev 251710)
@@ -1,11 +1,5 @@
+#PID UNRESPONSIVE - com.apple.WebKit.WebContent.Development (pid 73757)
+FAIL: Timed out waiting for notifyDone to be called
-PASS Defer range header filter tests to service worker
-PASS Defer range header passthrough tests to service worker
-PASS Ranged response not allowed following no-cors ranged request
-PASS Non-opaque ranged response executed
-PASS Accept-Encoding should not appear in a service worker
-PASS Range headers correctly preserved
-PASS Range headers correctly removed
-PASS Headers correctly filtered
-PASS Include range header in network request
-
+#EOF
+#EOF
Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (251709 => 251710)
--- trunk/LayoutTests/platform/mac-wk1/TestExpectations 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2019-10-29 17:04:09 UTC (rev 251710)
@@ -290,7 +290,6 @@
imported/w3c/web-platform-tests/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/request/destination [ Skip ]
imported/w3c/web-platform-tests/fetch/cross-origin-resource-policy [ Skip ]
-imported/w3c/web-platform-tests/fetch/range/sw.https.window.html [ Skip ]
imported/w3c/web-platform-tests/server-timing/service_worker_idl.html [ Skip ]
imported/w3c/web-platform-tests/service-workers [ Skip ]
imported/w3c/web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https.html [ Skip ]
Modified: trunk/Source/WebCore/ChangeLog (251709 => 251710)
--- trunk/Source/WebCore/ChangeLog 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/ChangeLog 2019-10-29 17:04:09 UTC (rev 251710)
@@ -1,5 +1,17 @@
2019-10-29 Chris Dumez <cdu...@apple.com>
+ Unreviewed, rolling out r251594.
+
+ Caused an API test failure
+
+ Reverted changeset:
+
+ "mp4 video element broken with service worker"
+ https://bugs.webkit.org/show_bug.cgi?id=184447
+ https://trac.webkit.org/changeset/251594
+
+2019-10-29 Chris Dumez <cdu...@apple.com>
+
Unreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash
https://bugs.webkit.org/show_bug.cgi?id=203566
Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp (251709 => 251710)
--- trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -33,12 +33,6 @@
namespace WebCore {
-// https://fetch.spec.whatwg.org/#concept-headers-remove-privileged-no-cors-request-headers
-static void removePrivilegedNoCORSRequestHeaders(HTTPHeaderMap& headers)
-{
- headers.remove(HTTPHeaderName::Range);
-}
-
static ExceptionOr<bool> canWriteHeader(const String& name, const String& value, const String& combinedValue, FetchHeaders::Guard guard)
{
if (!isValidHTTPToken(name))
@@ -68,10 +62,6 @@
if (!canWriteResult.releaseReturnValue())
return { };
headers.set(name, combinedValue);
-
- if (guard == FetchHeaders::Guard::RequestNoCors)
- removePrivilegedNoCORSRequestHeaders(headers);
-
return { };
}
@@ -86,10 +76,6 @@
headers.add(header.keyAsHTTPHeaderName.value(), header.value);
else
headers.add(header.key, header.value);
-
- if (guard == FetchHeaders::Guard::RequestNoCors)
- removePrivilegedNoCORSRequestHeaders(headers);
-
return { };
}
@@ -151,25 +137,14 @@
return appendToHeaderMap(name, value, m_headers, m_guard);
}
-// https://fetch.spec.whatwg.org/#dom-headers-delete
ExceptionOr<void> FetchHeaders::remove(const String& name)
{
- if (!isValidHTTPToken(name))
- return Exception { TypeError, makeString("Invalid header name: '", name, "'") };
- if (m_guard == FetchHeaders::Guard::Immutable)
- return Exception { TypeError, "Headers object's guard is 'immutable'"_s };
- if (m_guard == FetchHeaders::Guard::Request && isForbiddenHeaderName(name))
+ auto canWriteResult = canWriteHeader(name, { }, { }, m_guard);
+ if (canWriteResult.hasException())
+ return canWriteResult.releaseException();
+ if (!canWriteResult.releaseReturnValue())
return { };
- if (m_guard == FetchHeaders::Guard::RequestNoCors && !isNoCORSSafelistedRequestHeaderName(name) && !isPriviledgedNoCORSRequestHeaderName(name))
- return { };
- if (m_guard == FetchHeaders::Guard::Response && isForbiddenResponseHeaderName(name))
- return { };
-
m_headers.remove(name);
-
- if (m_guard == FetchHeaders::Guard::RequestNoCors)
- removePrivilegedNoCORSRequestHeaders(m_headers);
-
return { };
}
@@ -195,12 +170,7 @@
return canWriteResult.releaseException();
if (!canWriteResult.releaseReturnValue())
return { };
-
m_headers.set(name, normalizedValue);
-
- if (m_guard == FetchHeaders::Guard::RequestNoCors)
- removePrivilegedNoCORSRequestHeaders(m_headers);
-
return { };
}
Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.h (251709 => 251710)
--- trunk/Source/WebCore/Modules/fetch/FetchHeaders.h 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.h 2019-10-29 17:04:09 UTC (rev 251710)
@@ -78,7 +78,6 @@
};
Iterator createIterator() { return Iterator { *this }; }
- void setInternalHeaders(HTTPHeaderMap&& headers) { m_headers = WTFMove(headers); }
const HTTPHeaderMap& internalHeaders() const { return m_headers; }
void setGuard(Guard);
@@ -86,7 +85,7 @@
private:
FetchHeaders(Guard, HTTPHeaderMap&&);
- explicit FetchHeaders(const FetchHeaders&);
+ FetchHeaders(const FetchHeaders&);
Guard m_guard;
HTTPHeaderMap m_headers;
Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp (251709 => 251710)
--- trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -222,12 +222,9 @@
} else
m_signal->follow(input.m_signal.get());
- if (init.hasMembers()) {
- auto fillResult = init.headers ? m_headers->fill(*init.headers) : m_headers->fill(input.headers());
- if (fillResult.hasException())
- return fillResult;
- } else
- m_headers->setInternalHeaders(HTTPHeaderMap { input.headers().internalHeaders() });
+ auto fillResult = init.headers ? m_headers->fill(*init.headers) : m_headers->fill(input.headers());
+ if (fillResult.hasException())
+ return fillResult;
auto setBodyResult = init.body ? setBody(WTFMove(*init.body)) : setBody(input);
if (setBodyResult.hasException())
Modified: trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp (251709 => 251710)
--- trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -247,11 +247,4 @@
return WTF::nullopt;
}
-Optional<ResourceError> validateRangeRequestedFlag(const ResourceRequest& request, const ResourceResponse& response)
-{
- if (response.isRangeRequested() && response.httpStatusCode() == 206 && response.type() == ResourceResponse::Type::Opaque && !request.hasHTTPHeaderField(HTTPHeaderName::Range))
- return ResourceError({ }, 0, response.url(), { }, ResourceError::Type::General);
- return WTF::nullopt;
-}
-
} // namespace WebCore
Modified: trunk/Source/WebCore/loader/CrossOriginAccessControl.h (251709 => 251710)
--- trunk/Source/WebCore/loader/CrossOriginAccessControl.h 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/loader/CrossOriginAccessControl.h 2019-10-29 17:04:09 UTC (rev 251710)
@@ -71,6 +71,5 @@
WEBCORE_EXPORT bool validatePreflightResponse(const ResourceRequest&, const ResourceResponse&, StoredCredentialsPolicy, SecurityOrigin&, String& errorDescription);
WEBCORE_EXPORT Optional<ResourceError> validateCrossOriginResourcePolicy(const SecurityOrigin&, const URL&, const ResourceResponse&);
-Optional<ResourceError> validateRangeRequestedFlag(const ResourceRequest&, const ResourceResponse&);
} // namespace WebCore
Modified: trunk/Source/WebCore/loader/SubresourceLoader.cpp (251709 => 251710)
--- trunk/Source/WebCore/loader/SubresourceLoader.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/loader/SubresourceLoader.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -351,12 +351,6 @@
}
#endif
- if (auto error = validateRangeRequestedFlag(request(), response)) {
- RELEASE_LOG_IF_ALLOWED("didReceiveResponse: canceling load because receiving a range requested response for a non-range request (frame = %p, frameLoader = %p, resourceID = %lu)", frame(), frameLoader(), identifier());
- cancel(WTFMove(*error));
- return;
- }
-
// We want redirect responses to be processed through willSendRequestInternal. Exceptions are
// redirection with no Location headers and fetch in manual redirect mode. Or in rare circumstances,
// cases of too many redirects from CFNetwork (<rdar://problem/30610988>).
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (251709 => 251710)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -919,9 +919,6 @@
if (request.options().mode == FetchOptions::Mode::NoCors) {
if (auto error = validateCrossOriginResourcePolicy(*request.origin(), request.resourceRequest().url(), resource->response()))
return makeUnexpected(WTFMove(*error));
-
- if (auto error = validateRangeRequestedFlag(request.resourceRequest(), resource->response()))
- return makeUnexpected(WTFMove(*error));
}
if (shouldUpdateCachedResourceWithCurrentRequest(*resource, request)) {
resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request), page.sessionID(), cookieJar);
Modified: trunk/Source/WebCore/platform/network/HTTPParsers.cpp (251709 => 251710)
--- trunk/Source/WebCore/platform/network/HTTPParsers.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -862,30 +862,6 @@
return startsWithLettersIgnoringASCIICase(name, "sec-") || startsWithLettersIgnoringASCIICase(name, "proxy-");
}
-// Implements <https://fetch.spec.whatwg.org/#no-cors-safelisted-request-header-name>.
-bool isNoCORSSafelistedRequestHeaderName(const String& name)
-{
- HTTPHeaderName headerName;
- if (findHTTPHeaderName(name, headerName)) {
- switch (headerName) {
- case HTTPHeaderName::Accept:
- case HTTPHeaderName::AcceptLanguage:
- case HTTPHeaderName::ContentLanguage:
- case HTTPHeaderName::ContentType:
- return true;
- default:
- break;
- }
- }
- return false;
-}
-
-// Implements <https://fetch.spec.whatwg.org/#privileged-no-cors-request-header-name>.
-bool isPriviledgedNoCORSRequestHeaderName(const String& name)
-{
- return equalLettersIgnoringASCIICase(name, "range");
-}
-
// Implements <https://fetch.spec.whatwg.org/#forbidden-response-header-name>.
bool isForbiddenResponseHeaderName(const String& name)
{
Modified: trunk/Source/WebCore/platform/network/HTTPParsers.h (251709 => 251710)
--- trunk/Source/WebCore/platform/network/HTTPParsers.h 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.h 2019-10-29 17:04:09 UTC (rev 251710)
@@ -96,8 +96,6 @@
// HTTP Header routine as per https://fetch.spec.whatwg.org/#terminology-headers
bool isForbiddenHeaderName(const String&);
-bool isNoCORSSafelistedRequestHeaderName(const String&);
-bool isPriviledgedNoCORSRequestHeaderName(const String&);
bool isForbiddenResponseHeaderName(const String&);
bool isForbiddenMethod(const String&);
bool isSimpleHeader(const String& name, const String& value);
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (251709 => 251710)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -94,7 +94,6 @@
data.type = m_type;
data.tainting = m_tainting;
data.isRedirected = m_isRedirected;
- data.isRangeRequested = m_isRangeRequested;
return data;
}
@@ -117,7 +116,6 @@
response.m_type = data.type;
response.m_tainting = data.tainting;
response.m_isRedirected = data.isRedirected;
- response.m_isRangeRequested = data.isRangeRequested;
return response;
}
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (251709 => 251710)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2019-10-29 17:04:09 UTC (rev 251710)
@@ -68,7 +68,6 @@
Type type;
Tainting tainting;
bool isRedirected;
- bool isRangeRequested;
};
CrossThreadData crossThreadData() const;
@@ -181,9 +180,6 @@
template<class Encoder> void encode(Encoder&) const;
template<class Decoder> static bool decode(Decoder&, ResourceResponseBase&);
- bool isRangeRequested() const { return m_isRangeRequested; }
- void setAsRangeRequested() { m_isRangeRequested = true; }
-
protected:
enum InitLevel {
Uninitialized,
@@ -242,7 +238,6 @@
Source m_source { Source::Unknown };
Type m_type { Type::Default };
Tainting m_tainting { Tainting::Basic };
- bool m_isRangeRequested { false };
protected:
int m_httpStatusCode { 0 };
@@ -278,7 +273,6 @@
encoder.encodeEnum(m_type);
encoder.encodeEnum(m_tainting);
encoder << m_isRedirected;
- encoder << m_isRangeRequested;
}
template<class Decoder>
@@ -291,8 +285,6 @@
if (responseIsNull)
return true;
- response.m_isNull = false;
-
if (!decoder.decode(response.m_url))
return false;
if (!decoder.decode(response.m_mimeType))
@@ -326,12 +318,8 @@
if (!decoder.decode(isRedirected))
return false;
response.m_isRedirected = isRedirected;
+ response.m_isNull = false;
- bool isRangeRequested = false;
- if (!decoder.decode(isRangeRequested))
- return false;
- response.m_isRangeRequested = isRangeRequested;
-
return true;
}
Modified: trunk/Source/WebKit/ChangeLog (251709 => 251710)
--- trunk/Source/WebKit/ChangeLog 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebKit/ChangeLog 2019-10-29 17:04:09 UTC (rev 251710)
@@ -1,5 +1,17 @@
2019-10-29 Chris Dumez <cdu...@apple.com>
+ Unreviewed, rolling out r251594.
+
+ Caused an API test failure
+
+ Reverted changeset:
+
+ "mp4 video element broken with service worker"
+ https://bugs.webkit.org/show_bug.cgi?id=184447
+ https://trac.webkit.org/changeset/251594
+
+2019-10-29 Chris Dumez <cdu...@apple.com>
+
Notification permissions are not remembered for origins without port
https://bugs.webkit.org/show_bug.cgi?id=203537
<rdar://problem/55281080>
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp (251709 => 251710)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -101,7 +101,7 @@
{
ASSERT(!isChecking());
- auto error = validateResponse(request, redirectResponse);
+ auto error = validateResponse(redirectResponse);
if (!error.isNull()) {
handler(redirectionError(redirectResponse, makeString("Cross-origin redirection to ", redirectRequest.url().string(), " denied by Cross-Origin Resource Sharing policy: ", error.localizedDescription())));
return;
@@ -143,7 +143,7 @@
});
}
-ResourceError NetworkLoadChecker::validateResponse(const ResourceRequest& request, ResourceResponse& response)
+ResourceError NetworkLoadChecker::validateResponse(ResourceResponse& response)
{
if (m_redirectCount)
response.setRedirected(true);
@@ -158,9 +158,6 @@
return { };
}
- if (request.hasHTTPHeaderField(HTTPHeaderName::Range))
- response.setAsRangeRequested();
-
if (m_options.mode == FetchOptions::Mode::NoCors) {
if (auto error = validateCrossOriginResourcePolicy(*m_origin, m_url, response))
return WTFMove(*error);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h (251709 => 251710)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h 2019-10-29 17:04:09 UTC (rev 251710)
@@ -74,7 +74,7 @@
using RedirectionValidationHandler = CompletionHandler<void(RedirectionRequestOrError&&)>;
void checkRedirection(WebCore::ResourceRequest&& request, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse, WebCore::ContentSecurityPolicyClient*, RedirectionValidationHandler&&);
- WebCore::ResourceError validateResponse(const WebCore::ResourceRequest&, WebCore::ResourceResponse&);
+ WebCore::ResourceError validateResponse(WebCore::ResourceResponse&);
void setCSPResponseHeaders(WebCore::ContentSecurityPolicyResponseHeaders&& headers) { m_cspResponseHeaders = WTFMove(headers); }
#if ENABLE(CONTENT_EXTENSIONS)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (251709 => 251710)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-10-29 16:57:09 UTC (rev 251709)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-10-29 17:04:09 UTC (rev 251710)
@@ -499,7 +499,7 @@
}
if (m_networkLoadChecker) {
- auto error = m_networkLoadChecker->validateResponse(m_networkLoad ? m_networkLoad->currentRequest() : originalRequest(), m_response);
+ auto error = m_networkLoadChecker->validateResponse(m_response);
if (!error.isNull()) {
RunLoop::main().dispatch([protectedThis = makeRef(*this), error = WTFMove(error)] {
if (protectedThis->m_networkLoad)
@@ -907,7 +907,7 @@
return;
}
if (m_networkLoadChecker) {
- auto error = m_networkLoadChecker->validateResponse(originalRequest(), response);
+ auto error = m_networkLoadChecker->validateResponse(response);
if (!error.isNull()) {
didFailLoading(error);
return;