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

Unified Diff: third_party/WebKit/Source/core/workers/WorkerThread.h

Issue 1733353004: Introduce WorkerBackingThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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: third_party/WebKit/Source/core/workers/WorkerThread.h
diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.h b/third_party/WebKit/Source/core/workers/WorkerThread.h
index 3282ee46c149a2a37e26f5bcdedec1a482e71959..b17fba2cfb8a041d7cd4ef20ace52dbea710a21e 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThread.h
+++ b/third_party/WebKit/Source/core/workers/WorkerThread.h
@@ -44,6 +44,7 @@
namespace blink {
class WaitableEvent;
+class WorkerBackingThread;
class WorkerGlobalScope;
class WorkerInspectorController;
class WorkerMicrotaskRunner;
@@ -64,16 +65,9 @@ public:
void start(PassOwnPtr<WorkerThreadStartupData>);
void terminate();
- // Returns the thread this worker runs on. Some implementations can create
- // a new thread on the first call (e.g. shared, dedicated workers), whereas
- // some implementations can use an existing thread that is already being
- // used by other workers (e.g. compositor workers).
- virtual WebThreadSupportingGC& backingThread() = 0;
-
- virtual void didStartWorkerThread();
- virtual void willStopWorkerThread();
-
- v8::Isolate* isolate() const { return m_isolate; }
+ WorkerBackingThread& workerBackingThread();
+ WebThreadSupportingGC& backingThread();
kinuko 2016/02/29 09:32:53 It feels unfortunate that we need to expose two ba
yhirano 2016/02/29 23:47:32 Done.
+ v8::Isolate* isolate() const;
// Can be used to wait for this worker thread to shut down.
// (This is signaled on the main thread, so it's assumed to be waited on
@@ -126,22 +120,13 @@ public:
void setWorkerInspectorController(WorkerInspectorController*);
protected:
- WorkerThread(PassRefPtr<WorkerLoaderProxy>, WorkerReportingProxy&);
+ WorkerThread(PassRefPtr<WorkerLoaderProxy>, WorkerReportingProxy&, PassRefPtr<WorkerBackingThread>);
// Factory method for creating a new worker context for the thread.
virtual PassRefPtrWillBeRawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) = 0;
virtual void postInitialize() { }
- // Both of these methods are called in the worker thread.
- virtual void initializeBackingThread();
- virtual void shutdownBackingThread();
-
- virtual v8::Isolate* initializeIsolate();
- virtual void willDestroyIsolate();
- virtual void destroyIsolate();
- virtual void terminateV8Execution();
-
private:
class DebuggerTaskQueue;
friend class WorkerMicrotaskRunner;
@@ -171,12 +156,12 @@ private:
RefPtrWillBePersistent<WorkerInspectorController> m_workerInspectorController;
Mutex m_workerInspectorControllerMutex;
- // This lock protects |m_workerGlobalScope|, |m_terminated|, |m_shutdown|, |m_isolate| and |m_microtaskRunner|.
+ // This lock protects |m_workerGlobalScope|, |m_terminated|, |m_shutdown| and |m_microtaskRunner|.
Mutex m_threadStateMutex;
RefPtrWillBePersistent<WorkerGlobalScope> m_workerGlobalScope;
- v8::Isolate* m_isolate;
+ RefPtr<WorkerBackingThread> m_workerBackingThread;
// Used to signal thread shutdown.
OwnPtr<WaitableEvent> m_shutdownEvent;

Powered by Google App Engine
This is Rietveld 408576698