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

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

Issue 1418813004: [Fetch API] Reflect spec changes of bodyUsed property (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 "config.h" 5 #include "config.h"
6 #include "modules/fetch/FetchRequestData.h" 6 #include "modules/fetch/FetchRequestData.h"
7 7
8 #include "core/dom/ExecutionContext.h" 8 #include "core/dom/ExecutionContext.h"
9 #include "core/fetch/ResourceLoaderOptions.h" 9 #include "core/fetch/ResourceLoaderOptions.h"
10 #include "core/loader/ThreadableLoader.h" 10 #include "core/loader/ThreadableLoader.h"
11 #include "core/streams/ReadableStream.h"
11 #include "modules/fetch/BodyStreamBuffer.h" 12 #include "modules/fetch/BodyStreamBuffer.h"
13 #include "modules/fetch/DataConsumerHandleUtil.h"
12 #include "modules/fetch/DataConsumerTee.h" 14 #include "modules/fetch/DataConsumerTee.h"
13 #include "modules/fetch/FetchBlobDataConsumerHandle.h" 15 #include "modules/fetch/FetchBlobDataConsumerHandle.h"
14 #include "modules/fetch/FetchHeaderList.h" 16 #include "modules/fetch/FetchHeaderList.h"
15 #include "platform/network/ResourceRequest.h" 17 #include "platform/network/ResourceRequest.h"
16 #include "public/platform/WebURLRequest.h" 18 #include "public/platform/WebURLRequest.h"
17 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 19 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
18 20
19 namespace blink { 21 namespace blink {
20 22
21 FetchRequestData* FetchRequestData::create() 23 FetchRequestData* FetchRequestData::create()
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 request->m_mimeType = m_mimeType; 61 request->m_mimeType = m_mimeType;
60 request->m_integrity = m_integrity; 62 request->m_integrity = m_integrity;
61 return request; 63 return request;
62 } 64 }
63 65
64 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) 66 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext)
65 { 67 {
66 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 68 FetchRequestData* request = FetchRequestData::cloneExceptBody();
67 if (m_buffer) { 69 if (m_buffer) {
68 OwnPtr<FetchDataConsumerHandle> dest1, dest2; 70 OwnPtr<FetchDataConsumerHandle> dest1, dest2;
69 // TODO(yhirano): unlock the buffer. 71 DataConsumerTee::create(executionContext, m_buffer->releaseHandle(execut ionContext), &dest1, &dest2);
70 DataConsumerTee::create(executionContext, m_buffer->lock(executionContex t), &dest1, &dest2);
71 m_buffer = new BodyStreamBuffer(dest1.release()); 72 m_buffer = new BodyStreamBuffer(dest1.release());
72 request->m_buffer = new BodyStreamBuffer(dest2.release()); 73 request->m_buffer = new BodyStreamBuffer(dest2.release());
73 } 74 }
74 return request; 75 return request;
75 } 76 }
76 77
77 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) 78 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext)
78 { 79 {
79 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 80 FetchRequestData* request = FetchRequestData::cloneExceptBody();
80 request->m_buffer = m_buffer; 81 if (m_buffer) {
81 m_buffer = nullptr; 82 request->m_buffer = m_buffer;
83 m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWebHand le(createDoneDataConsumerHandle()));
84 m_buffer->stream()->setIsDisturbed();
85 }
82 return request; 86 return request;
83 } 87 }
84 88
85 FetchRequestData::~FetchRequestData() 89 FetchRequestData::~FetchRequestData()
86 { 90 {
87 } 91 }
88 92
89 FetchRequestData::FetchRequestData() 93 FetchRequestData::FetchRequestData()
90 : m_method("GET") 94 : m_method("GET")
91 , m_headerList(FetchHeaderList::create()) 95 , m_headerList(FetchHeaderList::create())
92 , m_unsafeRequestFlag(false) 96 , m_unsafeRequestFlag(false)
93 , m_context(WebURLRequest::RequestContextUnspecified) 97 , m_context(WebURLRequest::RequestContextUnspecified)
94 , m_sameOriginDataURLFlag(false) 98 , m_sameOriginDataURLFlag(false)
95 , m_referrer(Referrer(clientReferrerString(), ReferrerPolicyDefault)) 99 , m_referrer(Referrer(clientReferrerString(), ReferrerPolicyDefault))
96 , m_mode(WebURLRequest::FetchRequestModeNoCORS) 100 , m_mode(WebURLRequest::FetchRequestModeNoCORS)
97 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) 101 , m_credentials(WebURLRequest::FetchCredentialsModeOmit)
98 , m_redirect(WebURLRequest::FetchRedirectModeFollow) 102 , m_redirect(WebURLRequest::FetchRedirectModeFollow)
99 , m_responseTainting(BasicTainting) 103 , m_responseTainting(BasicTainting)
100 { 104 {
101 } 105 }
102 106
103 DEFINE_TRACE(FetchRequestData) 107 DEFINE_TRACE(FetchRequestData)
104 { 108 {
105 visitor->trace(m_buffer); 109 visitor->trace(m_buffer);
106 visitor->trace(m_headerList); 110 visitor->trace(m_headerList);
107 } 111 }
108 112
109 } // namespace blink 113 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698