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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/Request.cpp

Issue 2811623002: Fetch API: Add Request#cache attribute (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/fetch/Request.h" 5 #include "modules/fetch/Request.h"
6 6
7 #include "bindings/core/v8/Dictionary.h" 7 #include "bindings/core/v8/Dictionary.h"
8 #include "bindings/core/v8/V8PrivateProperty.h" 8 #include "bindings/core/v8/V8PrivateProperty.h"
9 #include "core/dom/Document.h" 9 #include "core/dom/Document.h"
10 #include "core/dom/ExecutionContext.h" 10 #include "core/dom/ExecutionContext.h"
(...skipping 27 matching lines...) Expand all
38 if (world.IsIsolatedWorld()) 38 if (world.IsIsolatedWorld())
39 request->SetOrigin(world.IsolatedWorldSecurityOrigin()); 39 request->SetOrigin(world.IsolatedWorldSecurityOrigin());
40 else 40 else
41 request->SetOrigin( 41 request->SetOrigin(
42 script_state->GetExecutionContext()->GetSecurityOrigin()); 42 script_state->GetExecutionContext()->GetSecurityOrigin());
43 // FIXME: Set ForceOriginHeaderFlag. 43 // FIXME: Set ForceOriginHeaderFlag.
44 request->SetSameOriginDataURLFlag(true); 44 request->SetSameOriginDataURLFlag(true);
45 request->SetReferrer(original->GetReferrer()); 45 request->SetReferrer(original->GetReferrer());
46 request->SetMode(original->Mode()); 46 request->SetMode(original->Mode());
47 request->SetCredentials(original->Credentials()); 47 request->SetCredentials(original->Credentials());
48 request->SetCache(original->Cache());
48 request->SetAttachedCredential(original->AttachedCredential()); 49 request->SetAttachedCredential(original->AttachedCredential());
49 request->SetRedirect(original->Redirect()); 50 request->SetRedirect(original->Redirect());
50 request->SetIntegrity(original->Integrity()); 51 request->SetIntegrity(original->Integrity());
51 // FIXME: Set cache mode.
52 // TODO(yhirano): Set redirect mode.
53 return request; 52 return request;
54 } 53 }
55 54
56 Request* Request::CreateRequestWithRequestOrString( 55 Request* Request::CreateRequestWithRequestOrString(
57 ScriptState* script_state, 56 ScriptState* script_state,
58 Request* input_request, 57 Request* input_request,
59 const String& input_string, 58 const String& input_string,
60 RequestInit& init, 59 RequestInit& init,
61 ExceptionState& exception_state) { 60 ExceptionState& exception_state) {
62 // - "If |input| is a Request object and it is disturbed, throw a 61 // - "If |input| is a Request object and it is disturbed, throw a
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 return nullptr; 252 return nullptr;
254 } 253 }
255 request->SetCredentials(WebURLRequest::kFetchCredentialsModePassword); 254 request->SetCredentials(WebURLRequest::kFetchCredentialsModePassword);
256 request->SetAttachedCredential(init.attached_credential); 255 request->SetAttachedCredential(init.attached_credential);
257 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual); 256 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual);
258 } else { 257 } else {
259 if (!input_request) 258 if (!input_request)
260 request->SetCredentials(WebURLRequest::kFetchCredentialsModeOmit); 259 request->SetCredentials(WebURLRequest::kFetchCredentialsModeOmit);
261 } 260 }
262 261
263 // TODO(yhirano): Implement the following step: 262 if (init.cache == "default") {
264 // "If |init|'s cache member is present, set |request|'s cache mode to 263 request->SetCache(WebURLRequest::kFetchRequestCacheDefault);
265 // it." 264 } else if (init.cache == "no-store") {
266 265 request->SetCache(WebURLRequest::kFetchRequestCacheNoStore);
267 // "If |init|'s redirect member is present, set |request|'s redirect mode 266 } else if (init.cache == "reload") {
268 // to it." 267 request->SetCache(WebURLRequest::kFetchRequestCacheReload);
268 } else if (init.cache == "no-cache") {
269 request->SetCache(WebURLRequest::kFetchRequestCacheNoCache);
270 } else if (init.cache == "force-cache") {
271 request->SetCache(WebURLRequest::kFetchRequestCacheForceCache);
272 } else if (init.cache == "only-if-cached") {
273 request->SetCache(WebURLRequest::kFetchRequestCacheOnlyIfCached);
274 }
falken 2017/04/11 05:53:59 nit: insert an empty line here?
yiyix 2017/04/11 10:00:06 Done.
269 if (init.redirect == "follow") { 275 if (init.redirect == "follow") {
270 request->SetRedirect(WebURLRequest::kFetchRedirectModeFollow); 276 request->SetRedirect(WebURLRequest::kFetchRedirectModeFollow);
271 } else if (init.redirect == "error") { 277 } else if (init.redirect == "error") {
272 request->SetRedirect(WebURLRequest::kFetchRedirectModeError); 278 request->SetRedirect(WebURLRequest::kFetchRedirectModeError);
273 } else if (init.redirect == "manual") { 279 } else if (init.redirect == "manual") {
274 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual); 280 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual);
275 } 281 }
276 282
277 // "If |init|'s integrity member is present, set |request|'s 283 // "If |init|'s integrity member is present, set |request|'s
278 // integrity metadata to it." 284 // integrity metadata to it."
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 return "same-origin"; 644 return "same-origin";
639 case WebURLRequest::kFetchCredentialsModeInclude: 645 case WebURLRequest::kFetchCredentialsModeInclude:
640 return "include"; 646 return "include";
641 case WebURLRequest::kFetchCredentialsModePassword: 647 case WebURLRequest::kFetchCredentialsModePassword:
642 return "password"; 648 return "password";
643 } 649 }
644 ASSERT_NOT_REACHED(); 650 ASSERT_NOT_REACHED();
645 return ""; 651 return "";
646 } 652 }
647 653
654 String Request::cache() const {
655 // "The cache attribute's getter must return request's cache mode."
656 switch (request_->Cache()) {
657 case WebURLRequest::kFetchRequestCacheDefault:
658 return "default";
659 case WebURLRequest::kFetchRequestCacheNoStore:
660 return "no-store";
661 case WebURLRequest::kFetchRequestCacheReload:
662 return "reload";
663 case WebURLRequest::kFetchRequestCacheNoCache:
664 return "no-cache";
665 case WebURLRequest::kFetchRequestCacheForceCache:
666 return "force-cache";
667 case WebURLRequest::kFetchRequestCacheOnlyIfCached:
668 return "only-if-cached";
669 }
670 NOTREACHED();
671 return "";
672 }
673
648 String Request::redirect() const { 674 String Request::redirect() const {
649 // "The redirect attribute's getter must return request's redirect mode." 675 // "The redirect attribute's getter must return request's redirect mode."
650 switch (request_->Redirect()) { 676 switch (request_->Redirect()) {
651 case WebURLRequest::kFetchRedirectModeFollow: 677 case WebURLRequest::kFetchRedirectModeFollow:
652 return "follow"; 678 return "follow";
653 case WebURLRequest::kFetchRedirectModeError: 679 case WebURLRequest::kFetchRedirectModeError:
654 return "error"; 680 return "error";
655 case WebURLRequest::kFetchRedirectModeManual: 681 case WebURLRequest::kFetchRedirectModeManual:
656 return "manual"; 682 return "manual";
657 } 683 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 .Set(request.As<v8::Object>(), body_buffer); 762 .Set(request.As<v8::Object>(), body_buffer);
737 } 763 }
738 764
739 DEFINE_TRACE(Request) { 765 DEFINE_TRACE(Request) {
740 Body::Trace(visitor); 766 Body::Trace(visitor);
741 visitor->Trace(request_); 767 visitor->Trace(request_);
742 visitor->Trace(headers_); 768 visitor->Trace(headers_);
743 } 769 }
744 770
745 } // namespace blink 771 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698