OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |