Suppress leak caused by 107541 (chrome not calling SkGraphics::Term())
[chromium-blink-merge.git] / content / worker / worker_thread.h
blobfe1379b8fb853540b4b0c0bac0c5d97ff084dcd0
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_
8 #include <set>
10 #include "content/child/child_thread.h"
12 struct WorkerProcessMsg_CreateWorker_Params;
14 namespace content {
15 class AppCacheDispatcher;
16 class DBMessageFilter;
17 class IndexedDBMessageFilter;
18 class WebDatabaseObserverImpl;
19 class WebSharedWorkerStub;
20 class WorkerWebKitPlatformSupportImpl;
22 class WorkerThread : public ChildThread {
23 public:
24 WorkerThread();
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();
39 private:
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_