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_signals.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "base/memory/ptr_util.h" | |
9 #include "components/scheduler/renderer/render_widget_scheduling_state.h" | |
10 #include "components/scheduler/scheduler_export.h" | |
11 | |
12 namespace scheduler { | |
13 | |
14 RenderWidgetSignals::RenderWidgetSignals(Observer* observer) | |
15 : observer_(observer), | |
16 num_visible_render_widgets_(0), | |
17 num_visible_render_widgets_with_touch_handlers_(0) {} | |
18 | |
19 std::unique_ptr<RenderWidgetSchedulingState> | |
20 RenderWidgetSignals::NewRenderWidgetSchedulingState() { | |
21 return base::WrapUnique(new RenderWidgetSchedulingState(this)); | |
22 } | |
23 | |
24 void RenderWidgetSignals::IncNumVisibleRenderWidgets() { | |
25 num_visible_render_widgets_++; | |
26 | |
27 if (num_visible_render_widgets_ == 1) | |
28 observer_->SetAllRenderWidgetsHidden(false); | |
29 } | |
30 | |
31 void RenderWidgetSignals::DecNumVisibleRenderWidgets() { | |
32 num_visible_render_widgets_--; | |
33 DCHECK_GE(num_visible_render_widgets_, 0); | |
34 | |
35 if (num_visible_render_widgets_ == 0) | |
36 observer_->SetAllRenderWidgetsHidden(true); | |
37 } | |
38 | |
39 void RenderWidgetSignals::IncNumVisibleRenderWidgetsWithTouchHandlers() { | |
40 num_visible_render_widgets_with_touch_handlers_++; | |
41 | |
42 if (num_visible_render_widgets_with_touch_handlers_ == 1) | |
43 observer_->SetHasVisibleRenderWidgetWithTouchHandler(true); | |
44 } | |
45 | |
46 void RenderWidgetSignals::DecNumVisibleRenderWidgetsWithTouchHandlers() { | |
47 num_visible_render_widgets_with_touch_handlers_--; | |
48 DCHECK_GE(num_visible_render_widgets_with_touch_handlers_, 0); | |
49 | |
50 if (num_visible_render_widgets_with_touch_handlers_ == 0) | |
51 observer_->SetHasVisibleRenderWidgetWithTouchHandler(false); | |
52 } | |
53 | |
54 void RenderWidgetSignals::AsValueInto( | |
55 base::trace_event::TracedValue* state) const { | |
56 state->BeginDictionary("renderer_widget_signals"); | |
57 state->SetInteger("num_visible_render_widgets", num_visible_render_widgets_); | |
58 state->SetInteger("num_visible_render_widgets_with_touch_handlers", | |
59 num_visible_render_widgets_with_touch_handlers_); | |
60 state->EndDictionary(); | |
61 } | |
62 | |
63 } // namespace scheduler | |
OLD | NEW |