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

Unified Diff: third_party/WebKit/Source/modules/fetch/Request.cpp

Issue 1391583002: Introduce "navigate" mode in Requests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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: 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 "";

Powered by Google App Engine
This is Rietveld 408576698