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 WebDatabaseObserverImpl
;
19 class WebSharedWorkerStub
;
20 class WorkerWebKitPlatformSupportImpl
;
22 class WorkerThread
: public ChildThread
{
25 virtual ~WorkerThread();
26 virtual void Shutdown() OVERRIDE
;
28 // Returns the one worker thread.
29 static WorkerThread
* current();
31 // Invoked from stub constructors/destructors. Stubs own themselves.
32 void AddWorkerStub(WebSharedWorkerStub
* stub
);
33 void RemoveWorkerStub(WebSharedWorkerStub
* stub
);
35 AppCacheDispatcher
* appcache_dispatcher() {
36 return appcache_dispatcher_
.get();
40 virtual bool OnControlMessageReceived(const IPC::Message
& msg
) OVERRIDE
;
41 virtual void OnChannelError() OVERRIDE
;
43 void OnCreateWorker(const WorkerProcessMsg_CreateWorker_Params
& params
);
45 scoped_ptr
<WorkerWebKitPlatformSupportImpl
> webkit_platform_support_
;
46 scoped_ptr
<AppCacheDispatcher
> appcache_dispatcher_
;
47 scoped_ptr
<WebDatabaseObserverImpl
> web_database_observer_impl_
;
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_