1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_WORKER_WORKER_THREAD_H_
6 #define CONTENT_WORKER_WORKER_THREAD_H_
10 #include "content/child/child_thread.h"
12 struct WorkerProcessMsg_CreateWorker_Params
;
15 class AppCacheDispatcher
;
16 class DBMessageFilter
;
17 class IndexedDBMessageFilter
;
18 class WebSharedWorkerStub
;
19 class WorkerWebKitPlatformSupportImpl
;
21 class WorkerThread
: public ChildThread
{
24 virtual ~WorkerThread();
25 virtual void Shutdown() OVERRIDE
;
27 // Returns the one worker thread.
28 static WorkerThread
* current();
30 // Invoked from stub constructors/destructors. Stubs own themselves.
31 void AddWorkerStub(WebSharedWorkerStub
* stub
);
32 void RemoveWorkerStub(WebSharedWorkerStub
* stub
);
34 AppCacheDispatcher
* appcache_dispatcher() {
35 return appcache_dispatcher_
.get();
39 virtual bool OnControlMessageReceived(const IPC::Message
& msg
) OVERRIDE
;
40 virtual void OnChannelError() OVERRIDE
;
41 virtual bool OnMessageReceived(const IPC::Message
& msg
) OVERRIDE
;
43 void OnCreateWorker(const WorkerProcessMsg_CreateWorker_Params
& params
);
46 scoped_ptr
<WorkerWebKitPlatformSupportImpl
> webkit_platform_support_
;
47 scoped_ptr
<AppCacheDispatcher
> appcache_dispatcher_
;
48 scoped_refptr
<DBMessageFilter
> db_message_filter_
;
49 scoped_refptr
<IndexedDBMessageFilter
> indexed_db_message_filter_
;
51 typedef std::set
<WebSharedWorkerStub
*> WorkerStubsList
;
52 WorkerStubsList worker_stubs_
;
54 DISALLOW_COPY_AND_ASSIGN(WorkerThread
);
57 } // namespace content
59 #endif // CONTENT_WORKER_WORKER_THREAD_H_