| 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_;
|
| };
|
|
|
|
|