Index: chrome/worker/worker_thread.cc |
=================================================================== |
--- chrome/worker/worker_thread.cc (revision 21215) |
+++ chrome/worker/worker_thread.cc (working copy) |
@@ -15,22 +15,37 @@ |
base::LINKER_INITIALIZED); |
-WorkerThread::WorkerThread() { |
+WorkerThread::WorkerThread() |
+ : ChildThread(base::Thread::Options(MessageLoop::TYPE_DEFAULT, |
+ kV8StackSize)) { |
+} |
+ |
+WorkerThread::~WorkerThread() { |
+} |
+ |
+WorkerThread* WorkerThread::current() { |
+ return lazy_tls.Pointer()->Get(); |
+} |
+ |
+void WorkerThread::Init() { |
lazy_tls.Pointer()->Set(this); |
+ ChildThread::Init(); |
webkit_client_.reset(new WorkerWebKitClientImpl); |
WebKit::initialize(webkit_client_.get()); |
} |
-WorkerThread::~WorkerThread() { |
+void WorkerThread::CleanUp() { |
// Shutdown in reverse of the initialization order. |
- WebKit::shutdown(); |
+ |
+ if (webkit_client_.get()) { |
+ WebKit::shutdown(); |
+ webkit_client_.reset(); |
+ } |
+ |
+ ChildThread::CleanUp(); |
lazy_tls.Pointer()->Set(NULL); |
} |
-WorkerThread* WorkerThread::current() { |
- return lazy_tls.Pointer()->Get(); |
-} |
- |
void WorkerThread::OnControlMessageReceived(const IPC::Message& msg) { |
IPC_BEGIN_MESSAGE_MAP(WorkerThread, msg) |
IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateWorker) |