Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1386)

Unified Diff: Source/modules/serviceworkers/RespondWithObserver.cpp

Issue 1265133002: [1/3 blink] Support redirect option of Request and "opaqueredirect" response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/serviceworkers/RespondWithObserver.cpp
diff --git a/Source/modules/serviceworkers/RespondWithObserver.cpp b/Source/modules/serviceworkers/RespondWithObserver.cpp
index 77abd16851eef11197d18b4d8ba00784c699c32e..923b767866bb005b84c631e61f311bd6334ee730 100644
--- a/Source/modules/serviceworkers/RespondWithObserver.cpp
+++ b/Source/modules/serviceworkers/RespondWithObserver.cpp
@@ -54,6 +54,9 @@ const String getMessageForResponseError(WebServiceWorkerResponseError error, con
case WebServiceWorkerResponseErrorResponseTypeOpaqueForClientRequest:
errorMessage = errorMessage + "an \"opaque\" response was used for a client request.";
break;
+ case WebServiceWorkerResponseErrorResponseTypeOpaqueRedirect:
+ errorMessage = errorMessage + "an \"opaqueredirect\" type response was used for a request which is not a navigation request.";
+ break;
case WebServiceWorkerResponseErrorUnknown:
default:
errorMessage = errorMessage + "an unexpected error occurred.";
@@ -62,9 +65,14 @@ const String getMessageForResponseError(WebServiceWorkerResponseError error, con
return errorMessage;
}
+bool isNavigationRequest(WebURLRequest::FrameType frameType)
+{
+ return frameType != WebURLRequest::FrameTypeNone;
+}
+
bool isClientRequest(WebURLRequest::FrameType frameType, WebURLRequest::RequestContext requestContext)
{
- return frameType != WebURLRequest::FrameTypeNone || requestContext == WebURLRequest::RequestContextSharedWorker || requestContext == WebURLRequest::RequestContextWorker;
+ return isNavigationRequest(frameType) || requestContext == WebURLRequest::RequestContextSharedWorker || requestContext == WebURLRequest::RequestContextWorker;
}
class NoopLoaderClient final : public GarbageCollectedFinalized<NoopLoaderClient>, public FetchDataLoader::Client {
@@ -210,6 +218,10 @@ void RespondWithObserver::responseWasFulfilled(const ScriptValue& value)
return;
}
}
+ if (isNavigationRequest(m_frameType) && responseType == FetchResponseData::OpaqueRedirectType) {
yhirano 2015/08/07 14:22:02 https://fetch.spec.whatwg.org/#http-fetch says If
horo 2015/08/07 15:39:54 Ah, yes. Fixed.
+ responseWasRejected(WebServiceWorkerResponseErrorResponseTypeOpaqueRedirect);
+ return;
+ }
if (response->bodyUsed()) {
responseWasRejected(WebServiceWorkerResponseErrorBodyUsed);
return;

Powered by Google App Engine
This is Rietveld 408576698