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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/DataConsumerHandleTestUtil.h

Issue 2104913002: Rename threadSafeBind() to crossThreadBind() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@TRV_CTCPointer
Patch Set: Rebase Created 4 years, 5 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 #ifndef DataConsumerHandleTestUtil_h 5 #ifndef DataConsumerHandleTestUtil_h
6 #define DataConsumerHandleTestUtil_h 6 #define DataConsumerHandleTestUtil_h
7 7
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "core/testing/NullExecutionContext.h" 9 #include "core/testing/NullExecutionContext.h"
10 #include "gin/public/isolate_holder.h" 10 #include "gin/public/isolate_holder.h"
11 #include "modules/fetch/DataConsumerHandleUtil.h" 11 #include "modules/fetch/DataConsumerHandleUtil.h"
12 #include "modules/fetch/FetchDataConsumerHandle.h" 12 #include "modules/fetch/FetchDataConsumerHandle.h"
13 #include "modules/fetch/FetchDataLoader.h" 13 #include "modules/fetch/FetchDataLoader.h"
14 #include "platform/ThreadSafeFunctional.h" 14 #include "platform/CrossThreadFunctional.h"
15 #include "platform/WaitableEvent.h" 15 #include "platform/WaitableEvent.h"
16 #include "platform/WebThreadSupportingGC.h" 16 #include "platform/WebThreadSupportingGC.h"
17 #include "platform/heap/Handle.h" 17 #include "platform/heap/Handle.h"
18 #include "public/platform/Platform.h" 18 #include "public/platform/Platform.h"
19 #include "public/platform/WebDataConsumerHandle.h" 19 #include "public/platform/WebDataConsumerHandle.h"
20 #include "public/platform/WebTraceLocation.h" 20 #include "public/platform/WebTraceLocation.h"
21 #include "wtf/Deque.h" 21 #include "wtf/Deque.h"
22 #include "wtf/Locker.h" 22 #include "wtf/Locker.h"
23 #include "wtf/PtrUtil.h" 23 #include "wtf/PtrUtil.h"
24 #include "wtf/ThreadSafeRefCounted.h" 24 #include "wtf/ThreadSafeRefCounted.h"
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 public: 249 public:
250 using Self = ThreadingHandleNotificationTest; 250 using Self = ThreadingHandleNotificationTest;
251 static PassRefPtr<Self> create() { return adoptRef(new Self); } 251 static PassRefPtr<Self> create() { return adoptRef(new Self); }
252 252
253 void run(std::unique_ptr<WebDataConsumerHandle> handle) 253 void run(std::unique_ptr<WebDataConsumerHandle> handle)
254 { 254 {
255 ThreadHolder holder(this); 255 ThreadHolder holder(this);
256 m_waitableEvent = wrapUnique(new WaitableEvent()); 256 m_waitableEvent = wrapUnique(new WaitableEvent());
257 m_handle = std::move(handle); 257 m_handle = std::move(handle);
258 258
259 postTaskToReadingThreadAndWait(BLINK_FROM_HERE, threadSafeBind(&Self ::obtainReader, wrapPassRefPtr(this))); 259 postTaskToReadingThreadAndWait(BLINK_FROM_HERE, crossThreadBind(&Sel f::obtainReader, wrapPassRefPtr(this)));
260 } 260 }
261 261
262 private: 262 private:
263 ThreadingHandleNotificationTest() = default; 263 ThreadingHandleNotificationTest() = default;
264 void obtainReader() 264 void obtainReader()
265 { 265 {
266 m_reader = m_handle->obtainReader(this); 266 m_reader = m_handle->obtainReader(this);
267 } 267 }
268 void didGetReadable() override 268 void didGetReadable() override
269 { 269 {
270 postTaskToReadingThread(BLINK_FROM_HERE, threadSafeBind(&Self::reset Reader, wrapPassRefPtr(this))); 270 postTaskToReadingThread(BLINK_FROM_HERE, crossThreadBind(&Self::rese tReader, wrapPassRefPtr(this)));
271 postTaskToReadingThread(BLINK_FROM_HERE, threadSafeBind(&Self::signa lDone, wrapPassRefPtr(this))); 271 postTaskToReadingThread(BLINK_FROM_HERE, crossThreadBind(&Self::sign alDone, wrapPassRefPtr(this)));
272 } 272 }
273 273
274 std::unique_ptr<WebDataConsumerHandle> m_handle; 274 std::unique_ptr<WebDataConsumerHandle> m_handle;
275 }; 275 };
276 276
277 class ThreadingHandleNoNotificationTest : public ThreadingTestBase, public W ebDataConsumerHandle::Client { 277 class ThreadingHandleNoNotificationTest : public ThreadingTestBase, public W ebDataConsumerHandle::Client {
278 public: 278 public:
279 using Self = ThreadingHandleNoNotificationTest; 279 using Self = ThreadingHandleNoNotificationTest;
280 static PassRefPtr<Self> create() { return adoptRef(new Self); } 280 static PassRefPtr<Self> create() { return adoptRef(new Self); }
281 281
282 void run(std::unique_ptr<WebDataConsumerHandle> handle) 282 void run(std::unique_ptr<WebDataConsumerHandle> handle)
283 { 283 {
284 ThreadHolder holder(this); 284 ThreadHolder holder(this);
285 m_waitableEvent = wrapUnique(new WaitableEvent()); 285 m_waitableEvent = wrapUnique(new WaitableEvent());
286 m_handle = std::move(handle); 286 m_handle = std::move(handle);
287 287
288 postTaskToReadingThreadAndWait(BLINK_FROM_HERE, threadSafeBind(&Self ::obtainReader, wrapPassRefPtr(this))); 288 postTaskToReadingThreadAndWait(BLINK_FROM_HERE, crossThreadBind(&Sel f::obtainReader, wrapPassRefPtr(this)));
289 } 289 }
290 290
291 private: 291 private:
292 ThreadingHandleNoNotificationTest() = default; 292 ThreadingHandleNoNotificationTest() = default;
293 void obtainReader() 293 void obtainReader()
294 { 294 {
295 m_reader = m_handle->obtainReader(this); 295 m_reader = m_handle->obtainReader(this);
296 m_reader = nullptr; 296 m_reader = nullptr;
297 postTaskToReadingThread(BLINK_FROM_HERE, threadSafeBind(&Self::signa lDone, wrapPassRefPtr(this))); 297 postTaskToReadingThread(BLINK_FROM_HERE, crossThreadBind(&Self::sign alDone, wrapPassRefPtr(this)));
298 } 298 }
299 void didGetReadable() override 299 void didGetReadable() override
300 { 300 {
301 ASSERT_NOT_REACHED(); 301 ASSERT_NOT_REACHED();
302 } 302 }
303 303
304 std::unique_ptr<WebDataConsumerHandle> m_handle; 304 std::unique_ptr<WebDataConsumerHandle> m_handle;
305 }; 305 };
306 306
307 class MockFetchDataConsumerHandle : public FetchDataConsumerHandle { 307 class MockFetchDataConsumerHandle : public FetchDataConsumerHandle {
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 // where T is one of HandleReader and HandleTwophaseReader. 492 // where T is one of HandleReader and HandleTwophaseReader.
493 template <typename T> 493 template <typename T>
494 class HandleReaderRunner final { 494 class HandleReaderRunner final {
495 STACK_ALLOCATED(); 495 STACK_ALLOCATED();
496 public: 496 public:
497 explicit HandleReaderRunner(std::unique_ptr<WebDataConsumerHandle> handl e) 497 explicit HandleReaderRunner(std::unique_ptr<WebDataConsumerHandle> handl e)
498 : m_thread(wrapUnique(new Thread("reading thread"))) 498 : m_thread(wrapUnique(new Thread("reading thread")))
499 , m_event(wrapUnique(new WaitableEvent())) 499 , m_event(wrapUnique(new WaitableEvent()))
500 , m_isDone(false) 500 , m_isDone(false)
501 { 501 {
502 m_thread->thread()->postTask(BLINK_FROM_HERE, threadSafeBind(&Handle ReaderRunner::start, crossThreadUnretained(this), passed(std::move(handle)))); 502 m_thread->thread()->postTask(BLINK_FROM_HERE, crossThreadBind(&Handl eReaderRunner::start, crossThreadUnretained(this), passed(std::move(handle))));
503 } 503 }
504 ~HandleReaderRunner() 504 ~HandleReaderRunner()
505 { 505 {
506 wait(); 506 wait();
507 } 507 }
508 508
509 std::unique_ptr<HandleReadResult> wait() 509 std::unique_ptr<HandleReadResult> wait()
510 { 510 {
511 if (m_isDone) 511 if (m_isDone)
512 return nullptr; 512 return nullptr;
(...skipping 20 matching lines...) Expand all
533 std::unique_ptr<HandleReadResult> m_result; 533 std::unique_ptr<HandleReadResult> m_result;
534 bool m_isDone; 534 bool m_isDone;
535 535
536 std::unique_ptr<T> m_handleReader; 536 std::unique_ptr<T> m_handleReader;
537 }; 537 };
538 }; 538 };
539 539
540 } // namespace blink 540 } // namespace blink
541 541
542 #endif // DataConsumerHandleTestUtil_h 542 #endif // DataConsumerHandleTestUtil_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698