WebKit Bugzilla
Attachment 342487 Details for
Bug 186368
: Improve error messages in case FetchEvent.respondWith has a rejected promise
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-186368-20180611165414.patch (text/plain), 39.63 KB, created by
youenn fablet
on 2018-06-11 16:54:17 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-06-11 16:54:17 PDT
Size:
39.63 KB
patch
obsolete
>Subversion Revision: 232735 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 317bf0d58d1a295774d1e4a7385eab2aa07f02ee..ef594cd41b190f8af5f2f690f63dd9a8072d6e20 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,36 @@ >+2018-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Improve error messages in case FetchEvent.respondWith has a rejected promise >+ https://bugs.webkit.org/show_bug.cgi?id=186368 >+ >+ Reviewed by Chris Dumez. >+ >+ Covered by rebased tests. >+ >+ Introduce a new error domain for service worker ResourceError. >+ Used this domain to log in the console any such error. >+ >+ Update FetchEvent implementation to get meaningful error messages for respondWith error cases. >+ In particular, convert the rejected promise JS value as a string to populate the error message. >+ >+ * loader/SubresourceLoader.cpp: >+ (WebCore::SubresourceLoader::didFail): >+ * platform/network/ResourceErrorBase.cpp: >+ * platform/network/ResourceErrorBase.h: >+ * testing/ServiceWorkerInternals.cpp: >+ (WebCore::ServiceWorkerInternals::waitForFetchEventToFinish): >+ * workers/service/FetchEvent.cpp: >+ (WebCore::FetchEvent::~FetchEvent): >+ (WebCore::FetchEvent::createResponseError): >+ (WebCore::FetchEvent::onResponse): >+ (WebCore::FetchEvent::respondWithError): >+ (WebCore::FetchEvent::processResponse): >+ (WebCore::FetchEvent::promiseIsSettled): >+ * workers/service/FetchEvent.h: >+ * workers/service/context/ServiceWorkerFetch.cpp: >+ (WebCore::ServiceWorkerFetch::processResponse): >+ (WebCore::ServiceWorkerFetch::dispatchFetchEvent): >+ > 2018-06-11 Tim Horton <timothy_horton@apple.com> > > Link drag image is inconsistently unreadable in dark mode >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 34f417a4c366112acf94d11500c093be4ec899f8..6f1d49b7a43ee108a119594ad73f88da92d8b01d 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,16 @@ >+2018-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Improve error messages in case FetchEvent.respondWith has a rejected promise >+ https://bugs.webkit.org/show_bug.cgi?id=186368 >+ >+ Reviewed by Chris Dumez. >+ >+ Log in JS console in case of failures. >+ Rely on ThreadableLoader to log which client actually failed. >+ >+ * WebProcess/Storage/ServiceWorkerClientFetch.cpp: >+ (WebKit::ServiceWorkerClientFetch::didFail): >+ > 2018-06-11 Keith Rollin <krollin@apple.com> > > Add logging around internalError(const URL&) >diff --git a/Source/WebCore/loader/ThreadableLoader.cpp b/Source/WebCore/loader/ThreadableLoader.cpp >index ceab6febe3d010b965a9fda1efd4e9e3eb3de0bf..68b7e9b3cd001f681d1902f2ec73c01925cc9431 100644 >--- a/Source/WebCore/loader/ThreadableLoader.cpp >+++ b/Source/WebCore/loader/ThreadableLoader.cpp >@@ -131,7 +131,7 @@ void ThreadableLoader::logError(ScriptExecutionContext& context, const ResourceE > > // We further reduce logging to some errors. > // FIXME: Log more errors when making so do not make some layout tests flaky. >- if (error.domain() != errorDomainWebKitInternal && !error.isAccessControl()) >+ if (error.domain() != errorDomainWebKitInternal && error.domain() != errorDomainWebKitServiceWorker && !error.isAccessControl()) > return; > > const char* messageStart; >diff --git a/Source/WebCore/platform/network/ResourceErrorBase.cpp b/Source/WebCore/platform/network/ResourceErrorBase.cpp >index 84a7c51801fd9a770663793de439b09ace9f3491..48a810ebd53727d343066e3980578d1f37f677e2 100644 >--- a/Source/WebCore/platform/network/ResourceErrorBase.cpp >+++ b/Source/WebCore/platform/network/ResourceErrorBase.cpp >@@ -30,6 +30,7 @@ > namespace WebCore { > > const char* const errorDomainWebKitInternal = "WebKitInternal"; >+const char* const errorDomainWebKitServiceWorker = "WebKitServiceWorker"; > > inline const ResourceError& ResourceErrorBase::asResourceError() const > { >diff --git a/Source/WebCore/platform/network/ResourceErrorBase.h b/Source/WebCore/platform/network/ResourceErrorBase.h >index 073cacb6dc4f354aa81e4c07755265146ad077b8..a1bc6013260117c34337b782c8944bbab3d751da 100644 >--- a/Source/WebCore/platform/network/ResourceErrorBase.h >+++ b/Source/WebCore/platform/network/ResourceErrorBase.h >@@ -34,6 +34,7 @@ namespace WebCore { > class ResourceError; > > WEBCORE_EXPORT extern const char* const errorDomainWebKitInternal; // Used for errors that won't be exposed to clients. >+WEBCORE_EXPORT extern const char* const errorDomainWebKitServiceWorker; // Used for errors that happen when loading a resource from a service worker. > > class ResourceErrorBase { > public: >diff --git a/Source/WebCore/testing/ServiceWorkerInternals.cpp b/Source/WebCore/testing/ServiceWorkerInternals.cpp >index da1c4fb01d4d97fe0d9028e3bc45275e2507327e..887894e17d42da32afdb4e3048bb10cf85562f6b 100644 >--- a/Source/WebCore/testing/ServiceWorkerInternals.cpp >+++ b/Source/WebCore/testing/ServiceWorkerInternals.cpp >@@ -51,11 +51,11 @@ void ServiceWorkerInternals::setOnline(bool isOnline) > > void ServiceWorkerInternals::waitForFetchEventToFinish(FetchEvent& event, DOMPromiseDeferred<IDLInterface<FetchResponse>>&& promise) > { >- event.onResponse([promise = WTFMove(promise), event = makeRef(event)] (FetchResponse* response) mutable { >- if (response) >- promise.resolve(*response); >+ event.onResponse([promise = WTFMove(promise), event = makeRef(event)] (auto&& result) mutable { >+ if (result.has_value()) >+ promise.resolve(WTFMove(result.value())); > else >- promise.reject(TypeError, ASCIILiteral("fetch event responded with error")); >+ promise.reject(TypeError, result.error().localizedDescription()); > }); > } > >diff --git a/Source/WebCore/workers/service/FetchEvent.cpp b/Source/WebCore/workers/service/FetchEvent.cpp >index a054e843cf06ad7e7818c77bc3214af993c77eae..18eff9e29e0939ab752851e0a696636464c607d2 100644 >--- a/Source/WebCore/workers/service/FetchEvent.cpp >+++ b/Source/WebCore/workers/service/FetchEvent.cpp >@@ -52,7 +52,13 @@ FetchEvent::FetchEvent(const AtomicString& type, Init&& initializer, IsTrusted i > FetchEvent::~FetchEvent() > { > if (auto callback = WTFMove(m_onResponse)) >- callback(nullptr); >+ callback(makeUnexpected(ResourceError { errorDomainWebKitServiceWorker, 0, m_request->url(), ASCIILiteral("Fetch event is destroyed."), ResourceError::Type::Cancellation })); >+} >+ >+ResourceError FetchEvent::createResponseError(const URL& url, const String& errorMessage) >+{ >+ return ResourceError { errorDomainWebKitServiceWorker, 0, url, makeString("FetchEvent.respondWith received an error: ", errorMessage), ResourceError::Type::General }; >+ > } > > ExceptionOr<void> FetchEvent::respondWith(Ref<DOMPromise>&& promise) >@@ -81,46 +87,47 @@ ExceptionOr<void> FetchEvent::respondWith(Ref<DOMPromise>&& promise) > return { }; > } > >-void FetchEvent::onResponse(CompletionHandler<void(FetchResponse*)>&& callback) >+void FetchEvent::onResponse(ResponseCallback&& callback) > { > ASSERT(!m_onResponse); > m_onResponse = WTFMove(callback); > } > >-void FetchEvent::respondWithError() >+void FetchEvent::respondWithError(ResourceError&& error) > { > m_respondWithError = true; >- processResponse(nullptr); >+ processResponse(makeUnexpected(WTFMove(error))); > } > >-void FetchEvent::processResponse(FetchResponse* response) >+void FetchEvent::processResponse(Expected<Ref<FetchResponse>, ResourceError>&& result) > { > m_respondPromise = nullptr; > m_waitToRespond = false; > if (auto callback = WTFMove(m_onResponse)) >- callback(response); >+ callback(WTFMove(result)); > } > > void FetchEvent::promiseIsSettled() > { > if (m_respondPromise->status() == DOMPromise::Status::Rejected) { >- respondWithError(); >+ auto reason = m_respondPromise->result().toWTFString(m_respondPromise->globalObject()->globalExec()); >+ respondWithError(createResponseError(m_request->url(), reason)); > return; > } > > ASSERT(m_respondPromise->status() == DOMPromise::Status::Fulfilled); > auto response = JSFetchResponse::toWrapped(m_respondPromise->globalObject()->globalExec()->vm(), m_respondPromise->result()); > if (!response) { >- respondWithError(); >+ respondWithError(createResponseError(m_request->url(), ASCIILiteral("Returned response is null."))); > return; > } > > if (response->isDisturbedOrLocked()) { >- respondWithError(); >+ respondWithError(createResponseError(m_request->url(), ASCIILiteral("Response is disturbed or locked."))); > return; > } > >- processResponse(response); >+ processResponse(makeRef(*response)); > } > > } // namespace WebCore >diff --git a/Source/WebCore/workers/service/FetchEvent.h b/Source/WebCore/workers/service/FetchEvent.h >index 5786f946c1536d4afa3a6465e12ea86af87715ed..f570b8a0dd4bc386b7b663906740a4a64b42c2f6 100644 >--- a/Source/WebCore/workers/service/FetchEvent.h >+++ b/Source/WebCore/workers/service/FetchEvent.h >@@ -30,10 +30,12 @@ > #include "ExtendableEvent.h" > #include "FetchRequest.h" > #include <wtf/CompletionHandler.h> >+#include <wtf/Expected.h> > > namespace WebCore { > > class FetchResponse; >+class ResourceError; > > class FetchEvent final : public ExtendableEvent { > public: >@@ -56,7 +58,8 @@ public: > > ExceptionOr<void> respondWith(Ref<DOMPromise>&&); > >- WEBCORE_EXPORT void onResponse(CompletionHandler<void(FetchResponse*)>&&); >+ using ResponseCallback = CompletionHandler<void(Expected<Ref<FetchResponse>, ResourceError>&&)>; >+ WEBCORE_EXPORT void onResponse(ResponseCallback&&); > > FetchRequest& request() { return m_request.get(); } > const String& clientId() const { return m_clientId; } >@@ -65,12 +68,14 @@ public: > > bool respondWithEntered() const { return m_respondWithEntered; } > >+ static ResourceError createResponseError(const URL&, const String&); >+ > private: > WEBCORE_EXPORT FetchEvent(const AtomicString&, Init&&, IsTrusted); > > void promiseIsSettled(); >- void processResponse(FetchResponse*); >- void respondWithError(); >+ void processResponse(Expected<Ref<FetchResponse>, ResourceError>&&); >+ void respondWithError(ResourceError&&); > > Ref<FetchRequest> m_request; > String m_clientId; >@@ -82,7 +87,7 @@ private: > bool m_respondWithError { false }; > RefPtr<DOMPromise> m_respondPromise; > >- CompletionHandler<void(FetchResponse*)> m_onResponse; >+ ResponseCallback m_onResponse; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp b/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp >index 63be95c8a61b5239ef9b39f766f00a1d5de61093..ea6e023fd963ded9a417f035b4d1421db573da9e 100644 >--- a/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp >+++ b/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp >@@ -43,13 +43,13 @@ namespace WebCore { > > namespace ServiceWorkerFetch { > >-static void processResponse(Ref<Client>&& client, FetchResponse* response) >+static void processResponse(Ref<Client>&& client, Expected<Ref<FetchResponse>, ResourceError>&& result) > { >- if (!response) { >- client->didFail(ResourceError { errorDomainWebKitInternal, 0, URL(), ASCIILiteral("Response is null") }); >+ if (!result.has_value()) { >+ client->didFail(result.error()); > return; > } >- auto protectedResponse = makeRef(*response); >+ auto response = WTFMove(result.value()); > > client->didReceiveResponse(response->resourceResponse()); > >@@ -61,7 +61,7 @@ static void processResponse(Ref<Client>&& client, FetchResponse* response) > if (response->isBodyReceivedByChunk()) { > response->consumeBodyReceivedByChunk([client = WTFMove(client)] (auto&& result) mutable { > if (result.hasException()) { >- client->didFail(ResourceError { errorDomainWebKitInternal, 0, URL(), result.exception().message() }); >+ client->didFail(FetchEvent::createResponseError(URL { }, result.exception().message())); > return; > } > >@@ -122,8 +122,8 @@ void dispatchFetchEvent(Ref<Client>&& client, ServiceWorkerGlobalScope& globalSc > init.cancelable = true; > auto event = FetchEvent::create(eventNames().fetchEvent, WTFMove(init), Event::IsTrusted::Yes); > >- event->onResponse([client = client.copyRef()] (FetchResponse* response) mutable { >- processResponse(WTFMove(client), response); >+ event->onResponse([client = client.copyRef()] (auto&& result) mutable { >+ processResponse(WTFMove(client), WTFMove(result)); > }); > > globalScope.dispatchEvent(event); >diff --git a/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp b/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >index a80a8801b64ebc38c9d5f48b8bcad5efb9b8671a..5518fa28312424353883add70bbd0f5549cf8adf 100644 >--- a/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >+++ b/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >@@ -32,6 +32,8 @@ > #include "WebSWClientConnection.h" > #include "WebServiceWorkerProvider.h" > #include <WebCore/CrossOriginAccessControl.h> >+#include <WebCore/Document.h> >+#include <WebCore/Frame.h> > #include <WebCore/MIMETypeRegistry.h> > #include <WebCore/NotImplemented.h> > #include <WebCore/ResourceError.h> >@@ -233,6 +235,13 @@ void ServiceWorkerClientFetch::didFail(ResourceError&& error) > if (!m_loader) > return; > >+ auto* document = m_loader->frame() ? m_loader->frame()->document() : nullptr; >+ if (document) { >+ document->addConsoleMessage(MessageSource::JS, MessageLevel::Error, m_error.localizedDescription()); >+ if (m_loader->options().destination != FetchOptions::Destination::EmptyString) >+ document->addConsoleMessage(MessageSource::JS, MessageLevel::Error, makeString("Cannot load ", m_error.failingURL().string(), ".")); >+ } >+ > m_loader->didFail(m_error); > > if (auto callback = WTFMove(m_callback)) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 2427f68c404ecfecc4e93ae730881c7e502ebfc0..04d04b0e424b3fc90c6e9a69b714d52ff3676c32 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,13 @@ >+2018-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Improve error messages in case FetchEvent.respondWith has a rejected promise >+ https://bugs.webkit.org/show_bug.cgi?id=186368 >+ >+ Reviewed by Chris Dumez. >+ >+ * TestExpectations: >+ * http/tests/workers/service/basic-fetch.https-expected.txt: >+ > 2018-06-11 Jer Noble <jer.noble@apple.com> > > Unreviewed gardening; add a late endTest(), in case none of the other events fire in time. >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index e7d684771f34020160b088abc89b223dcc015607..ce2b95b3e09424cc3f4f76983b9fef18d56bac7b 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,22 @@ >+2018-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Improve error messages in case FetchEvent.respondWith has a rejected promise >+ https://bugs.webkit.org/show_bug.cgi?id=186368 >+ >+ Reviewed by Chris Dumez. >+ >+ * web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt: >+ * web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt: >+ > 2018-06-08 Brendan McLoughlin <brendan@bocoup.com> > > Sync web-platform-tests repo to 197cdad >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index dc409b6118bda634604f92835ccb0b5aa4d99faa..f8715496ef07513d0327881ae8099aff2472c8bc 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -218,7 +218,9 @@ webkit.org/b/181900 imported/w3c/web-platform-tests/service-workers/service-work > imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https.html [ DumpJSConsoleLogInStdErr ] > imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html [ DumpJSConsoleLogInStdErr ] > imported/w3c/web-platform-tests/service-workers/service-worker/registration-security-error.https.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-css-images.https.html [ DumpJSConsoleLogInStdErr ] > imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html [ DumpJSConsoleLogInStdErr Slow ] >+imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html [ DumpJSConsoleLogInStdErr ] > [ Debug ] imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html [ Slow ] > [ Debug ] imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html [ Slow ] > [ Debug ] imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html [ Slow ] >diff --git a/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt b/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt >index d7e9471cc096bd8ca65a7630a571381e20a8062f..1e4125881d09a392fd178fdb9f4239e93afa501e 100644 >--- a/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt >+++ b/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt >@@ -1,3 +1,4 @@ >+CONSOLE MESSAGE: Fetch event was canceled > CONSOLE MESSAGE: Fetch API cannot load https://127.0.0.1:8443/workers/service/resources/test5. > > test1 url: https://127.0.0.1:8443/workers/service/resources/test1 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt >index a8b8aa21344defa04da22e3261fcc6577011c676..7658bbc70128ea884f10c516781b58ee0356bfb3 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt >@@ -1,4 +1,11 @@ >+CONSOLE MESSAGE: Fetch event was canceled > CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html?prevent-default. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined >+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html?reject. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Response is disturbed or locked. >+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html?used-body. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Response is disturbed or locked. >+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html?used-fetched-body. > > PASS Rejecting the fetch event or using preventDefault() causes a network error > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt >index a97cea3047151683b77cdc5ddce3b6c80f077920..1dbc0858f8ec83bb1092c3bcead6e083ba886f5a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt >@@ -1,9 +1,49 @@ > CONSOLE MESSAGE: line 51: No-Cors mode requires follow redirect mode > CONSOLE MESSAGE: line 51: Not allowed to request resource > CONSOLE MESSAGE: line 51: Fetch API cannot load https://localhost:9443/nonav-manual-nocors-redirects-to-sameorigin-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Flocalhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py&expected_type=opaqueredirect due to access control checks. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin. >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-cors-redirects-to-nocors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Unsafe attempt to load URL https://127.0.0.1:9443/service-workers/service-worker/resources/success.py from origin https://localhost:9443. Domains, protocols and ports must match. >+ >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-sameorigin-redirects-to-nocors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Unsafe attempt to load URL https://127.0.0.1:9443/service-workers/service-worker/resources/success.py?ACAOrigin=https%3A%2F%2Flocalhost%3A9443 from origin https://localhost:9443. Domains, protocols and ports must match. >+ >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-sameorigin-redirects-to-cors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin. >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-cors-redirects-to-nocors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Unsafe attempt to load URL https://127.0.0.1:9443/service-workers/service-worker/resources/success.py from origin https://localhost:9443. Domains, protocols and ports must match. >+ >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-sameorigin-redirects-to-nocors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Unsafe attempt to load URL https://127.0.0.1:9443/service-workers/service-worker/resources/success.py?ACAOrigin=https%3A%2F%2Flocalhost%3A9443 from origin https://localhost:9443. Domains, protocols and ports must match. >+ >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-follow-sameorigin-redirects-to-cors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Flocalhost%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-sameorigin-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Flocalhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-nocors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py%3FACAOrigin%3Dhttps%253A%252F%252Flocalhost%253A9443 >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-cors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Flocalhost%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-sameorigin-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Flocalhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-nocors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py%3FACAOrigin%3Dhttps%253A%252F%252Flocalhost%253A9443 >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-cors-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252F127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. > CONSOLE MESSAGE: line 51: No-Cors mode requires follow redirect mode > CONSOLE MESSAGE: line 51: Not allowed to request resource > CONSOLE MESSAGE: line 51: Fetch API cannot load https://localhost:9443/nonav-error-nocors-redirects-to-sameorigin-nocreds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Flocalhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py due to access control checks. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40localhost%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-sameorigin-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540localhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-nocors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py%3FACAOrigin%3Dhttps%253A%252F%252Flocalhost%253A9443 >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-cors-redirects-to-cors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40localhost%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-sameorigin-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540localhost%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-nocors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to follow a redirection while loading https://localhost:9443/service-workers/service-worker/resources/redirect.py?Redirect=https%3A%2F%2Ffoo%3Abar%40127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Fsuccess.py%3FACAOrigin%3Dhttps%253A%252F%252Flocalhost%253A9443 >+CONSOLE MESSAGE: Fetch API cannot load https://localhost:9443/nonav-error-sameorigin-redirects-to-cors-creds?url=redirect.py%3FRedirect%3Dhttps%253A%252F%252Ffoo%253Abar%2540127.0.0.1%253A9443%252Fservice-workers%252Fservice-worker%252Fresources%252Fsuccess.py%253FACAOrigin%253Dhttps%25253A%25252F%25252Flocalhost%25253A9443. > > PASS initialize global state > PASS Non-navigation, manual redirect, cors mode Request redirected to same-origin without credentials should succeed opaqueredirect interception and response should not be redirected >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt >index efaac5b1e77da26602c1ad2fb32e8e3c2d37936c..f450d7baaedb0a7c0a1c9394250f1a7ea70decd6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt >@@ -1,3 +1,5 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Returned response is null. >+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-event-respond-with-argument-iframe.html?other-value. > > PASS respondWith() takes either a Response or a promise that resolves with a Response. Other values should raise a network error. > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt >index 247aa9ec5b1b90306f515dc817fdfd3c99fb36b9..c347433f8f4c0245d9832c98be9913ecc07b3f1e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt >@@ -1,3 +1,4 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: ReadableStream chunk enqueueing in the sink failed > > PASS Response with a ReadableStream having non-Uint8Array chunks should be transferred as errored > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt >index 9418bd34d79277cfb9e7d38d9d5df1f57e8b87b7..fd27309c996376eb87175dc780a10280f4234ab9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt >@@ -1,3 +1,7 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-frame-resource/frame-opaque?mode=no-cors&url=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-frame-resource/window-opaque?mode=no-cors&url=https%3A%2F%2F127.0.0.1%3A9443%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py. > > PASS Basic type response could be loaded in the iframe. > PASS CORS type response could be loaded in the iframe. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt >index 11cf6a0a2dbf0245814c540486fd5ee1446ac05b..ede8ce0b2dfb748ae84fb02e2a384597b989bdff 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt >@@ -1,3 +1,7 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load https://localhost:9443/service-workers/service-worker/resources/dummy?mode=no-cors&url=http%3A%2F%2Flocalhost%3A8800%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py%3FPNGIMAGE. >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load https://localhost:9443/service-workers/service-worker/resources/dummy?mode=no-cors&url=http%3A%2F%2F127.0.0.1%3A8800%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py%3FPNGIMAGE. > > > PASS Verify Mixed content of fetch() in a Service Worker >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt >index ae6efe5e359203fd611c07ff7bf4054c082c8ffb..ba27fed4cd2778532f17eda9b70ac1654f6d0d1e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt >@@ -1,7 +1,11 @@ > CONSOLE MESSAGE: line 25: The page at https://localhost:9443/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html was allowed to display insecure content from http://localhost:8800/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE. > >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load http://localhost:8800/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE. > CONSOLE MESSAGE: line 42: The page at https://localhost:9443/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html was allowed to display insecure content from http://127.0.0.1:8800/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE. > >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Not allowed to request resource >+CONSOLE MESSAGE: Cannot load http://127.0.0.1:8800/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE. > > > PASS Verify Mixed content of fetch() in a Service Worker >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt >index 92ae213879a11128b02578b60bdbfc7400a57cb7..c2b68e1fdbbc2a4425e55b5468a1090b9693c514 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt >@@ -1,3 +1,5 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Header 'foo' has invalid value: 'b >+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/dummy?test. > > PASS Verify the response of FetchEvent using XMLHttpRequest > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt >index ffbd73993cb4aabdced221479699e7c31ad2131b..7cbac1cf69bd5c0cab7fe565104232a9ece5813f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt >@@ -1,3 +1,5 @@ >+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined >+CONSOLE MESSAGE: Cannot load https://localhost:9443/service-workers/service-worker/resources/simple.txt. > > PASS Recover from a bad service worker by updating after a failed navigation. >
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 186368
:
342111
|
342115
|
342119
|
342120
|
342159
|
342176
| 342487