| OLD | NEW |
| 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" | 8 #include "wtf/PtrUtil.h" |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 } // namespace | 37 } // namespace |
| 38 | 38 |
| 39 DataConsumerHandleTestUtil::Thread::Thread( | 39 DataConsumerHandleTestUtil::Thread::Thread( |
| 40 const char* name, | 40 const char* name, |
| 41 InitializationPolicy initializationPolicy) | 41 InitializationPolicy initializationPolicy) |
| 42 : m_thread( | 42 : m_thread( |
| 43 WebThreadSupportingGC::create(name, BlinkGC::MainThreadHeapMode)), | 43 WebThreadSupportingGC::create(name, BlinkGC::MainThreadHeapMode)), |
| 44 m_initializationPolicy(initializationPolicy), | 44 m_initializationPolicy(initializationPolicy), |
| 45 m_waitableEvent(makeUnique<WaitableEvent>()) { | 45 m_waitableEvent(WTF::makeUnique<WaitableEvent>()) { |
| 46 m_thread->postTask( | 46 m_thread->postTask( |
| 47 BLINK_FROM_HERE, | 47 BLINK_FROM_HERE, |
| 48 crossThreadBind(&Thread::initialize, crossThreadUnretained(this))); | 48 crossThreadBind(&Thread::initialize, crossThreadUnretained(this))); |
| 49 m_waitableEvent->wait(); | 49 m_waitableEvent->wait(); |
| 50 } | 50 } |
| 51 | 51 |
| 52 DataConsumerHandleTestUtil::Thread::~Thread() { | 52 DataConsumerHandleTestUtil::Thread::~Thread() { |
| 53 m_thread->postTask( | 53 m_thread->postTask( |
| 54 BLINK_FROM_HERE, | 54 BLINK_FROM_HERE, |
| 55 crossThreadBind(&Thread::shutdown, crossThreadUnretained(this))); | 55 crossThreadBind(&Thread::shutdown, crossThreadUnretained(this))); |
| 56 m_waitableEvent->wait(); | 56 m_waitableEvent->wait(); |
| 57 } | 57 } |
| 58 | 58 |
| 59 void DataConsumerHandleTestUtil::Thread::initialize() { | 59 void DataConsumerHandleTestUtil::Thread::initialize() { |
| 60 if (m_initializationPolicy >= ScriptExecution) { | 60 if (m_initializationPolicy >= ScriptExecution) { |
| 61 m_isolateHolder = makeUnique<gin::IsolateHolder>(); | 61 m_isolateHolder = WTF::makeUnique<gin::IsolateHolder>(); |
| 62 isolate()->Enter(); | 62 isolate()->Enter(); |
| 63 } | 63 } |
| 64 m_thread->initialize(); | 64 m_thread->initialize(); |
| 65 if (m_initializationPolicy >= ScriptExecution) { | 65 if (m_initializationPolicy >= ScriptExecution) { |
| 66 v8::HandleScope handleScope(isolate()); | 66 v8::HandleScope handleScope(isolate()); |
| 67 m_scriptState = ScriptState::create(v8::Context::New(isolate()), | 67 m_scriptState = ScriptState::create(v8::Context::New(isolate()), |
| 68 DOMWrapperWorld::create(isolate())); | 68 DOMWrapperWorld::create(isolate())); |
| 69 } | 69 } |
| 70 if (m_initializationPolicy >= WithExecutionContext) { | 70 if (m_initializationPolicy >= WithExecutionContext) { |
| 71 m_executionContext = new NullExecutionContext(); | 71 m_executionContext = new NullExecutionContext(); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 consume(readSize); | 188 consume(readSize); |
| 189 return Ok; | 189 return Ok; |
| 190 } | 190 } |
| 191 | 191 |
| 192 DataConsumerHandleTestUtil::ReplayingHandle::Context::Context() | 192 DataConsumerHandleTestUtil::ReplayingHandle::Context::Context() |
| 193 : m_offset(0), | 193 : m_offset(0), |
| 194 m_readerThread(nullptr), | 194 m_readerThread(nullptr), |
| 195 m_client(nullptr), | 195 m_client(nullptr), |
| 196 m_result(ShouldWait), | 196 m_result(ShouldWait), |
| 197 m_isHandleAttached(true), | 197 m_isHandleAttached(true), |
| 198 m_detached(makeUnique<WaitableEvent>()) {} | 198 m_detached(WTF::makeUnique<WaitableEvent>()) {} |
| 199 | 199 |
| 200 const DataConsumerHandleTestUtil::Command& | 200 const DataConsumerHandleTestUtil::Command& |
| 201 DataConsumerHandleTestUtil::ReplayingHandle::Context::top() { | 201 DataConsumerHandleTestUtil::ReplayingHandle::Context::top() { |
| 202 DCHECK(!isEmpty()); | 202 DCHECK(!isEmpty()); |
| 203 return m_commands.first(); | 203 return m_commands.first(); |
| 204 } | 204 } |
| 205 | 205 |
| 206 void DataConsumerHandleTestUtil::ReplayingHandle::Context::consume( | 206 void DataConsumerHandleTestUtil::ReplayingHandle::Context::consume( |
| 207 size_t size) { | 207 size_t size) { |
| 208 DCHECK(!isEmpty()); | 208 DCHECK(!isEmpty()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 239 | 239 |
| 240 DataConsumerHandleTestUtil::ReplayingHandle::ReplayingHandle() | 240 DataConsumerHandleTestUtil::ReplayingHandle::ReplayingHandle() |
| 241 : m_context(Context::create()) {} | 241 : m_context(Context::create()) {} |
| 242 | 242 |
| 243 DataConsumerHandleTestUtil::ReplayingHandle::~ReplayingHandle() { | 243 DataConsumerHandleTestUtil::ReplayingHandle::~ReplayingHandle() { |
| 244 m_context->detachHandle(); | 244 m_context->detachHandle(); |
| 245 } | 245 } |
| 246 | 246 |
| 247 std::unique_ptr<WebDataConsumerHandle::Reader> | 247 std::unique_ptr<WebDataConsumerHandle::Reader> |
| 248 DataConsumerHandleTestUtil::ReplayingHandle::obtainReader(Client* client) { | 248 DataConsumerHandleTestUtil::ReplayingHandle::obtainReader(Client* client) { |
| 249 return makeUnique<ReaderImpl>(m_context, client); | 249 return WTF::makeUnique<ReaderImpl>(m_context, client); |
| 250 } | 250 } |
| 251 | 251 |
| 252 void DataConsumerHandleTestUtil::ReplayingHandle::add(const Command& command) { | 252 void DataConsumerHandleTestUtil::ReplayingHandle::add(const Command& command) { |
| 253 m_context->add(command); | 253 m_context->add(command); |
| 254 } | 254 } |
| 255 | 255 |
| 256 DataConsumerHandleTestUtil::HandleReader::HandleReader( | 256 DataConsumerHandleTestUtil::HandleReader::HandleReader( |
| 257 std::unique_ptr<WebDataConsumerHandle> handle, | 257 std::unique_ptr<WebDataConsumerHandle> handle, |
| 258 std::unique_ptr<OnFinishedReading> onFinishedReading) | 258 std::unique_ptr<OnFinishedReading> onFinishedReading) |
| 259 : m_reader(handle->obtainReader(this)), | 259 : m_reader(handle->obtainReader(this)), |
| 260 m_onFinishedReading(std::move(onFinishedReading)) {} | 260 m_onFinishedReading(std::move(onFinishedReading)) {} |
| 261 | 261 |
| 262 void DataConsumerHandleTestUtil::HandleReader::didGetReadable() { | 262 void DataConsumerHandleTestUtil::HandleReader::didGetReadable() { |
| 263 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError; | 263 WebDataConsumerHandle::Result r = WebDataConsumerHandle::UnexpectedError; |
| 264 char buffer[3]; | 264 char buffer[3]; |
| 265 while (true) { | 265 while (true) { |
| 266 size_t size; | 266 size_t size; |
| 267 r = m_reader->read(buffer, sizeof(buffer), WebDataConsumerHandle::FlagNone, | 267 r = m_reader->read(buffer, sizeof(buffer), WebDataConsumerHandle::FlagNone, |
| 268 &size); | 268 &size); |
| 269 if (r == WebDataConsumerHandle::ShouldWait) | 269 if (r == WebDataConsumerHandle::ShouldWait) |
| 270 return; | 270 return; |
| 271 if (r != WebDataConsumerHandle::Ok) | 271 if (r != WebDataConsumerHandle::Ok) |
| 272 break; | 272 break; |
| 273 m_data.append(buffer, size); | 273 m_data.append(buffer, size); |
| 274 } | 274 } |
| 275 std::unique_ptr<HandleReadResult> result = | 275 std::unique_ptr<HandleReadResult> result = |
| 276 makeUnique<HandleReadResult>(r, m_data); | 276 WTF::makeUnique<HandleReadResult>(r, m_data); |
| 277 m_data.clear(); | 277 m_data.clear(); |
| 278 Platform::current()->currentThread()->getWebTaskRunner()->postTask( | 278 Platform::current()->currentThread()->getWebTaskRunner()->postTask( |
| 279 BLINK_FROM_HERE, | 279 BLINK_FROM_HERE, |
| 280 WTF::bind(&HandleReader::runOnFinishedReading, WTF::unretained(this), | 280 WTF::bind(&HandleReader::runOnFinishedReading, WTF::unretained(this), |
| 281 passed(std::move(result)))); | 281 WTF::passed(std::move(result)))); |
| 282 m_reader = nullptr; | 282 m_reader = nullptr; |
| 283 } | 283 } |
| 284 | 284 |
| 285 void DataConsumerHandleTestUtil::HandleReader::runOnFinishedReading( | 285 void DataConsumerHandleTestUtil::HandleReader::runOnFinishedReading( |
| 286 std::unique_ptr<HandleReadResult> result) { | 286 std::unique_ptr<HandleReadResult> result) { |
| 287 DCHECK(m_onFinishedReading); | 287 DCHECK(m_onFinishedReading); |
| 288 std::unique_ptr<OnFinishedReading> onFinishedReading( | 288 std::unique_ptr<OnFinishedReading> onFinishedReading( |
| 289 std::move(m_onFinishedReading)); | 289 std::move(m_onFinishedReading)); |
| 290 (*onFinishedReading)(std::move(result)); | 290 (*onFinishedReading)(std::move(result)); |
| 291 } | 291 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 306 return; | 306 return; |
| 307 if (r != WebDataConsumerHandle::Ok) | 307 if (r != WebDataConsumerHandle::Ok) |
| 308 break; | 308 break; |
| 309 // Read smaller than available in order to test |endRead|. | 309 // Read smaller than available in order to test |endRead|. |
| 310 size_t readSize = | 310 size_t readSize = |
| 311 std::min(size, std::max(size * 2 / 3, static_cast<size_t>(1))); | 311 std::min(size, std::max(size * 2 / 3, static_cast<size_t>(1))); |
| 312 m_data.append(static_cast<const char*>(buffer), readSize); | 312 m_data.append(static_cast<const char*>(buffer), readSize); |
| 313 m_reader->endRead(readSize); | 313 m_reader->endRead(readSize); |
| 314 } | 314 } |
| 315 std::unique_ptr<HandleReadResult> result = | 315 std::unique_ptr<HandleReadResult> result = |
| 316 makeUnique<HandleReadResult>(r, m_data); | 316 WTF::makeUnique<HandleReadResult>(r, m_data); |
| 317 m_data.clear(); | 317 m_data.clear(); |
| 318 Platform::current()->currentThread()->getWebTaskRunner()->postTask( | 318 Platform::current()->currentThread()->getWebTaskRunner()->postTask( |
| 319 BLINK_FROM_HERE, | 319 BLINK_FROM_HERE, |
| 320 WTF::bind(&HandleTwoPhaseReader::runOnFinishedReading, | 320 WTF::bind(&HandleTwoPhaseReader::runOnFinishedReading, |
| 321 WTF::unretained(this), passed(std::move(result)))); | 321 WTF::unretained(this), WTF::passed(std::move(result)))); |
| 322 m_reader = nullptr; | 322 m_reader = nullptr; |
| 323 } | 323 } |
| 324 | 324 |
| 325 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::runOnFinishedReading( | 325 void DataConsumerHandleTestUtil::HandleTwoPhaseReader::runOnFinishedReading( |
| 326 std::unique_ptr<HandleReadResult> result) { | 326 std::unique_ptr<HandleReadResult> result) { |
| 327 DCHECK(m_onFinishedReading); | 327 DCHECK(m_onFinishedReading); |
| 328 std::unique_ptr<OnFinishedReading> onFinishedReading( | 328 std::unique_ptr<OnFinishedReading> onFinishedReading( |
| 329 std::move(m_onFinishedReading)); | 329 std::move(m_onFinishedReading)); |
| 330 (*onFinishedReading)(std::move(result)); | 330 (*onFinishedReading)(std::move(result)); |
| 331 } | 331 } |
| 332 | 332 |
| 333 std::unique_ptr<WebDataConsumerHandle> | 333 std::unique_ptr<WebDataConsumerHandle> |
| 334 DataConsumerHandleTestUtil::createWaitingDataConsumerHandle() { | 334 DataConsumerHandleTestUtil::createWaitingDataConsumerHandle() { |
| 335 return wrapUnique(new WaitingHandle); | 335 return WTF::wrapUnique(new WaitingHandle); |
| 336 } | 336 } |
| 337 | 337 |
| 338 } // namespace blink | 338 } // namespace blink |
| OLD | NEW |