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

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

Issue 2547053003: s/ passed(...) / WTF::passed(...) / to avoid future ambiguity w/ base::Passed. (Closed)
Patch Set: Rebasing... Created 4 years 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"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 ThreadHolder* m_holder; 155 ThreadHolder* m_holder;
156 }; 156 };
157 157
158 // The reading/updating threads are alive while ThreadHolder is alive. 158 // The reading/updating threads are alive while ThreadHolder is alive.
159 class ThreadHolder { 159 class ThreadHolder {
160 DISALLOW_NEW(); 160 DISALLOW_NEW();
161 161
162 public: 162 public:
163 ThreadHolder(ThreadingTestBase* test) 163 ThreadHolder(ThreadingTestBase* test)
164 : m_context(test->m_context), 164 : m_context(test->m_context),
165 m_readingThread(wrapUnique(new Thread("reading thread"))), 165 m_readingThread(WTF::wrapUnique(new Thread("reading thread"))),
166 m_updatingThread(wrapUnique(new Thread("updating thread"))) { 166 m_updatingThread(WTF::wrapUnique(new Thread("updating thread"))) {
167 m_context->registerThreadHolder(this); 167 m_context->registerThreadHolder(this);
168 } 168 }
169 ~ThreadHolder() { m_context->unregisterThreadHolder(); } 169 ~ThreadHolder() { m_context->unregisterThreadHolder(); }
170 170
171 WebThreadSupportingGC* readingThread() { 171 WebThreadSupportingGC* readingThread() {
172 return m_readingThread->thread(); 172 return m_readingThread->thread();
173 } 173 }
174 WebThreadSupportingGC* updatingThread() { 174 WebThreadSupportingGC* updatingThread() {
175 return m_updatingThread->thread(); 175 return m_updatingThread->thread();
176 } 176 }
(...skipping 27 matching lines...) Expand all
204 const String m_name; 204 const String m_name;
205 RefPtr<Context> m_context; 205 RefPtr<Context> m_context;
206 }; 206 };
207 class DataConsumerHandle final : public WebDataConsumerHandle { 207 class DataConsumerHandle final : public WebDataConsumerHandle {
208 USING_FAST_MALLOC(DataConsumerHandle); 208 USING_FAST_MALLOC(DataConsumerHandle);
209 209
210 public: 210 public:
211 static std::unique_ptr<WebDataConsumerHandle> create( 211 static std::unique_ptr<WebDataConsumerHandle> create(
212 const String& name, 212 const String& name,
213 PassRefPtr<Context> context) { 213 PassRefPtr<Context> context) {
214 return wrapUnique(new DataConsumerHandle(name, std::move(context))); 214 return WTF::wrapUnique(
215 new DataConsumerHandle(name, std::move(context)));
215 } 216 }
216 217
217 private: 218 private:
218 DataConsumerHandle(const String& name, PassRefPtr<Context> context) 219 DataConsumerHandle(const String& name, PassRefPtr<Context> context)
219 : m_name(name.isolatedCopy()), m_context(context) {} 220 : m_name(name.isolatedCopy()), m_context(context) {}
220 221
221 std::unique_ptr<Reader> obtainReader(Client*) { 222 std::unique_ptr<Reader> obtainReader(Client*) {
222 return makeUnique<ReaderImpl>(m_name, m_context); 223 return WTF::makeUnique<ReaderImpl>(m_name, m_context);
223 } 224 }
224 const char* debugName() const override { 225 const char* debugName() const override {
225 return "ThreadingTestBase::DataConsumerHandle"; 226 return "ThreadingTestBase::DataConsumerHandle";
226 } 227 }
227 228
228 const String m_name; 229 const String m_name;
229 RefPtr<Context> m_context; 230 RefPtr<Context> m_context;
230 }; 231 };
231 232
232 void resetReader() { m_reader = nullptr; } 233 void resetReader() { m_reader = nullptr; }
(...skipping 30 matching lines...) Expand all
263 }; 264 };
264 265
265 class ThreadingHandleNotificationTest : public ThreadingTestBase, 266 class ThreadingHandleNotificationTest : public ThreadingTestBase,
266 public WebDataConsumerHandle::Client { 267 public WebDataConsumerHandle::Client {
267 public: 268 public:
268 using Self = ThreadingHandleNotificationTest; 269 using Self = ThreadingHandleNotificationTest;
269 static PassRefPtr<Self> create() { return adoptRef(new Self); } 270 static PassRefPtr<Self> create() { return adoptRef(new Self); }
270 271
271 void run(std::unique_ptr<WebDataConsumerHandle> handle) { 272 void run(std::unique_ptr<WebDataConsumerHandle> handle) {
272 ThreadHolder holder(this); 273 ThreadHolder holder(this);
273 m_waitableEvent = makeUnique<WaitableEvent>(); 274 m_waitableEvent = WTF::makeUnique<WaitableEvent>();
274 m_handle = std::move(handle); 275 m_handle = std::move(handle);
275 276
276 postTaskToReadingThreadAndWait( 277 postTaskToReadingThreadAndWait(
277 BLINK_FROM_HERE, 278 BLINK_FROM_HERE,
278 crossThreadBind(&Self::obtainReader, wrapPassRefPtr(this))); 279 crossThreadBind(&Self::obtainReader, wrapPassRefPtr(this)));
279 } 280 }
280 281
281 private: 282 private:
282 ThreadingHandleNotificationTest() = default; 283 ThreadingHandleNotificationTest() = default;
283 void obtainReader() { m_reader = m_handle->obtainReader(this); } 284 void obtainReader() { m_reader = m_handle->obtainReader(this); }
(...skipping 11 matching lines...) Expand all
295 296
296 class ThreadingHandleNoNotificationTest 297 class ThreadingHandleNoNotificationTest
297 : public ThreadingTestBase, 298 : public ThreadingTestBase,
298 public WebDataConsumerHandle::Client { 299 public WebDataConsumerHandle::Client {
299 public: 300 public:
300 using Self = ThreadingHandleNoNotificationTest; 301 using Self = ThreadingHandleNoNotificationTest;
301 static PassRefPtr<Self> create() { return adoptRef(new Self); } 302 static PassRefPtr<Self> create() { return adoptRef(new Self); }
302 303
303 void run(std::unique_ptr<WebDataConsumerHandle> handle) { 304 void run(std::unique_ptr<WebDataConsumerHandle> handle) {
304 ThreadHolder holder(this); 305 ThreadHolder holder(this);
305 m_waitableEvent = makeUnique<WaitableEvent>(); 306 m_waitableEvent = WTF::makeUnique<WaitableEvent>();
306 m_handle = std::move(handle); 307 m_handle = std::move(handle);
307 308
308 postTaskToReadingThreadAndWait( 309 postTaskToReadingThreadAndWait(
309 BLINK_FROM_HERE, 310 BLINK_FROM_HERE,
310 crossThreadBind(&Self::obtainReader, wrapPassRefPtr(this))); 311 crossThreadBind(&Self::obtainReader, wrapPassRefPtr(this)));
311 } 312 }
312 313
313 private: 314 private:
314 ThreadingHandleNoNotificationTest() = default; 315 ThreadingHandleNoNotificationTest() = default;
315 void obtainReader() { 316 void obtainReader() {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 Vector<char> m_body; 350 Vector<char> m_body;
350 }; 351 };
351 352
352 // ReplayingHandle stores commands via |add| and replays the stored commends 353 // ReplayingHandle stores commands via |add| and replays the stored commends
353 // when read. 354 // when read.
354 class ReplayingHandle final : public WebDataConsumerHandle { 355 class ReplayingHandle final : public WebDataConsumerHandle {
355 USING_FAST_MALLOC(ReplayingHandle); 356 USING_FAST_MALLOC(ReplayingHandle);
356 357
357 public: 358 public:
358 static std::unique_ptr<ReplayingHandle> create() { 359 static std::unique_ptr<ReplayingHandle> create() {
359 return wrapUnique(new ReplayingHandle()); 360 return WTF::wrapUnique(new ReplayingHandle());
360 } 361 }
361 ~ReplayingHandle(); 362 ~ReplayingHandle();
362 363
363 // Add a command to this handle. This function must be called on the 364 // Add a command to this handle. This function must be called on the
364 // creator thread. This function must be called BEFORE any reader is 365 // creator thread. This function must be called BEFORE any reader is
365 // obtained. 366 // obtained.
366 void add(const Command&); 367 void add(const Command&);
367 368
368 class Context final : public ThreadSafeRefCounted<Context> { 369 class Context final : public ThreadSafeRefCounted<Context> {
369 public: 370 public:
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 }; 469 };
469 470
470 // HandleReaderRunner<T> creates a dedicated thread and run T on the thread 471 // HandleReaderRunner<T> creates a dedicated thread and run T on the thread
471 // where T is one of HandleReader and HandleTwophaseReader. 472 // where T is one of HandleReader and HandleTwophaseReader.
472 template <typename T> 473 template <typename T>
473 class HandleReaderRunner final { 474 class HandleReaderRunner final {
474 STACK_ALLOCATED(); 475 STACK_ALLOCATED();
475 476
476 public: 477 public:
477 explicit HandleReaderRunner(std::unique_ptr<WebDataConsumerHandle> handle) 478 explicit HandleReaderRunner(std::unique_ptr<WebDataConsumerHandle> handle)
478 : m_thread(wrapUnique(new Thread("reading thread"))), 479 : m_thread(WTF::wrapUnique(new Thread("reading thread"))),
479 m_event(makeUnique<WaitableEvent>()), 480 m_event(WTF::makeUnique<WaitableEvent>()),
480 m_isDone(false) { 481 m_isDone(false) {
481 m_thread->thread()->postTask(BLINK_FROM_HERE, 482 m_thread->thread()->postTask(
482 crossThreadBind(&HandleReaderRunner::start, 483 BLINK_FROM_HERE, crossThreadBind(&HandleReaderRunner::start,
483 crossThreadUnretained(this), 484 crossThreadUnretained(this),
484 passed(std::move(handle)))); 485 WTF::passed(std::move(handle))));
485 } 486 }
486 ~HandleReaderRunner() { wait(); } 487 ~HandleReaderRunner() { wait(); }
487 488
488 std::unique_ptr<HandleReadResult> wait() { 489 std::unique_ptr<HandleReadResult> wait() {
489 if (m_isDone) 490 if (m_isDone)
490 return nullptr; 491 return nullptr;
491 m_event->wait(); 492 m_event->wait();
492 m_isDone = true; 493 m_isDone = true;
493 return std::move(m_result); 494 return std::move(m_result);
494 } 495 }
495 496
496 private: 497 private:
497 void start(std::unique_ptr<WebDataConsumerHandle> handle) { 498 void start(std::unique_ptr<WebDataConsumerHandle> handle) {
498 m_handleReader = wrapUnique(new T( 499 m_handleReader = WTF::wrapUnique(new T(
499 std::move(handle), 500 std::move(handle),
500 WTF::bind(&HandleReaderRunner::onFinished, WTF::unretained(this)))); 501 WTF::bind(&HandleReaderRunner::onFinished, WTF::unretained(this))));
501 } 502 }
502 503
503 void onFinished(std::unique_ptr<HandleReadResult> result) { 504 void onFinished(std::unique_ptr<HandleReadResult> result) {
504 m_handleReader = nullptr; 505 m_handleReader = nullptr;
505 m_result = std::move(result); 506 m_result = std::move(result);
506 m_event->signal(); 507 m_event->signal();
507 } 508 }
508 509
509 std::unique_ptr<Thread> m_thread; 510 std::unique_ptr<Thread> m_thread;
510 std::unique_ptr<WaitableEvent> m_event; 511 std::unique_ptr<WaitableEvent> m_event;
511 std::unique_ptr<HandleReadResult> m_result; 512 std::unique_ptr<HandleReadResult> m_result;
512 bool m_isDone; 513 bool m_isDone;
513 514
514 std::unique_ptr<T> m_handleReader; 515 std::unique_ptr<T> m_handleReader;
515 }; 516 };
516 517
517 static std::unique_ptr<WebDataConsumerHandle> 518 static std::unique_ptr<WebDataConsumerHandle>
518 createWaitingDataConsumerHandle(); 519 createWaitingDataConsumerHandle();
519 }; 520 };
520 521
521 } // namespace blink 522 } // namespace blink
522 523
523 #endif // DataConsumerHandleTestUtil_h 524 #endif // DataConsumerHandleTestUtil_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698