| Index: content/child/webthread_impl.h
|
| diff --git a/content/child/webthread_impl.h b/content/child/webthread_impl.h
|
| index 576e6a4a1065217b0a3b675d5e6295c846ffbe21..edd39566e81dc79fc13373c1e1bf2db87d521049 100644
|
| --- a/content/child/webthread_impl.h
|
| +++ b/content/child/webthread_impl.h
|
| @@ -22,17 +22,35 @@ class CONTENT_EXPORT WebThreadBase : public blink::WebThread {
|
| public:
|
| virtual ~WebThreadBase();
|
|
|
| + // blink::WebThread implementation.
|
| + virtual bool isCurrentThread() const;
|
| + virtual blink::PlatformThreadId threadId() const = 0;
|
| +
|
| + virtual void postTask(const blink::WebTraceLocation& location, Task* task);
|
| + virtual void postDelayedTask(const blink::WebTraceLocation& location,
|
| + Task* task,
|
| + long long delay_ms);
|
| +
|
| + virtual void enterRunLoop();
|
| + virtual void exitRunLoop();
|
| +
|
| virtual void addTaskObserver(TaskObserver* observer);
|
| virtual void removeTaskObserver(TaskObserver* observer);
|
|
|
| - virtual bool isCurrentThread() const = 0;
|
| - virtual blink::PlatformThreadId threadId() const = 0;
|
| + // Returns the base::Bind-compatible task runner for posting tasks to this
|
| + // thread. Can be called from any thread.
|
| + virtual base::SingleThreadTaskRunner* TaskRunner() const = 0;
|
|
|
| protected:
|
| class TaskObserverAdapter;
|
|
|
| WebThreadBase();
|
|
|
| + // Returns the underlying MessageLoop for this thread. Only used for entering
|
| + // and exiting a nested run loop. Only called on the thread that the
|
| + // WebThread belongs to.
|
| + virtual base::MessageLoop* MessageLoop() const = 0;
|
| +
|
| virtual void AddTaskObserverInternal(
|
| base::MessageLoop::TaskObserver* observer);
|
| virtual void RemoveTaskObserverInternal(
|
| @@ -50,24 +68,15 @@ class CONTENT_EXPORT WebThreadImpl : public WebThreadBase {
|
| explicit WebThreadImpl(const char* name);
|
| virtual ~WebThreadImpl();
|
|
|
| - virtual void postTask(const blink::WebTraceLocation& location, Task* task);
|
| - virtual void postDelayedTask(const blink::WebTraceLocation& location,
|
| - Task* task,
|
| - long long delay_ms);
|
| -
|
| - // TODO(skyostil): Remove once blink has migrated.
|
| - virtual void postTask(Task* task);
|
| - virtual void postDelayedTask(Task* task, long long delay_ms);
|
| -
|
| - virtual void enterRunLoop();
|
| - virtual void exitRunLoop();
|
| -
|
| - base::MessageLoop* message_loop() const { return thread_->message_loop(); }
|
| + // blink::WebThread implementation.
|
| + blink::PlatformThreadId threadId() const override;
|
|
|
| - virtual bool isCurrentThread() const override;
|
| - virtual blink::PlatformThreadId threadId() const override;
|
| + // WebThreadBase implementation.
|
| + base::SingleThreadTaskRunner* TaskRunner() const override;
|
|
|
| private:
|
| + base::MessageLoop* MessageLoop() const override;
|
| +
|
| scoped_ptr<base::Thread> thread_;
|
| };
|
|
|
| @@ -77,21 +86,14 @@ class WebThreadImplForMessageLoop : public WebThreadBase {
|
| scoped_refptr<base::SingleThreadTaskRunner> owning_thread_task_runner);
|
| CONTENT_EXPORT virtual ~WebThreadImplForMessageLoop();
|
|
|
| - virtual void postTask(const blink::WebTraceLocation& location, Task* task);
|
| - virtual void postDelayedTask(const blink::WebTraceLocation& location,
|
| - Task* task,
|
| - long long delay_ms);
|
| -
|
| - // TODO(skyostil): Remove once blink has migrated.
|
| - virtual void postTask(Task* task);
|
| - virtual void postDelayedTask(Task* task, long long delay_ms);
|
| + // blink::WebThread implementation.
|
| + blink::PlatformThreadId threadId() const override;
|
|
|
| - virtual void enterRunLoop() override;
|
| - virtual void exitRunLoop() override;
|
| + // WebThreadBase implementation.
|
| + base::MessageLoop* MessageLoop() const override;
|
|
|
| private:
|
| - virtual bool isCurrentThread() const override;
|
| - virtual blink::PlatformThreadId threadId() const override;
|
| + base::SingleThreadTaskRunner* TaskRunner() const override;
|
|
|
| scoped_refptr<base::SingleThreadTaskRunner> owning_thread_task_runner_;
|
| blink::PlatformThreadId thread_id_;
|
|
|