| 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 |