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

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

Issue 2811623002: Fetch API: Add Request#cache attribute (Closed)
Patch Set: address comments 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->SetCacheMode(original->CacheMode());
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->SetCacheMode(WebURLRequest::kFetchRequestCacheModeDefault);
265 // it." 264 } else if (init.cache == "no-store") {
265 request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeNoStore);
266 } else if (init.cache == "reload") {
267 request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeReload);
268 } else if (init.cache == "no-cache") {
269 request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeNoCache);
270 } else if (init.cache == "force-cache") {
271 request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeForceCache);
272 } else if (init.cache == "only-if-cached") {
273 request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeOnlyIfCached);
274 }
266 275
267 // "If |init|'s redirect member is present, set |request|'s redirect mode
268 // to it."
269 if (init.redirect == "follow") { 276 if (init.redirect == "follow") {
270 request->SetRedirect(WebURLRequest::kFetchRedirectModeFollow); 277 request->SetRedirect(WebURLRequest::kFetchRedirectModeFollow);
271 } else if (init.redirect == "error") { 278 } else if (init.redirect == "error") {
272 request->SetRedirect(WebURLRequest::kFetchRedirectModeError); 279 request->SetRedirect(WebURLRequest::kFetchRedirectModeError);
273 } else if (init.redirect == "manual") { 280 } else if (init.redirect == "manual") {
274 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual); 281 request->SetRedirect(WebURLRequest::kFetchRedirectModeManual);
275 } 282 }
276 283
277 // "If |init|'s integrity member is present, set |request|'s 284 // "If |init|'s integrity member is present, set |request|'s
278 // integrity metadata to it." 285 // integrity metadata to it."
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 return "same-origin"; 645 return "same-origin";
639 case WebURLRequest::kFetchCredentialsModeInclude: 646 case WebURLRequest::kFetchCredentialsModeInclude:
640 return "include"; 647 return "include";
641 case WebURLRequest::kFetchCredentialsModePassword: 648 case WebURLRequest::kFetchCredentialsModePassword:
642 return "password"; 649 return "password";
643 } 650 }
644 ASSERT_NOT_REACHED(); 651 ASSERT_NOT_REACHED();
645 return ""; 652 return "";
646 } 653 }
647 654
655 String Request::cache() const {
656 // "The cache attribute's getter must return request's cache mode."
657 switch (request_->CacheMode()) {
658 case WebURLRequest::kFetchRequestCacheModeDefault:
659 return "default";
660 case WebURLRequest::kFetchRequestCacheModeNoStore:
661 return "no-store";
662 case WebURLRequest::kFetchRequestCacheModeReload:
663 return "reload";
664 case WebURLRequest::kFetchRequestCacheModeNoCache:
665 return "no-cache";
666 case WebURLRequest::kFetchRequestCacheModeForceCache:
667 return "force-cache";
668 case WebURLRequest::kFetchRequestCacheModeOnlyIfCached:
669 return "only-if-cached";
670 }
671 NOTREACHED();
672 return "";
673 }
674
648 String Request::redirect() const { 675 String Request::redirect() const {
649 // "The redirect attribute's getter must return request's redirect mode." 676 // "The redirect attribute's getter must return request's redirect mode."
650 switch (request_->Redirect()) { 677 switch (request_->Redirect()) {
651 case WebURLRequest::kFetchRedirectModeFollow: 678 case WebURLRequest::kFetchRedirectModeFollow:
652 return "follow"; 679 return "follow";
653 case WebURLRequest::kFetchRedirectModeError: 680 case WebURLRequest::kFetchRedirectModeError:
654 return "error"; 681 return "error";
655 case WebURLRequest::kFetchRedirectModeManual: 682 case WebURLRequest::kFetchRedirectModeManual:
656 return "manual"; 683 return "manual";
657 } 684 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 .Set(request.As<v8::Object>(), body_buffer); 763 .Set(request.As<v8::Object>(), body_buffer);
737 } 764 }
738 765
739 DEFINE_TRACE(Request) { 766 DEFINE_TRACE(Request) {
740 Body::Trace(visitor); 767 Body::Trace(visitor);
741 visitor->Trace(request_); 768 visitor->Trace(request_);
742 visitor->Trace(headers_); 769 visitor->Trace(headers_);
743 } 770 }
744 771
745 } // namespace blink 772 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698