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

Side by Side Diff: components/scheduler/renderer/render_widget_signals.cc

Issue 2118903002: scheduler: Move the Blink scheduler into Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 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
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698