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

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

Issue 2172183003: Return unique_ptr<WebDataConsumerHandle::Reader> directly from obtainReader (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gmock_cxx11
Patch Set: rebase Created 4 years, 4 months 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/FetchFormDataConsumerHandle.h" 5 #include "modules/fetch/FetchFormDataConsumerHandle.h"
6 6
7 #include "modules/fetch/DataConsumerHandleUtil.h" 7 #include "modules/fetch/DataConsumerHandleUtil.h"
8 #include "modules/fetch/FetchBlobDataConsumerHandle.h" 8 #include "modules/fetch/FetchBlobDataConsumerHandle.h"
9 #include "wtf/PtrUtil.h" 9 #include "wtf/PtrUtil.h"
10 #include "wtf/ThreadingPrimitives.h" 10 #include "wtf/ThreadingPrimitives.h"
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 // Drain blob from the underlying handle to mark data as read. 230 // Drain blob from the underlying handle to mark data as read.
231 RefPtr<BlobDataHandle> handle = m_reader->drainAsBlobDataHandle( AllowBlobWithInvalidSize); 231 RefPtr<BlobDataHandle> handle = m_reader->drainAsBlobDataHandle( AllowBlobWithInvalidSize);
232 // Here we assume we can always get the valid handle. That is 232 // Here we assume we can always get the valid handle. That is
233 // in fact not specified at FetchDataConsumerHandle level, but 233 // in fact not specified at FetchDataConsumerHandle level, but
234 // |m_context->m_handle| is a FetchBlobDataConsumerHandle. 234 // |m_context->m_handle| is a FetchBlobDataConsumerHandle.
235 ASSERT(handle); 235 ASSERT(handle);
236 } 236 }
237 return formData.release(); 237 return formData.release();
238 } 238 }
239 private: 239 private:
240 ReaderImpl(PassRefPtr<ComplexContext> context, Client* client) : m_conte xt(context), m_reader(m_context->m_handle->obtainReader(client)) {} 240 ReaderImpl(PassRefPtr<ComplexContext> context, Client* client) : m_conte xt(context), m_reader(m_context->m_handle->obtainFetchDataReader(client)) {}
241 241
242 RefPtr<ComplexContext> m_context; 242 RefPtr<ComplexContext> m_context;
243 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader; 243 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader;
244 }; 244 };
245 245
246 ComplexContext(ExecutionContext* executionContext, PassRefPtr<EncodedFormDat a> body, FetchBlobDataConsumerHandle::LoaderFactory* factory) 246 ComplexContext(ExecutionContext* executionContext, PassRefPtr<EncodedFormDat a> body, FetchBlobDataConsumerHandle::LoaderFactory* factory)
247 { 247 {
248 std::unique_ptr<BlobData> blobData = BlobData::create(); 248 std::unique_ptr<BlobData> blobData = BlobData::create();
249 for (const auto& element : body->elements()) { 249 for (const auto& element : body->elements()) {
250 switch (element.m_type) { 250 switch (element.m_type) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 FetchBlobDataConsumerHandle::LoaderFactory* loaderFactory) 323 FetchBlobDataConsumerHandle::LoaderFactory* loaderFactory)
324 { 324 {
325 if (isSimple(body.get())) { 325 if (isSimple(body.get())) {
326 m_context = SimpleContext::create(body); 326 m_context = SimpleContext::create(body);
327 } else { 327 } else {
328 m_context = ComplexContext::create(executionContext, body, loaderFactory ); 328 m_context = ComplexContext::create(executionContext, body, loaderFactory );
329 } 329 }
330 } 330 }
331 FetchFormDataConsumerHandle::~FetchFormDataConsumerHandle() {} 331 FetchFormDataConsumerHandle::~FetchFormDataConsumerHandle() {}
332 332
333 FetchDataConsumerHandle::Reader* FetchFormDataConsumerHandle::obtainReaderIntern al(Client* client) 333 std::unique_ptr<FetchDataConsumerHandle::Reader> FetchFormDataConsumerHandle::ob tainFetchDataReader(Client* client)
334 { 334 {
335 return m_context->obtainReader(client).release(); 335 return m_context->obtainReader(client);
336 } 336 }
337 337
338 } // namespace blink 338 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698