Chromium Code Reviews| Index: Source/modules/serviceworkers/RespondWithObserver.cpp |
| diff --git a/Source/modules/serviceworkers/RespondWithObserver.cpp b/Source/modules/serviceworkers/RespondWithObserver.cpp |
| index 0b5cd349e03c0b7a077fc9d4afd084a18046ffd6..1a59187283b473e859a2b59156c75e6ca76a3ffb 100644 |
| --- a/Source/modules/serviceworkers/RespondWithObserver.cpp |
| +++ b/Source/modules/serviceworkers/RespondWithObserver.cpp |
| @@ -185,15 +185,13 @@ void RespondWithObserver::responseWasFulfilled(const ScriptValue& value) |
| return; |
| } |
| Response* response = V8Response::toImplWithTypeCheck(toIsolate(executionContext()), value.v8Value()); |
| - // "If either |response|'s type is |opaque| and |request|'s mode is not |
| - // |no CORS| or |response|'s type is |error|, return a network error." |
| + // "If one of the following conditions is true, return a network error: |
| + // - |response|'s type is |error|. |
| + // - |request|'s mode is not |no-cors| and response's type is |opaque|. |
| + // - |request| is a client request and |response|'s type is neither |
| + // |basic| nor |default|." |
| const FetchResponseData::Type responseType = response->response()->type(); |
| - if ((responseType == FetchResponseData::OpaqueType && m_requestMode != WebURLRequest::FetchRequestModeNoCORS) || responseType == FetchResponseData::ErrorType) { |
| - responseWasRejected(); |
| - return; |
| - } |
| - // Treat the opaque response as a network error for frame loading. |
| - if (responseType == FetchResponseData::OpaqueType && m_frameType != WebURLRequest::FrameTypeNone) { |
| + if (responseType == FetchResponseData::ErrorType || (m_requestMode != WebURLRequest::FetchRequestModeNoCORS && responseType == FetchResponseData::OpaqueType) || (m_frameType != WebURLRequest::FrameTypeNone && responseType != FetchResponseData::BasicType && responseType != FetchResponseData::DefaultType)) { |
|
falken
2015/04/15 06:14:24
it may be time to wrap this line :)
|
| responseWasRejected(); |
| return; |
| } |