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

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

Powered by Google App Engine
This is Rietveld 408576698