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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/DataConsumerHandleTestUtil.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/DataConsumerHandleTestUtil.h" 5 #include "modules/fetch/DataConsumerHandleTestUtil.h"
6 6
7 #include "bindings/core/v8/DOMWrapperWorld.h" 7 #include "bindings/core/v8/DOMWrapperWorld.h"
8 #include "wtf/PtrUtil.h"
9 #include <memory>
10 8
11 namespace blink { 9 namespace blink {
12 10
13 DataConsumerHandleTestUtil::Thread::Thread(const char* name, InitializationPolic y initializationPolicy) 11 DataConsumerHandleTestUtil::Thread::Thread(const char* name, InitializationPolic y initializationPolicy)
14 : m_thread(WebThreadSupportingGC::create(name)) 12 : m_thread(WebThreadSupportingGC::create(name))
15 , m_initializationPolicy(initializationPolicy) 13 , m_initializationPolicy(initializationPolicy)
16 , m_waitableEvent(wrapUnique(new WaitableEvent())) 14 , m_waitableEvent(adoptPtr(new WaitableEvent()))
17 { 15 {
18 m_thread->postTask(BLINK_FROM_HERE, threadSafeBind(&Thread::initialize, Allo wCrossThreadAccess(this))); 16 m_thread->postTask(BLINK_FROM_HERE, threadSafeBind(&Thread::initialize, Allo wCrossThreadAccess(this)));
19 m_waitableEvent->wait(); 17 m_waitableEvent->wait();
20 } 18 }
21 19
22 DataConsumerHandleTestUtil::Thread::~Thread() 20 DataConsumerHandleTestUtil::Thread::~Thread()
23 { 21 {
24 m_thread->postTask(BLINK_FROM_HERE, threadSafeBind(&Thread::shutdown, AllowC rossThreadAccess(this))); 22 m_thread->postTask(BLINK_FROM_HERE, threadSafeBind(&Thread::shutdown, AllowC rossThreadAccess(this)));
25 m_waitableEvent->wait(); 23 m_waitableEvent->wait();
26 } 24 }
27 25
28 void DataConsumerHandleTestUtil::Thread::initialize() 26 void DataConsumerHandleTestUtil::Thread::initialize()
29 { 27 {
30 if (m_initializationPolicy >= ScriptExecution) { 28 if (m_initializationPolicy >= ScriptExecution) {
31 m_isolateHolder = wrapUnique(new gin::IsolateHolder()); 29 m_isolateHolder = adoptPtr(new gin::IsolateHolder());
32 isolate()->Enter(); 30 isolate()->Enter();
33 } 31 }
34 m_thread->initialize(); 32 m_thread->initialize();
35 if (m_initializationPolicy >= ScriptExecution) { 33 if (m_initializationPolicy >= ScriptExecution) {
36 v8::HandleScope handleScope(isolate()); 34 v8::HandleScope handleScope(isolate());
37 m_scriptState = ScriptState::create(v8::Context::New(isolate()), DOMWrap perWorld::create(isolate())); 35 m_scriptState = ScriptState::create(v8::Context::New(isolate()), DOMWrap perWorld::create(isolate()));
38 } 36 }
39 if (m_initializationPolicy >= WithExecutionContext) { 37 if (m_initializationPolicy >= WithExecutionContext) {
40 m_executionContext = new NullExecutionContext(); 38 m_executionContext = new NullExecutionContext();
41 } 39 }
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 consume(readSize); 158 consume(readSize);
161 return Ok; 159 return Ok;
162 } 160 }
163 161
164 DataConsumerHandleTestUtil::ReplayingHandle::Context::Context() 162 DataConsumerHandleTestUtil::ReplayingHandle::Context::Context()
165 : m_offset(0) 163 : m_offset(0)
166 , m_readerThread(nullptr) 164 , m_readerThread(nullptr)
167 , m_client(nullptr) 165 , m_client(nullptr)
168 , m_result(ShouldWait) 166 , m_result(ShouldWait)
169 , m_isHandleAttached(true) 167 , m_isHandleAttached(true)
170 , m_detached(wrapUnique(new WaitableEvent())) 168 , m_detached(adoptPtr(new WaitableEvent()))
171 { 169 {
172 } 170 }
173 171
174 const DataConsumerHandleTestUtil::Command& DataConsumerHandleTestUtil::Replaying Handle::Context::top() 172 const DataConsumerHandleTestUtil::Command& DataConsumerHandleTestUtil::Replaying Handle::Context::top()
175 { 173 {
176 ASSERT(!isEmpty()); 174 ASSERT(!isEmpty());
177 return m_commands.first(); 175 return m_commands.first();
178 } 176 }
179 177
180 void DataConsumerHandleTestUtil::ReplayingHandle::Context::consume(size_t size) 178 void DataConsumerHandleTestUtil::ReplayingHandle::Context::consume(size_t size)
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 WebDataConsumerHandle::Reader* DataConsumerHandleTestUtil::ReplayingHandle::obta inReaderInternal(Client* client) 222 WebDataConsumerHandle::Reader* DataConsumerHandleTestUtil::ReplayingHandle::obta inReaderInternal(Client* client)
225 { 223 {
226 return new ReaderImpl(m_context, client); 224 return new ReaderImpl(m_context, client);
227 } 225 }
228 226
229 void DataConsumerHandleTestUtil::ReplayingHandle::add(const Command& command) 227 void DataConsumerHandleTestUtil::ReplayingHandle::add(const Command& command)
230 { 228 {
231 m_context->add(command); 229 m_context->add(command);
232 } 230 }
233 231
234 DataConsumerHandleTestUtil::HandleReader::HandleReader(std::unique_ptr<WebDataCo nsumerHandle> handle, std::unique_ptr<OnFinishedReading> onFinishedReading) 232 DataConsumerHandleTestUtil::HandleReader::HandleReader(PassOwnPtr<WebDataConsume rHandle> handle, std::unique_ptr<OnFinishedReading> onFinishedReading)
235 : m_reader(handle->obtainReader(this)) 233 : m_reader(handle->obtainReader(this))
236 , m_onFinishedReading(std::move(onFinishedReading)) 234 , m_onFinishedReading(std::move(onFinishedReading))
237 { 235 {
238 } 236 }
239 237
240 void DataConsumerHandleTestUtil::HandleReader::didGetReadable() 238 void DataConsumerHandleTestUtil::HandleReader::didGetReadable()
241 { 239 {
242 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError; 240 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError;
243 char buffer[3]; 241 char buffer[3];
244 while (true) { 242 while (true) {
245 size_t size; 243 size_t size;
246 r = m_reader->read(buffer, sizeof(buffer), WebDataConsumerHandle::FlagNo ne, &size); 244 r = m_reader->read(buffer, sizeof(buffer), WebDataConsumerHandle::FlagNo ne, &size);
247 if (r == WebDataConsumerHandle::ShouldWait) 245 if (r == WebDataConsumerHandle::ShouldWait)
248 return; 246 return;
249 if (r != WebDataConsumerHandle::Ok) 247 if (r != WebDataConsumerHandle::Ok)
250 break; 248 break;
251 m_data.append(buffer, size); 249 m_data.append(buffer, size);
252 } 250 }
253 std::unique_ptr<HandleReadResult> result = wrapUnique(new HandleReadResult(r , m_data)); 251 OwnPtr<HandleReadResult> result = adoptPtr(new HandleReadResult(r, m_data));
254 m_data.clear(); 252 m_data.clear();
255 Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FRO M_HERE, WTF::bind(&HandleReader::runOnFinishedReading, this, passed(std::move(re sult)))); 253 Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FRO M_HERE, bind(&HandleReader::runOnFinishedReading, this, passed(std::move(result) )));
256 m_reader = nullptr; 254 m_reader = nullptr;
257 } 255 }
258 256
259 void DataConsumerHandleTestUtil::HandleReader::runOnFinishedReading(std::unique_ ptr<HandleReadResult> result) 257 void DataConsumerHandleTestUtil::HandleReader::runOnFinishedReading(PassOwnPtr<H andleReadResult> result)
260 { 258 {
261 ASSERT(m_onFinishedReading); 259 ASSERT(m_onFinishedReading);
262 std::unique_ptr<OnFinishedReading> onFinishedReading(std::move(m_onFinishedR eading)); 260 std::unique_ptr<OnFinishedReading> onFinishedReading(std::move(m_onFinishedR eading));
263 (*onFinishedReading)(std::move(result)); 261 (*onFinishedReading)(std::move(result));
264 } 262 }
265 263
266 DataConsumerHandleTestUtil::HandleTwoPhaseReader::HandleTwoPhaseReader(std::uniq ue_ptr<WebDataConsumerHandle> handle, std::unique_ptr<OnFinishedReading> onFinis hedReading) 264 DataConsumerHandleTestUtil::HandleTwoPhaseReader::HandleTwoPhaseReader(PassOwnPt r<WebDataConsumerHandle> handle, std::unique_ptr<OnFinishedReading> onFinishedRe ading)
267 : m_reader(handle->obtainReader(this)) 265 : m_reader(handle->obtainReader(this))
268 , m_onFinishedReading(std::move(onFinishedReading)) 266 , m_onFinishedReading(std::move(onFinishedReading))
269 { 267 {
270 } 268 }
271 269
272 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::didGetReadable() 270 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::didGetReadable()
273 { 271 {
274 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError; 272 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError;
275 while (true) { 273 while (true) {
276 const void* buffer = nullptr; 274 const void* buffer = nullptr;
277 size_t size; 275 size_t size;
278 r = m_reader->beginRead(&buffer, WebDataConsumerHandle::FlagNone, &size) ; 276 r = m_reader->beginRead(&buffer, WebDataConsumerHandle::FlagNone, &size) ;
279 if (r == WebDataConsumerHandle::ShouldWait) 277 if (r == WebDataConsumerHandle::ShouldWait)
280 return; 278 return;
281 if (r != WebDataConsumerHandle::Ok) 279 if (r != WebDataConsumerHandle::Ok)
282 break; 280 break;
283 // Read smaller than available in order to test |endRead|. 281 // Read smaller than available in order to test |endRead|.
284 size_t readSize = std::min(size, std::max(size * 2 / 3, static_cast<size _t>(1))); 282 size_t readSize = std::min(size, std::max(size * 2 / 3, static_cast<size _t>(1)));
285 m_data.append(static_cast<const char*>(buffer), readSize); 283 m_data.append(static_cast<const char*>(buffer), readSize);
286 m_reader->endRead(readSize); 284 m_reader->endRead(readSize);
287 } 285 }
288 std::unique_ptr<HandleReadResult> result = wrapUnique(new HandleReadResult(r , m_data)); 286 OwnPtr<HandleReadResult> result = adoptPtr(new HandleReadResult(r, m_data));
289 m_data.clear(); 287 m_data.clear();
290 Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FRO M_HERE, WTF::bind(&HandleTwoPhaseReader::runOnFinishedReading, this, passed(std: :move(result)))); 288 Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FRO M_HERE, bind(&HandleTwoPhaseReader::runOnFinishedReading, this, passed(std::move (result))));
291 m_reader = nullptr; 289 m_reader = nullptr;
292 } 290 }
293 291
294 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::runOnFinishedReading(std: :unique_ptr<HandleReadResult> result) 292 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::runOnFinishedReading(Pass OwnPtr<HandleReadResult> result)
295 { 293 {
296 ASSERT(m_onFinishedReading); 294 ASSERT(m_onFinishedReading);
297 std::unique_ptr<OnFinishedReading> onFinishedReading(std::move(m_onFinishedR eading)); 295 std::unique_ptr<OnFinishedReading> onFinishedReading(std::move(m_onFinishedR eading));
298 (*onFinishedReading)(std::move(result)); 296 (*onFinishedReading)(std::move(result));
299 } 297 }
300 298
301 } // namespace blink 299 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698