Index: webkit/glue/webthread_impl.h |
diff --git a/webkit/glue/webthread_impl.h b/webkit/glue/webthread_impl.h |
index 2112536de872c0ae22a5cf24e024aa24b4968d0d..e39d6bf65afdd87608b46dd3922877092349741c 100644 |
--- a/webkit/glue/webthread_impl.h |
+++ b/webkit/glue/webthread_impl.h |
@@ -4,6 +4,8 @@ |
#ifndef WEBKIT_GLUE_WEBTHREAD_IMPL_H_ |
#define WEBKIT_GLUE_WEBTHREAD_IMPL_H_ |
+#include <map> |
+ |
#include "base/threading/thread.h" |
#include "base/memory/scoped_ptr.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebThread.h" |
@@ -11,9 +13,28 @@ |
namespace webkit_glue { |
-class WebThreadImpl : public WebKit::WebThread { |
+class WebThreadBase : public WebKit::WebThread { |
+ public: |
+ virtual ~WebThreadBase(); |
+ |
+ virtual void addTaskObserver(TaskObserver* observer); |
+ virtual void removeTaskObserver(TaskObserver* observer); |
+ |
+ protected: |
+ WebThreadBase(); |
+ |
+ private: |
+ class TaskObserverAdapter; |
+ |
+ virtual bool IsCurrentThread() const = 0; |
+ |
+ typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap; |
+ TaskObserverMap task_observer_map_; |
+}; |
+ |
+class WebThreadImpl : public WebThreadBase { |
public: |
- WEBKIT_GLUE_EXPORT WebThreadImpl(const char* name); |
+ WEBKIT_GLUE_EXPORT explicit WebThreadImpl(const char* name); |
WEBKIT_GLUE_EXPORT virtual ~WebThreadImpl(); |
virtual void postTask(Task* task) OVERRIDE; |
@@ -21,19 +42,21 @@ class WebThreadImpl : public WebKit::WebThread { |
MessageLoop* message_loop() const { return thread_->message_loop(); } |
- protected: |
+ private: |
+ virtual bool IsCurrentThread() const OVERRIDE; |
scoped_ptr<base::Thread> thread_; |
}; |
-class WebThreadImplForMessageLoop : public WebKit::WebThread { |
+class WebThreadImplForMessageLoop : public WebThreadBase { |
public: |
- WebThreadImplForMessageLoop(base::MessageLoopProxy* message_loop); |
+ explicit WebThreadImplForMessageLoop(base::MessageLoopProxy* message_loop); |
virtual ~WebThreadImplForMessageLoop(); |
virtual void postTask(Task* task) OVERRIDE; |
virtual void postDelayedTask(Task* task, long long delay_ms) OVERRIDE; |
- protected: |
+ private: |
+ virtual bool IsCurrentThread() const OVERRIDE; |
scoped_refptr<base::MessageLoopProxy> message_loop_; |
}; |