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

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: 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 class BLINK_PLATFORM_EXPORT WebThreadBase : public WebThread { 21 class BLINK_PLATFORM_EXPORT WebThreadBase : public WebThread {
22 public: 22 public:
23 ~WebThreadBase() override; 23 ~WebThreadBase() override;
24 24
25 static std::unique_ptr<WebThreadBase> CreateWorkerThread(
Sami 2017/04/11 10:03:10 Could we put these in WebThread instead and make W
altimin 2017/04/11 10:44:35 There's a problem with WebThreadBase::Init method.
Sami 2017/04/11 11:46:28 I don't believe I was told anything I say can be u
26 const char* name,
27 base::Thread::Options options);
28 static std::unique_ptr<WebThreadBase> CreateCompositorThread(
29 base::Thread::Options options);
30
25 // WebThread implementation. 31 // WebThread implementation.
26 bool IsCurrentThread() const override; 32 bool IsCurrentThread() const override;
27 PlatformThreadId ThreadId() const override = 0; 33 PlatformThreadId ThreadId() const override = 0;
28 34
29 virtual void PostIdleTask(const WebTraceLocation& location, 35 virtual void PostIdleTask(const WebTraceLocation& location,
30 IdleTask* idle_task); 36 IdleTask* idle_task);
31 37
32 void AddTaskObserver(TaskObserver* observer) override; 38 void AddTaskObserver(TaskObserver* observer) override;
33 void RemoveTaskObserver(TaskObserver* observer) override; 39 void RemoveTaskObserver(TaskObserver* observer) override;
34 40
35 void AddTaskTimeObserver(TaskTimeObserver* task_time_observer) override; 41 void AddTaskTimeObserver(TaskTimeObserver* task_time_observer) override;
36 void RemoveTaskTimeObserver(TaskTimeObserver* task_time_observer) override; 42 void RemoveTaskTimeObserver(TaskTimeObserver* task_time_observer) override;
37 43
38 // Returns the base::Bind-compatible task runner for posting tasks to this 44 // Returns the base::Bind-compatible task runner for posting tasks to this
39 // thread. Can be called from any thread. 45 // thread. Can be called from any thread.
40 virtual base::SingleThreadTaskRunner* GetTaskRunner() const = 0; 46 virtual base::SingleThreadTaskRunner* GetTaskRunner() const = 0;
41 47
42 // Returns the base::Bind-compatible task runner for posting idle tasks to 48 // Returns the base::Bind-compatible task runner for posting idle tasks to
43 // this thread. Can be called from any thread. 49 // this thread. Can be called from any thread.
44 virtual scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const = 0; 50 virtual scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const = 0;
45 51
52 virtual void Init() = 0;
53
46 protected: 54 protected:
47 class TaskObserverAdapter; 55 class TaskObserverAdapter;
48 56
49 WebThreadBase(); 57 WebThreadBase();
50 58
51 virtual void AddTaskObserverInternal( 59 virtual void AddTaskObserverInternal(
52 base::MessageLoop::TaskObserver* observer); 60 base::MessageLoop::TaskObserver* observer);
53 virtual void RemoveTaskObserverInternal( 61 virtual void RemoveTaskObserverInternal(
54 base::MessageLoop::TaskObserver* observer); 62 base::MessageLoop::TaskObserver* observer);
55 63
56 virtual void AddTaskTimeObserverInternal(TaskTimeObserver*) {} 64 virtual void AddTaskTimeObserverInternal(TaskTimeObserver*) {}
57 virtual void RemoveTaskTimeObserverInternal(TaskTimeObserver*) {} 65 virtual void RemoveTaskTimeObserverInternal(TaskTimeObserver*) {}
58 66
59 static void RunWebThreadIdleTask( 67 static void RunWebThreadIdleTask(
60 std::unique_ptr<WebThread::IdleTask> idle_task, 68 std::unique_ptr<WebThread::IdleTask> idle_task,
61 base::TimeTicks deadline); 69 base::TimeTicks deadline);
62 70
63 private: 71 private:
64 typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap; 72 typedef std::map<TaskObserver*, TaskObserverAdapter*> TaskObserverMap;
65 TaskObserverMap task_observer_map_; 73 TaskObserverMap task_observer_map_;
66 }; 74 };
67 75
68 } // namespace scheduler 76 } // namespace scheduler
69 } // namespace blink 77 } // namespace blink
70 78
71 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_ 79 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_BASE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698