OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_IMPL_FOR_WO
RKER_SCHEDULER_H_ | 5 #ifndef THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_IMPL_FOR_WO
RKER_SCHEDULER_H_ |
6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_IMPL_FOR_WO
RKER_SCHEDULER_H_ | 6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_IMPL_FOR_WO
RKER_SCHEDULER_H_ |
7 | 7 |
8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
9 #include "public/platform/WebPrivatePtr.h" | 9 #include "public/platform/WebPrivatePtr.h" |
10 #include "public/platform/scheduler/child/webthread_base.h" | 10 #include "public/platform/scheduler/child/webthread_base.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 PlatformThreadId threadId() const override; | 42 PlatformThreadId threadId() const override; |
43 WebTaskRunner* getWebTaskRunner() override; | 43 WebTaskRunner* getWebTaskRunner() override; |
44 | 44 |
45 // WebThreadBase implementation. | 45 // WebThreadBase implementation. |
46 base::SingleThreadTaskRunner* GetTaskRunner() const override; | 46 base::SingleThreadTaskRunner* GetTaskRunner() const override; |
47 scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const override; | 47 scheduler::SingleThreadIdleTaskRunner* GetIdleTaskRunner() const override; |
48 | 48 |
49 // base::MessageLoop::DestructionObserver implementation. | 49 // base::MessageLoop::DestructionObserver implementation. |
50 void WillDestroyCurrentMessageLoop() override; | 50 void WillDestroyCurrentMessageLoop() override; |
51 | 51 |
| 52 scheduler::WorkerScheduler* getWorkerScheduler() { |
| 53 return worker_scheduler_.get(); |
| 54 } |
| 55 |
52 protected: | 56 protected: |
53 base::Thread* thread() const { return thread_.get(); } | 57 base::Thread* thread() const { return thread_.get(); } |
54 | 58 |
55 private: | 59 private: |
56 virtual std::unique_ptr<scheduler::WorkerScheduler> CreateWorkerScheduler(); | 60 virtual std::unique_ptr<scheduler::WorkerScheduler> CreateWorkerScheduler(); |
57 | 61 |
58 void AddTaskObserverInternal( | 62 void AddTaskObserverInternal( |
59 base::MessageLoop::TaskObserver* observer) override; | 63 base::MessageLoop::TaskObserver* observer) override; |
60 void RemoveTaskObserverInternal( | 64 void RemoveTaskObserverInternal( |
61 base::MessageLoop::TaskObserver* observer) override; | 65 base::MessageLoop::TaskObserver* observer) override; |
62 | 66 |
63 void InitOnThread(base::WaitableEvent* completion); | 67 void InitOnThread(base::WaitableEvent* completion); |
64 void RestoreTaskRunnerOnThread(base::WaitableEvent* completion); | 68 void RestoreTaskRunnerOnThread(base::WaitableEvent* completion); |
65 | 69 |
66 std::unique_ptr<base::Thread> thread_; | 70 std::unique_ptr<base::Thread> thread_; |
67 std::unique_ptr<scheduler::WorkerScheduler> worker_scheduler_; | 71 std::unique_ptr<scheduler::WorkerScheduler> worker_scheduler_; |
68 std::unique_ptr<scheduler::WebSchedulerImpl> web_scheduler_; | 72 std::unique_ptr<scheduler::WebSchedulerImpl> web_scheduler_; |
69 scoped_refptr<base::SingleThreadTaskRunner> thread_task_runner_; | 73 scoped_refptr<base::SingleThreadTaskRunner> thread_task_runner_; |
70 scoped_refptr<TaskQueue> task_runner_; | 74 scoped_refptr<TaskQueue> task_runner_; |
71 scoped_refptr<scheduler::SingleThreadIdleTaskRunner> idle_task_runner_; | 75 scoped_refptr<scheduler::SingleThreadIdleTaskRunner> idle_task_runner_; |
72 scoped_refptr<SchedulerTqmDelegate> task_runner_delegate_; | 76 scoped_refptr<SchedulerTqmDelegate> task_runner_delegate_; |
73 WebPrivatePtr<WebTaskRunnerImpl> web_task_runner_; | 77 WebPrivatePtr<WebTaskRunnerImpl> web_task_runner_; |
74 }; | 78 }; |
75 | 79 |
76 } // namespace scheduler | 80 } // namespace scheduler |
77 } // namespace blink | 81 } // namespace blink |
78 | 82 |
79 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_IMPL_FOR
_WORKER_SCHEDULER_H_ | 83 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_CHILD_WEBTHREAD_IMPL_FOR
_WORKER_SCHEDULER_H_ |
OLD | NEW |