Index: content/child/webthread_base.h |
diff --git a/content/child/webthread_impl.h b/content/child/webthread_base.h |
similarity index 71% |
rename from content/child/webthread_impl.h |
rename to content/child/webthread_base.h |
index c50295253b473215cd384aa1703920626365cf6f..5d6ebb9b0f05ff1855116f80870e2d8fda1ad696 100644 |
--- a/content/child/webthread_impl.h |
+++ b/content/child/webthread_base.h |
@@ -2,8 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_CHILD_WEBTHREAD_IMPL_H_ |
-#define CONTENT_CHILD_WEBTHREAD_IMPL_H_ |
+#ifndef CONTENT_CHILD_WEBTHREAD_BASE_H_ |
+#define CONTENT_CHILD_WEBTHREAD_BASE_H_ |
#include <map> |
@@ -17,6 +17,7 @@ class WebTraceLocation; |
} |
namespace content { |
+class SingleThreadIdleTaskRunner; |
class CONTENT_EXPORT WebThreadBase : public blink::WebThread { |
public: |
@@ -30,6 +31,10 @@ class CONTENT_EXPORT WebThreadBase : public blink::WebThread { |
virtual void postDelayedTask(const blink::WebTraceLocation& location, |
Task* task, |
long long delay_ms); |
+ virtual void postIdleTask(const blink::WebTraceLocation& location, |
+ IdleTask* idle_task); |
+ virtual void postIdleTaskAfterWakeup(const blink::WebTraceLocation& location, |
+ IdleTask* idle_task); |
virtual void enterRunLoop(); |
virtual void exitRunLoop(); |
@@ -41,6 +46,10 @@ class CONTENT_EXPORT WebThreadBase : public blink::WebThread { |
// thread. Can be called from any thread. |
virtual base::SingleThreadTaskRunner* TaskRunner() const = 0; |
+ // Returns the base::Bind-compatible task runner for posting idle tasks to |
+ // this thread. Can be called from any thread. |
+ virtual SingleThreadIdleTaskRunner* IdleTaskRunner() const = 0; |
+ |
protected: |
class TaskObserverAdapter; |
@@ -57,29 +66,15 @@ class CONTENT_EXPORT WebThreadBase : public blink::WebThread { |
base::MessageLoop::TaskObserver* observer); |
static void RunWebThreadTask(scoped_ptr<blink::WebThread::Task> task); |
+ static void RunWebThreadIdleTask( |
+ scoped_ptr<blink::WebThread::IdleTask> idle_task, |
+ base::TimeTicks deadline); |
private: |
typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap; |
TaskObserverMap task_observer_map_; |
}; |
-class CONTENT_EXPORT WebThreadImpl : public WebThreadBase { |
- public: |
- explicit WebThreadImpl(const char* name); |
- virtual ~WebThreadImpl(); |
- |
- // blink::WebThread implementation. |
- blink::PlatformThreadId threadId() const override; |
- |
- // WebThreadBase implementation. |
- base::SingleThreadTaskRunner* TaskRunner() const override; |
- |
- private: |
- base::MessageLoop* MessageLoop() const override; |
- |
- scoped_ptr<base::Thread> thread_; |
-}; |
- |
-} // namespace content |
+} // namespace content |
-#endif // CONTENT_CHILD_WEBTHREAD_IMPL_H_ |
+#endif // CONTENT_CHILD_WEBTHREAD_BASE_H_ |