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 "config.h" | 5 #include "config.h" |
6 #include "modules/fetch/FetchResponseData.h" | 6 #include "modules/fetch/FetchResponseData.h" |
7 | 7 |
8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
9 #include "core/fetch/CrossOriginAccessControl.h" | 9 #include "core/fetch/CrossOriginAccessControl.h" |
10 #include "modules/fetch/BodyStreamBuffer.h" | 10 #include "modules/fetch/BodyStreamBuffer.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 ASSERT(m_buffer == m_internalResponse->m_buffer); | 176 ASSERT(m_buffer == m_internalResponse->m_buffer); |
177 ASSERT(m_internalResponse->m_type == DefaultType); | 177 ASSERT(m_internalResponse->m_type == DefaultType); |
178 newResponse->m_internalResponse = m_internalResponse->clone(executionCon
text); | 178 newResponse->m_internalResponse = m_internalResponse->clone(executionCon
text); |
179 m_buffer = m_internalResponse->m_buffer; | 179 m_buffer = m_internalResponse->m_buffer; |
180 newResponse->m_buffer = newResponse->m_internalResponse->m_buffer; | 180 newResponse->m_buffer = newResponse->m_internalResponse->m_buffer; |
181 break; | 181 break; |
182 case DefaultType: { | 182 case DefaultType: { |
183 ASSERT(!m_internalResponse); | 183 ASSERT(!m_internalResponse); |
184 if (m_buffer) { | 184 if (m_buffer) { |
185 OwnPtr<WebDataConsumerHandle> handle1, handle2; | 185 OwnPtr<WebDataConsumerHandle> handle1, handle2; |
186 // TODO(yhirano): unlock the buffer appropriately. | 186 DataConsumerTee::create(executionContext, m_buffer->releaseHandle(ex
ecutionContext), &handle1, &handle2); |
187 DataConsumerTee::create(executionContext, m_buffer->lock(executionCo
ntext), &handle1, &handle2); | |
188 m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWeb
Handle(handle1.release())); | 187 m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWeb
Handle(handle1.release())); |
189 newResponse->m_buffer = new BodyStreamBuffer(createFetchDataConsumer
HandleFromWebHandle(handle2.release())); | 188 newResponse->m_buffer = new BodyStreamBuffer(createFetchDataConsumer
HandleFromWebHandle(handle2.release())); |
190 } | 189 } |
191 break; | 190 break; |
192 } | 191 } |
193 case ErrorType: | 192 case ErrorType: |
194 ASSERT(!m_internalResponse); | 193 ASSERT(!m_internalResponse); |
195 ASSERT(!m_buffer); | 194 ASSERT(!m_buffer); |
196 break; | 195 break; |
197 case OpaqueType: | 196 case OpaqueType: |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 } | 243 } |
245 | 244 |
246 DEFINE_TRACE(FetchResponseData) | 245 DEFINE_TRACE(FetchResponseData) |
247 { | 246 { |
248 visitor->trace(m_headerList); | 247 visitor->trace(m_headerList); |
249 visitor->trace(m_internalResponse); | 248 visitor->trace(m_internalResponse); |
250 visitor->trace(m_buffer); | 249 visitor->trace(m_buffer); |
251 } | 250 } |
252 | 251 |
253 } // namespace blink | 252 } // namespace blink |
OLD | NEW |