 Chromium Code Reviews
 Chromium Code Reviews Issue 1233573002:
  [Fetch API] Remove DrainingBuffer.  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk
    
  
    Issue 1233573002:
  [Fetch API] Remove DrainingBuffer.  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk| 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/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" | 
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 } | 24 } | 
| 25 | 25 | 
| 26 FetchRequestData* FetchRequestData::create(ExecutionContext* executionContext, c onst WebServiceWorkerRequest& webRequest) | 26 FetchRequestData* FetchRequestData::create(ExecutionContext* executionContext, c onst WebServiceWorkerRequest& webRequest) | 
| 27 { | 27 { | 
| 28 FetchRequestData* request = FetchRequestData::create(); | 28 FetchRequestData* request = FetchRequestData::create(); | 
| 29 request->m_url = webRequest.url(); | 29 request->m_url = webRequest.url(); | 
| 30 request->m_method = webRequest.method(); | 30 request->m_method = webRequest.method(); | 
| 31 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it) | 31 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it) | 
| 32 request->m_headerList->append(it->key, it->value); | 32 request->m_headerList->append(it->key, it->value); | 
| 33 if (webRequest.blobDataHandle()) | 33 if (webRequest.blobDataHandle()) | 
| 34 request->setBuffer(BodyStreamBuffer::create(FetchBlobDataConsumerHandle: :create(executionContext, webRequest.blobDataHandle()))); | 34 request->setBuffer(new BodyStreamBuffer(FetchBlobDataConsumerHandle::cre ate(executionContext, webRequest.blobDataHandle()))); | 
| 35 request->setContext(webRequest.requestContext()); | 35 request->setContext(webRequest.requestContext()); | 
| 36 request->m_referrer.setURL(webRequest.referrer()); | 36 request->m_referrer.setURL(webRequest.referrer()); | 
| 37 request->setMode(webRequest.mode()); | 37 request->setMode(webRequest.mode()); | 
| 38 request->setCredentials(webRequest.credentialsMode()); | 38 request->setCredentials(webRequest.credentialsMode()); | 
| 39 request->setMIMEType(request->m_headerList->extractMIMEType()); | 39 request->setMIMEType(request->m_headerList->extractMIMEType()); | 
| 40 return request; | 40 return request; | 
| 41 } | 41 } | 
| 42 | 42 | 
| 43 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) | 43 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) | 
| 44 { | 44 { | 
| 45 FetchRequestData* request = FetchRequestData::create(); | 45 FetchRequestData* request = FetchRequestData::create(); | 
| 46 request->m_url = m_url; | 46 request->m_url = m_url; | 
| 47 request->m_method = m_method; | 47 request->m_method = m_method; | 
| 48 request->m_headerList = m_headerList->clone(); | 48 request->m_headerList = m_headerList->clone(); | 
| 49 request->m_unsafeRequestFlag = m_unsafeRequestFlag; | 49 request->m_unsafeRequestFlag = m_unsafeRequestFlag; | 
| 50 if (m_buffer) { | 50 if (m_buffer->hasBody()) { | 
| 51 OwnPtr<FetchDataConsumerHandle> dest1, dest2; | 51 OwnPtr<FetchDataConsumerHandle> dest1, dest2; | 
| 52 DataConsumerTee::create(executionContext, m_buffer->releaseHandle(), &de st1, &dest2); | 52 // TODO(yhirano): unlock the buffer. | 
| 53 m_buffer = BodyStreamBuffer::create(dest1.release()); | 53 DataConsumerTee::create(executionContext, m_buffer->lock(executionContex t), &dest1, &dest2); | 
| 54 request->m_buffer = BodyStreamBuffer::create(dest2.release()); | 54 m_buffer = new BodyStreamBuffer(dest1.release()); | 
| 55 request->m_buffer = new BodyStreamBuffer(dest2.release()); | |
| 56 } else { | |
| 57 m_buffer = new BodyStreamBuffer; | |
| 58 request->m_buffer = new BodyStreamBuffer; | |
| 
hiroshige
2015/07/24 12:47:03
same as the FetchResponseData::clone()'s comment.
 
yhirano
2015/07/29 08:45:02
Done.
 | |
| 55 } | 59 } | 
| 56 request->m_origin = m_origin; | 60 request->m_origin = m_origin; | 
| 57 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; | 61 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; | 
| 58 request->m_context = m_context; | 62 request->m_context = m_context; | 
| 59 request->m_referrer = m_referrer; | 63 request->m_referrer = m_referrer; | 
| 60 request->m_mode = m_mode; | 64 request->m_mode = m_mode; | 
| 61 request->m_credentials = m_credentials; | 65 request->m_credentials = m_credentials; | 
| 62 request->m_responseTainting = m_responseTainting; | 66 request->m_responseTainting = m_responseTainting; | 
| 63 request->m_mimeType = m_mimeType; | 67 request->m_mimeType = m_mimeType; | 
| 64 return request; | 68 return request; | 
| 65 } | 69 } | 
| 66 | 70 | 
| 67 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) | 71 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) | 
| 68 { | 72 { | 
| 69 return clone(executionContext); | 73 FetchRequestData* request = FetchRequestData::create(); | 
| 74 request->m_url = m_url; | |
| 75 request->m_method = m_method; | |
| 76 request->m_headerList = m_headerList->clone(); | |
| 77 request->m_unsafeRequestFlag = m_unsafeRequestFlag; | |
| 78 request->m_buffer = m_buffer; | |
| 79 m_buffer = new BodyStreamBuffer; | |
| 80 request->m_origin = m_origin; | |
| 81 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; | |
| 82 request->m_context = m_context; | |
| 83 request->m_referrer = m_referrer; | |
| 84 request->m_mode = m_mode; | |
| 85 request->m_credentials = m_credentials; | |
| 86 request->m_responseTainting = m_responseTainting; | |
| 87 request->m_mimeType = m_mimeType; | |
| 88 return request; | |
| 70 } | 89 } | 
| 71 | 90 | 
| 72 FetchRequestData::~FetchRequestData() | 91 FetchRequestData::~FetchRequestData() | 
| 73 { | 92 { | 
| 74 } | 93 } | 
| 75 | 94 | 
| 76 FetchRequestData::FetchRequestData() | 95 FetchRequestData::FetchRequestData() | 
| 77 : m_method("GET") | 96 : m_method("GET") | 
| 78 , m_headerList(FetchHeaderList::create()) | 97 , m_headerList(FetchHeaderList::create()) | 
| 79 , m_unsafeRequestFlag(false) | 98 , m_unsafeRequestFlag(false) | 
| 80 , m_context(WebURLRequest::RequestContextUnspecified) | 99 , m_context(WebURLRequest::RequestContextUnspecified) | 
| 81 , m_sameOriginDataURLFlag(false) | 100 , m_sameOriginDataURLFlag(false) | 
| 82 , m_mode(WebURLRequest::FetchRequestModeNoCORS) | 101 , m_mode(WebURLRequest::FetchRequestModeNoCORS) | 
| 83 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) | 102 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) | 
| 84 , m_responseTainting(BasicTainting) | 103 , m_responseTainting(BasicTainting) | 
| 104 , m_buffer(new BodyStreamBuffer) | |
| 85 { | 105 { | 
| 86 } | 106 } | 
| 87 | 107 | 
| 88 DEFINE_TRACE(FetchRequestData) | 108 DEFINE_TRACE(FetchRequestData) | 
| 89 { | 109 { | 
| 90 visitor->trace(m_buffer); | 110 visitor->trace(m_buffer); | 
| 91 visitor->trace(m_headerList); | 111 visitor->trace(m_headerList); | 
| 92 } | 112 } | 
| 93 | 113 | 
| 94 } // namespace blink | 114 } // namespace blink | 
| OLD | NEW |