OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "components/scheduler/renderer/render_widget_scheduling_state.h" | |
6 | |
7 #include "components/scheduler/renderer/render_widget_signals.h" | |
8 | |
9 namespace scheduler { | |
10 | |
11 RenderWidgetSchedulingState::RenderWidgetSchedulingState( | |
12 RenderWidgetSignals* render_widget_scheduling_signals) | |
13 : render_widget_signals_(render_widget_scheduling_signals), | |
14 hidden_(false), | |
15 has_touch_handler_(false) { | |
16 render_widget_signals_->IncNumVisibleRenderWidgets(); | |
17 } | |
18 | |
19 RenderWidgetSchedulingState::~RenderWidgetSchedulingState() { | |
20 if (hidden_) | |
21 return; | |
22 | |
23 render_widget_signals_->DecNumVisibleRenderWidgets(); | |
24 | |
25 if (has_touch_handler_) { | |
26 render_widget_signals_->DecNumVisibleRenderWidgetsWithTouchHandlers(); | |
27 } | |
28 } | |
29 | |
30 void RenderWidgetSchedulingState::SetHidden(bool hidden) { | |
31 if (hidden_ == hidden) | |
32 return; | |
33 | |
34 hidden_ = hidden; | |
35 | |
36 if (hidden_) { | |
37 render_widget_signals_->DecNumVisibleRenderWidgets(); | |
38 if (has_touch_handler_) { | |
39 render_widget_signals_->DecNumVisibleRenderWidgetsWithTouchHandlers(); | |
40 } | |
41 } else { | |
42 render_widget_signals_->IncNumVisibleRenderWidgets(); | |
43 if (has_touch_handler_) { | |
44 render_widget_signals_->IncNumVisibleRenderWidgetsWithTouchHandlers(); | |
45 } | |
46 } | |
47 } | |
48 | |
49 void RenderWidgetSchedulingState::SetHasTouchHandler(bool has_touch_handler) { | |
50 if (has_touch_handler_ == has_touch_handler) | |
51 return; | |
52 | |
53 has_touch_handler_ = has_touch_handler; | |
54 | |
55 if (hidden_) | |
56 return; | |
57 | |
58 if (has_touch_handler_) { | |
59 render_widget_signals_->IncNumVisibleRenderWidgetsWithTouchHandlers(); | |
60 } else { | |
61 render_widget_signals_->DecNumVisibleRenderWidgetsWithTouchHandlers(); | |
62 } | |
63 } | |
64 | |
65 } // namespace scheduler | |
OLD | NEW |