| OLD | NEW |
| 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 COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ | 5 #ifndef COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ |
| 6 #define COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ | 6 #define COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ |
| 7 | 7 |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "components/scheduler/child/child_scheduler.h" | 9 #include "components/scheduler/child/child_scheduler.h" |
| 10 #include "components/scheduler/child/single_thread_idle_task_runner.h" | 10 #include "components/scheduler/child/single_thread_idle_task_runner.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 // process have been hidden. The renderer is assumed to be visible when the | 72 // process have been hidden. The renderer is assumed to be visible when the |
| 73 // scheduler is constructed. Must be called on the main thread. | 73 // scheduler is constructed. Must be called on the main thread. |
| 74 virtual void OnRendererHidden() = 0; | 74 virtual void OnRendererHidden() = 0; |
| 75 | 75 |
| 76 // Tells the scheduler that at least one render widget managed by this | 76 // Tells the scheduler that at least one render widget managed by this |
| 77 // renderer process has become visible and the renderer is no longer hidden. | 77 // renderer process has become visible and the renderer is no longer hidden. |
| 78 // The renderer is assumed to be visible when the scheduler is constructed. | 78 // The renderer is assumed to be visible when the scheduler is constructed. |
| 79 // Must be called on the main thread. | 79 // Must be called on the main thread. |
| 80 virtual void OnRendererVisible() = 0; | 80 virtual void OnRendererVisible() = 0; |
| 81 | 81 |
| 82 // Tells the scheduler that the renderer process has been backgrounded, i.e., |
| 83 // there are no critical, user facing activities (visual, audio, etc...) |
| 84 // driven by this process. A stricter condition than |OnRendererHidden()|, the |
| 85 // process is assumed to be foregrounded when the scheduler is constructed. |
| 86 // Must be called on the main thread. |
| 87 virtual void OnRendererBackgrounded() = 0; |
| 88 |
| 89 // Tells the scheduler that the renderer process has been foregrounded. |
| 90 // This is the assumed state when the scheduler is constructed. |
| 91 // Must be called on the main thread. |
| 92 virtual void OnRendererForegrounded() = 0; |
| 93 |
| 82 // Tells the scheduler that a page load has started. The scheduler will | 94 // Tells the scheduler that a page load has started. The scheduler will |
| 83 // prioritize loading tasks for a short duration afterwards. | 95 // prioritize loading tasks for a short duration afterwards. |
| 84 // Must be called from the main thread. | 96 // Must be called from the main thread. |
| 85 virtual void OnPageLoadStarted() = 0; | 97 virtual void OnPageLoadStarted() = 0; |
| 86 | 98 |
| 87 // Returns true if the scheduler has reason to believe that high priority work | 99 // Returns true if the scheduler has reason to believe that high priority work |
| 88 // may soon arrive on the main thread, e.g., if gesture events were observed | 100 // may soon arrive on the main thread, e.g., if gesture events were observed |
| 89 // recently. | 101 // recently. |
| 90 // Must be called from the main thread. | 102 // Must be called from the main thread. |
| 91 virtual bool IsHighPriorityWorkAnticipated() = 0; | 103 virtual bool IsHighPriorityWorkAnticipated() = 0; |
| 92 | 104 |
| 93 // Suspends the timer queue and increments the timer queue suspension count. | 105 // Suspends the timer queue and increments the timer queue suspension count. |
| 94 // May only be called from the main thread. | 106 // May only be called from the main thread. |
| 95 virtual void SuspendTimerQueue() = 0; | 107 virtual void SuspendTimerQueue() = 0; |
| 96 | 108 |
| 97 // Decrements the timer queue suspension count and re-enables the timer queue | 109 // Decrements the timer queue suspension count and re-enables the timer queue |
| 98 // if the suspension count is zero and the current schduler policy allows it. | 110 // if the suspension count is zero and the current schduler policy allows it. |
| 99 virtual void ResumeTimerQueue() = 0; | 111 virtual void ResumeTimerQueue() = 0; |
| 100 | 112 |
| 113 // Sets whether to allow suspension of timers after the backgrounded signal is |
| 114 // received via OnRendererBackgrounded. Defaults to disabled. |
| 115 virtual void SetTimerQueueSuspensionWhenBackgroundedEnabled(bool enabled) = 0; |
| 116 |
| 101 protected: | 117 protected: |
| 102 RendererScheduler(); | 118 RendererScheduler(); |
| 103 DISALLOW_COPY_AND_ASSIGN(RendererScheduler); | 119 DISALLOW_COPY_AND_ASSIGN(RendererScheduler); |
| 104 }; | 120 }; |
| 105 | 121 |
| 106 } // namespace scheduler | 122 } // namespace scheduler |
| 107 | 123 |
| 108 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ | 124 #endif // COMPONENTS_SCHEDULER_RENDERER_RENDERER_SCHEDULER_H_ |
| OLD | NEW |