Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(752)

Side by Side Diff: third_party/WebKit/public/platform/scheduler/child/webthread_base.h

Issue 2810883002: [scheduler] Remove webthread_impl_for_worker_scheduler from public API. (Closed)
Patch Set: Add TODO to remove WebThreadBase from public API Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_ 5 #ifndef THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_
6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_ 6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 10
11 #include "base/threading/thread.h" 11 #include "base/threading/thread.h"
12 #include "public/platform/WebCommon.h" 12 #include "public/platform/WebCommon.h"
13 #include "public/platform/WebThread.h" 13 #include "public/platform/WebThread.h"
14 #include "public/platform/WebTraceLocation.h" 14 #include "public/platform/WebTraceLocation.h"
15 15
16 namespace blink { 16 namespace blink {
17 namespace scheduler { 17 namespace scheduler {
18 class SingleThreadIdleTaskRunner; 18 class SingleThreadIdleTaskRunner;
19 class TaskTimeObserver; 19 class TaskTimeObserver;
20 20
21 // TODO(scheduler-dev): Do not expose this class in Blink public API.
21 class BLINK_PLATFORM_EXPORT WebThreadBase : public WebThread { 22 class BLINK_PLATFORM_EXPORT WebThreadBase : public WebThread {
22 public: 23 public:
23 ~WebThreadBase() override; 24 ~WebThreadBase() override;
24 25
26 static std::unique_ptr<WebThreadBase> CreateWorkerThread(
27 const char* name,
28 base::Thread::Options options);
29 static std::unique_ptr<WebThreadBase> CreateCompositorThread(
30 base::Thread::Options options);
31
25 // WebThread implementation. 32 // WebThread implementation.
26 bool IsCurrentThread() const override; 33 bool IsCurrentThread() const override;
27 PlatformThreadId ThreadId() const override = 0; 34 PlatformThreadId ThreadId() const override = 0;
28 35
29 virtual void PostIdleTask(const WebTraceLocation& location, 36 virtual void PostIdleTask(const WebTraceLocation& location,
30 IdleTask* idle_task); 37 IdleTask* idle_task);
31 38
32 void AddTaskObserver(TaskObserver* observer) override; 39 void AddTaskObserver(TaskObserver* observer) override;
33 void RemoveTaskObserver(TaskObserver* observer) override; 40 void RemoveTaskObserver(TaskObserver* observer) override;
34 41
35 void AddTaskTimeObserver(TaskTimeObserver* task_time_observer) override; 42 void AddTaskTimeObserver(TaskTimeObserver* task_time_observer) override;
36 void RemoveTaskTimeObserver(TaskTimeObserver* task_time_observer) override; 43 void RemoveTaskTimeObserver(TaskTimeObserver* task_time_observer) override;
37 44
38 // Returns the base::Bind-compatible task runner for posting tasks to this 45 // Returns the base::Bind-compatible task runner for posting tasks to this
39 // thread. Can be called from any thread. 46 // thread. Can be called from any thread.
40 virtual base::SingleThreadTaskRunner* GetTaskRunner() const = 0; 47 virtual base::SingleThreadTaskRunner* GetTaskRunner() const = 0;
41 48
42 // Returns the base::Bind-compatible task runner for posting idle tasks to 49 // Returns the base::Bind-compatible task runner for posting idle tasks to
43 // this thread. Can be called from any thread. 50 // this thread. Can be called from any thread.
44 virtual scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const = 0; 51 virtual scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const = 0;
45 52
53 virtual void Init() = 0;
54
46 protected: 55 protected:
47 class TaskObserverAdapter; 56 class TaskObserverAdapter;
48 57
49 WebThreadBase(); 58 WebThreadBase();
50 59
51 virtual void AddTaskObserverInternal( 60 virtual void AddTaskObserverInternal(
52 base::MessageLoop::TaskObserver* observer); 61 base::MessageLoop::TaskObserver* observer);
53 virtual void RemoveTaskObserverInternal( 62 virtual void RemoveTaskObserverInternal(
54 base::MessageLoop::TaskObserver* observer); 63 base::MessageLoop::TaskObserver* observer);
55 64
56 virtual void AddTaskTimeObserverInternal(TaskTimeObserver*) {} 65 virtual void AddTaskTimeObserverInternal(TaskTimeObserver*) {}
57 virtual void RemoveTaskTimeObserverInternal(TaskTimeObserver*) {} 66 virtual void RemoveTaskTimeObserverInternal(TaskTimeObserver*) {}
58 67
59 static void RunWebThreadIdleTask( 68 static void RunWebThreadIdleTask(
60 std::unique_ptr<WebThread::IdleTask> idle_task, 69 std::unique_ptr<WebThread::IdleTask> idle_task,
61 base::TimeTicks deadline); 70 base::TimeTicks deadline);
62 71
63 private: 72 private:
64 typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap; 73 typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap;
65 TaskObserverMap task_observer_map_; 74 TaskObserverMap task_observer_map_;
66 }; 75 };
67 76
68 } // namespace scheduler 77 } // namespace scheduler
69 } // namespace blink 78 } // namespace blink
70 79
71 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_ 80 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698