Chromium Code Reviews| Index: third_party/WebKit/Source/modules/fetch/Request.cpp |
| diff --git a/third_party/WebKit/Source/modules/fetch/Request.cpp b/third_party/WebKit/Source/modules/fetch/Request.cpp |
| index 5db7648fc618dc5a97b6b56c8e60dc2fd44edc7b..3189fd5552e3bff89f7b1060d4f8fdc12d3caad3 100644 |
| --- a/third_party/WebKit/Source/modules/fetch/Request.cpp |
| +++ b/third_party/WebKit/Source/modules/fetch/Request.cpp |
| @@ -120,15 +120,23 @@ Request* Request::createRequestWithRequestOrString(ScriptState* scriptState, Req |
| // We don't use fallback values. We set these flags directly in below. |
| } |
| - // 14. If any of |init|'s members are present, set |request|'s referrer |
| - // to client, and |request|'s referrer policy to the empty string. |
| - // => RequestInit::RequestInit. |
| + // "14. If any of |init|'s members are present, run these substeps:" |
| + if (init.areAnyMembersSet) { |
| + // "1. If request's |mode| is "navigate", throw a TypeError." |
| + if (request->mode() == WebURLRequest::FetchRequestModeNavigate) { |
| + exceptionState.throwTypeError("Cannot construct a Request with a Request mode as navigate."); |
|
hiroshige
2015/10/30 12:31:30
Making the message here and L177 will be better.
shiva.jm
2015/11/02 12:06:20
Done.
|
| + return nullptr; |
| + } |
| + } |
| + |
| // 15. If |init|'s referrer member is present, run these substeps: |
| // Note that JS null and undefined are encoded as an empty string and thus |
| // a null string means referrer member is not set. |
| // 16. If |init|'s referrerPolicy member is present, set |request|'s |
| // referrer policy to it. |
| - if (init.isReferrerSet) { |
| + // areAnyMembersSet will be True, if any members in RequestInit are set and |
|
hiroshige
2015/10/30 12:31:30
nit: This comment (L137-138) is not needed.
IIUC
yhirano
2015/10/30 13:18:41
- If no member is set on |init| => use |request|'s
shiva.jm
2015/11/02 12:06:20
These comment is needed, as discussed in:
https://
shiva.jm
2015/11/02 12:06:20
Done, retained old comment, after line 129 in new
|
| + // hence the referrer member |
| + if (init.areAnyMembersSet) { |
| // 1. Let |referrer| be |init|'s referrer member. |
| if (init.referrer.referrer.isEmpty()) { |
| // 2. if |referrer| is the empty string, set |request|'s referrer to |
| @@ -161,10 +169,14 @@ Request* Request::createRequestWithRequestOrString(ScriptState* scriptState, Req |
| request->setReferrerPolicy(init.referrer.referrerPolicy); |
| } |
| - |
| - // "17. Let |mode| be |init|'s mode member if it is present, and |
| + // "16. Let |mode| be |init|'s mode member if it is present, and |
| // |fallbackMode| otherwise." |
| + // "17.If mode is "navigate", throw a TypeError. |
|
hiroshige
2015/10/30 12:31:30
nit: a space between "17." and "If".
shiva.jm
2015/11/02 12:06:20
Done.
|
| // "18. If |mode| is non-null, set |request|'s mode to |mode|." |
| + if (init.mode == "navigate") { |
| + exceptionState.throwTypeError("Cannot construct a Request with a Request mode as navigate."); |
| + return nullptr; |
| + } |
| if (init.mode == "same-origin") { |
| request->setMode(WebURLRequest::FetchRequestModeSameOrigin); |
| } else if (init.mode == "no-cors") { |
| @@ -497,6 +509,8 @@ String Request::mode() const |
| case WebURLRequest::FetchRequestModeCORS: |
| case WebURLRequest::FetchRequestModeCORSWithForcedPreflight: |
| return "cors"; |
| + case WebURLRequest::FetchRequestModeNavigate: |
| + return "navigate"; |
| } |
| ASSERT_NOT_REACHED(); |
| return ""; |