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

Unified Diff: Source/modules/fetch/DataConsumerTeeTest.cpp

Issue 1198443002: Fetch DataConsumerHandle test cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@tee
Patch Set: rebase Created 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/fetch/DataConsumerTeeTest.cpp
diff --git a/Source/modules/fetch/DataConsumerTeeTest.cpp b/Source/modules/fetch/DataConsumerTeeTest.cpp
index c8208cc001f5e6a43dd7ce4c16c815fd54823e60..0128799c26806e66b0f5a6654068914411eba706 100644
--- a/Source/modules/fetch/DataConsumerTeeTest.cpp
+++ b/Source/modules/fetch/DataConsumerTeeTest.cpp
@@ -5,10 +5,9 @@
#include "config.h"
#include "modules/fetch/DataConsumerTee.h"
-#include "bindings/core/v8/ScriptState.h"
#include "core/testing/DummyPageHolder.h"
#include "core/testing/NullExecutionContext.h"
-#include "gin/public/isolate_holder.h"
+#include "modules/fetch/DataConsumerHandleTestUtil.h"
#include "platform/Task.h"
#include "platform/ThreadSafeFunctional.h"
#include "platform/WebThreadSupportingGC.h"
@@ -31,6 +30,7 @@ namespace blink {
namespace {
using Result = WebDataConsumerHandle::Result;
+using Thread = DataConsumerHandleTestUtil::Thread;
const WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::FlagNone;
const Result kOk = WebDataConsumerHandle::Ok;
const Result kShouldWait = WebDataConsumerHandle::ShouldWait;
@@ -268,57 +268,6 @@ private:
RefPtr<Context> m_context;
};
-class TestingThread final {
-public:
- explicit TestingThread(const char* name)
- : m_thread(WebThreadSupportingGC::create(name))
- , m_waitableEvent(adoptPtr(Platform::current()->createWaitableEvent()))
- {
- m_thread->postTask(FROM_HERE, new Task(threadSafeBind(&TestingThread::initialize, AllowCrossThreadAccess(this))));
- m_waitableEvent->wait();
- }
-
- ~TestingThread()
- {
- m_thread->postTask(FROM_HERE, new Task(threadSafeBind(&TestingThread::shutdown, AllowCrossThreadAccess(this))));
- m_waitableEvent->wait();
- }
-
- WebThreadSupportingGC* thread() { return m_thread.get(); }
- ExecutionContext* executionContext() { return m_executionContext.get(); }
- ScriptState* scriptState() { return m_scriptState.get(); }
- v8::Isolate* isolate() { return m_isolateHolder->isolate(); }
-
-private:
- void initialize()
- {
- m_isolateHolder = adoptPtr(new gin::IsolateHolder());
- m_thread->initialize();
- isolate()->Enter();
- v8::HandleScope handleScope(isolate());
- v8::Local<v8::Context> context = v8::Context::New(isolate());
- m_scriptState = ScriptState::create(context, DOMWrapperWorld::create(isolate()));
- m_executionContext = adoptRefWillBeNoop(new NullExecutionContext());
- m_waitableEvent->signal();
- }
-
- void shutdown()
- {
- m_executionContext = nullptr;
- m_scriptState = nullptr;
- isolate()->Exit();
- m_thread->shutdown();
- m_isolateHolder = nullptr;
- m_waitableEvent->signal();
- }
-
- OwnPtr<WebThreadSupportingGC> m_thread;
- OwnPtr<WebWaitableEvent> m_waitableEvent;
- RefPtrWillBePersistent<NullExecutionContext> m_executionContext;
- OwnPtr<gin::IsolateHolder> m_isolateHolder;
- RefPtr<ScriptState> m_scriptState;
-};
-
class HandleReader : public WebDataConsumerHandle::Client {
public:
HandleReader() : m_finalResult(kOk) { }
@@ -326,7 +275,7 @@ public:
// Need to wait for the event signal after this function is called.
void start(PassOwnPtr<WebDataConsumerHandle> handle)
{
- m_thread = adoptPtr(new TestingThread("reading thread"));
+ m_thread = adoptPtr(new Thread("reading thread"));
m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
m_thread->thread()->postTask(FROM_HERE, new Task(threadSafeBind(&HandleReader::obtainReader, AllowCrossThreadAccess(this), handle)));
}
@@ -361,7 +310,7 @@ private:
m_reader = handle->obtainReader(this);
}
- OwnPtr<TestingThread> m_thread;
+ OwnPtr<Thread> m_thread;
OwnPtr<WebDataConsumerHandle::Reader> m_reader;
String m_readString;
Result m_finalResult;
@@ -375,7 +324,7 @@ public:
// Need to wait for the event signal after this function is called.
void start(PassOwnPtr<WebDataConsumerHandle> handle)
{
- m_thread = adoptPtr(new TestingThread("reading thread"));
+ m_thread = adoptPtr(new Thread("reading thread"));
m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
m_thread->thread()->postTask(FROM_HERE, new Task(threadSafeBind(&HandleTwoPhaseReader::obtainReader, AllowCrossThreadAccess(this), handle)));
}
@@ -413,7 +362,7 @@ private:
m_reader = handle->obtainReader(this);
}
- OwnPtr<TestingThread> m_thread;
+ OwnPtr<Thread> m_thread;
OwnPtr<WebDataConsumerHandle::Reader> m_reader;
String m_readString;
Result m_finalResult;
@@ -424,13 +373,13 @@ class TeeCreationThread {
public:
void run(PassOwnPtr<WebDataConsumerHandle> src, OwnPtr<WebDataConsumerHandle>* dest1, OwnPtr<WebDataConsumerHandle>* dest2)
{
- m_thread = adoptPtr(new TestingThread("src thread"));
+ m_thread = adoptPtr(new Thread("src thread", Thread::WithExecutionContext));
m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
m_thread->thread()->postTask(FROM_HERE, new Task(threadSafeBind(&TeeCreationThread::runInternal, AllowCrossThreadAccess(this), src, AllowCrossThreadAccess(dest1), AllowCrossThreadAccess(dest2))));
m_waitableEvent->wait();
}
- TestingThread* thread() { return m_thread.get(); }
+ Thread* thread() { return m_thread.get(); }
private:
void runInternal(PassOwnPtr<WebDataConsumerHandle> src, OwnPtr<WebDataConsumerHandle>* dest1, OwnPtr<WebDataConsumerHandle>* dest2)
@@ -439,7 +388,7 @@ private:
m_waitableEvent->signal();
}
- OwnPtr<TestingThread> m_thread;
+ OwnPtr<Thread> m_thread;
OwnPtr<WebWaitableEvent> m_waitableEvent;
};
@@ -563,7 +512,7 @@ TEST(DataConsumerTeeTest, Error)
EXPECT_EQ(kUnexpectedError, r2.finalResult());
}
-void postStop(TestingThread* thread)
+void postStop(Thread* thread)
{
thread->executionContext()->stopActiveDOMObjects();
}

Powered by Google App Engine
This is Rietveld 408576698