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

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

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/FetchDataLoader.h" 5 #include "modules/fetch/FetchDataLoader.h"
6 6
7 #include "core/html/parser/TextResourceDecoder.h" 7 #include "core/html/parser/TextResourceDecoder.h"
8 #include "wtf/PtrUtil.h"
9 #include "wtf/text/StringBuilder.h" 8 #include "wtf/text/StringBuilder.h"
10 #include "wtf/text/WTFString.h" 9 #include "wtf/text/WTFString.h"
11 #include "wtf/typed_arrays/ArrayBufferBuilder.h" 10 #include "wtf/typed_arrays/ArrayBufferBuilder.h"
12 #include <memory>
13 11
14 namespace blink { 12 namespace blink {
15 13
16 namespace { 14 namespace {
17 15
18 class FetchDataLoaderAsBlobHandle 16 class FetchDataLoaderAsBlobHandle
19 : public FetchDataLoader 17 : public FetchDataLoader
20 , public WebDataConsumerHandle::Client { 18 , public WebDataConsumerHandle::Client {
21 public: 19 public:
22 explicit FetchDataLoaderAsBlobHandle(const String& mimeType) 20 explicit FetchDataLoaderAsBlobHandle(const String& mimeType)
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 94 }
97 } 95 }
98 96
99 void cancel() override 97 void cancel() override
100 { 98 {
101 m_reader.reset(); 99 m_reader.reset();
102 m_blobData.reset(); 100 m_blobData.reset();
103 m_client.clear(); 101 m_client.clear();
104 } 102 }
105 103
106 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader; 104 OwnPtr<FetchDataConsumerHandle::Reader> m_reader;
107 Member<FetchDataLoader::Client> m_client; 105 Member<FetchDataLoader::Client> m_client;
108 106
109 String m_mimeType; 107 String m_mimeType;
110 std::unique_ptr<BlobData> m_blobData; 108 OwnPtr<BlobData> m_blobData;
111 }; 109 };
112 110
113 class FetchDataLoaderAsArrayBuffer 111 class FetchDataLoaderAsArrayBuffer
114 : public FetchDataLoader 112 : public FetchDataLoader
115 , public WebDataConsumerHandle::Client { 113 , public WebDataConsumerHandle::Client {
116 public: 114 public:
117 FetchDataLoaderAsArrayBuffer() 115 FetchDataLoaderAsArrayBuffer()
118 : m_client(nullptr) { } 116 : m_client(nullptr) { }
119 117
120 DEFINE_INLINE_VIRTUAL_TRACE() 118 DEFINE_INLINE_VIRTUAL_TRACE()
121 { 119 {
122 FetchDataLoader::trace(visitor); 120 FetchDataLoader::trace(visitor);
123 visitor->trace(m_client); 121 visitor->trace(m_client);
124 } 122 }
125 123
126 protected: 124 protected:
127 void start(FetchDataConsumerHandle* handle, FetchDataLoader::Client* client) override 125 void start(FetchDataConsumerHandle* handle, FetchDataLoader::Client* client) override
128 { 126 {
129 ASSERT(!m_client); 127 ASSERT(!m_client);
130 ASSERT(!m_rawData); 128 ASSERT(!m_rawData);
131 ASSERT(!m_reader); 129 ASSERT(!m_reader);
132 m_client = client; 130 m_client = client;
133 m_rawData = wrapUnique(new ArrayBufferBuilder()); 131 m_rawData = adoptPtr(new ArrayBufferBuilder());
134 m_reader = handle->obtainReader(this); 132 m_reader = handle->obtainReader(this);
135 } 133 }
136 134
137 void didGetReadable() override 135 void didGetReadable() override
138 { 136 {
139 ASSERT(m_client); 137 ASSERT(m_client);
140 ASSERT(m_rawData); 138 ASSERT(m_rawData);
141 ASSERT(m_reader); 139 ASSERT(m_reader);
142 140
143 while (true) { 141 while (true) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 m_client.clear(); 184 m_client.clear();
187 } 185 }
188 186
189 void cancel() override 187 void cancel() override
190 { 188 {
191 m_reader.reset(); 189 m_reader.reset();
192 m_rawData.reset(); 190 m_rawData.reset();
193 m_client.clear(); 191 m_client.clear();
194 } 192 }
195 193
196 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader; 194 OwnPtr<FetchDataConsumerHandle::Reader> m_reader;
197 Member<FetchDataLoader::Client> m_client; 195 Member<FetchDataLoader::Client> m_client;
198 196
199 std::unique_ptr<ArrayBufferBuilder> m_rawData; 197 OwnPtr<ArrayBufferBuilder> m_rawData;
200 }; 198 };
201 199
202 class FetchDataLoaderAsString 200 class FetchDataLoaderAsString
203 : public FetchDataLoader 201 : public FetchDataLoader
204 , public WebDataConsumerHandle::Client { 202 , public WebDataConsumerHandle::Client {
205 public: 203 public:
206 FetchDataLoaderAsString() 204 FetchDataLoaderAsString()
207 : m_client(nullptr) { } 205 : m_client(nullptr) { }
208 206
209 DEFINE_INLINE_VIRTUAL_TRACE() 207 DEFINE_INLINE_VIRTUAL_TRACE()
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 } 270 }
273 271
274 void cancel() override 272 void cancel() override
275 { 273 {
276 m_reader.reset(); 274 m_reader.reset();
277 m_builder.clear(); 275 m_builder.clear();
278 m_decoder.reset(); 276 m_decoder.reset();
279 m_client.clear(); 277 m_client.clear();
280 } 278 }
281 279
282 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader; 280 OwnPtr<FetchDataConsumerHandle::Reader> m_reader;
283 Member<FetchDataLoader::Client> m_client; 281 Member<FetchDataLoader::Client> m_client;
284 282
285 std::unique_ptr<TextResourceDecoder> m_decoder; 283 OwnPtr<TextResourceDecoder> m_decoder;
286 StringBuilder m_builder; 284 StringBuilder m_builder;
287 }; 285 };
288 286
289 class FetchDataLoaderAsStream 287 class FetchDataLoaderAsStream
290 : public FetchDataLoader 288 : public FetchDataLoader
291 , public WebDataConsumerHandle::Client { 289 , public WebDataConsumerHandle::Client {
292 public: 290 public:
293 explicit FetchDataLoaderAsStream(Stream* outStream) 291 explicit FetchDataLoaderAsStream(Stream* outStream)
294 : m_client(nullptr) 292 : m_client(nullptr)
295 , m_outStream(outStream) { } 293 , m_outStream(outStream) { }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 cleanup(); 362 cleanup();
365 } 363 }
366 364
367 void cleanup() 365 void cleanup()
368 { 366 {
369 m_reader.reset(); 367 m_reader.reset();
370 m_client.clear(); 368 m_client.clear();
371 m_outStream.clear(); 369 m_outStream.clear();
372 } 370 }
373 371
374 std::unique_ptr<FetchDataConsumerHandle::Reader> m_reader; 372 OwnPtr<FetchDataConsumerHandle::Reader> m_reader;
375 Member<FetchDataLoader::Client> m_client; 373 Member<FetchDataLoader::Client> m_client;
376 374
377 Member<Stream> m_outStream; 375 Member<Stream> m_outStream;
378 }; 376 };
379 377
380 378
381 } // namespace 379 } // namespace
382 380
383 FetchDataLoader* FetchDataLoader::createLoaderAsBlobHandle(const String& mimeTyp e) 381 FetchDataLoader* FetchDataLoader::createLoaderAsBlobHandle(const String& mimeTyp e)
384 { 382 {
385 return new FetchDataLoaderAsBlobHandle(mimeType); 383 return new FetchDataLoaderAsBlobHandle(mimeType);
386 } 384 }
387 385
388 FetchDataLoader* FetchDataLoader::createLoaderAsArrayBuffer() 386 FetchDataLoader* FetchDataLoader::createLoaderAsArrayBuffer()
389 { 387 {
390 return new FetchDataLoaderAsArrayBuffer(); 388 return new FetchDataLoaderAsArrayBuffer();
391 } 389 }
392 390
393 FetchDataLoader* FetchDataLoader::createLoaderAsString() 391 FetchDataLoader* FetchDataLoader::createLoaderAsString()
394 { 392 {
395 return new FetchDataLoaderAsString(); 393 return new FetchDataLoaderAsString();
396 } 394 }
397 395
398 FetchDataLoader* FetchDataLoader::createLoaderAsStream(Stream* outStream) 396 FetchDataLoader* FetchDataLoader::createLoaderAsStream(Stream* outStream)
399 { 397 {
400 return new FetchDataLoaderAsStream(outStream); 398 return new FetchDataLoaderAsStream(outStream);
401 } 399 }
402 400
403 } // namespace blink 401 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698