| Index: webkit/glue/webthread_impl.h
|
| diff --git a/webkit/glue/webthread_impl.h b/webkit/glue/webthread_impl.h
|
| index 842c8c6b0fdcfbaad01ea6694269c4e9b7d58e01..42fb08719540a482f9ec9f5bd48b0c63982d25ad 100644
|
| --- a/webkit/glue/webthread_impl.h
|
| +++ b/webkit/glue/webthread_impl.h
|
| @@ -4,15 +4,31 @@
|
| #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/WebThread.h"
|
|
|
| namespace webkit_glue {
|
|
|
| -class WebThreadImpl : public WebKit::WebThread {
|
| +class WebThreadBase : public WebKit::WebThread {
|
| public:
|
| - WebThreadImpl(const char* name);
|
| + virtual void addTaskObserver(TaskObserver* observer);
|
| + virtual void removeTaskObserver(TaskObserver* observer);
|
| +
|
| + protected:
|
| + virtual bool IsCurrentThread() const = 0;
|
| +
|
| + private:
|
| + class TaskObserverAdapter;
|
| + typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap;
|
| + TaskObserverMap task_observer_map_;
|
| +};
|
| +
|
| +class WebThreadImpl : public WebThreadBase {
|
| + public:
|
| + explicit WebThreadImpl(const char* name);
|
| virtual ~WebThreadImpl();
|
|
|
| virtual void postTask(Task* task) OVERRIDE;
|
| @@ -21,18 +37,24 @@ class WebThreadImpl : public WebKit::WebThread {
|
| MessageLoop* message_loop() const { return thread_->message_loop(); }
|
|
|
| protected:
|
| + virtual bool IsCurrentThread() const;
|
| +
|
| + private:
|
| 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:
|
| + virtual bool IsCurrentThread() const;
|
| +
|
| + private:
|
| scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| };
|
|
|
|
|