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

Side by Side Diff: media/base/user_input_monitor.cc

Issue 2577573002: Removes mouse listeners from UserInputMonitor. (Closed)
Patch Set: Addresses Wez's #7 comments. Created 4 years 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "media/base/user_input_monitor.h" 5 #include "media/base/user_input_monitor.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace media { 9 namespace media {
10 10
11 #ifdef DISABLE_USER_INPUT_MONITOR 11 #ifdef DISABLE_USER_INPUT_MONITOR
12 std::unique_ptr<UserInputMonitor> UserInputMonitor::Create( 12 std::unique_ptr<UserInputMonitor> UserInputMonitor::Create(
13 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, 13 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
14 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner) { 14 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner) {
15 return nullptr; 15 return nullptr;
16 } 16 }
17 #endif // DISABLE_USER_INPUT_MONITOR 17 #endif // DISABLE_USER_INPUT_MONITOR
18 18
19 UserInputMonitor::UserInputMonitor()
20 : key_press_counter_references_(0),
21 mouse_listeners_count_(0),
22 mouse_listeners_(new MouseListenerList()) {}
23
24 UserInputMonitor::~UserInputMonitor() { 19 UserInputMonitor::~UserInputMonitor() {
25 DCHECK_EQ(0u, key_press_counter_references_); 20 DCHECK_EQ(0u, key_press_counter_references_);
26 mouse_listeners_->AssertEmpty();
27 }
28
29 void UserInputMonitor::AddMouseListener(MouseEventListener* listener) {
30 mouse_listeners_->AddObserver(listener);
31 {
32 base::AutoLock auto_lock(lock_);
33 mouse_listeners_count_++;
34 if (mouse_listeners_count_ == 1) {
35 StartMouseMonitoring();
36 DVLOG(2) << "Started mouse monitoring.";
37 }
38 }
39 }
40
41 void UserInputMonitor::RemoveMouseListener(MouseEventListener* listener) {
42 mouse_listeners_->RemoveObserver(listener);
43 {
44 base::AutoLock auto_lock(lock_);
45 DCHECK_NE(mouse_listeners_count_, 0u);
46 mouse_listeners_count_--;
47 if (mouse_listeners_count_ == 0) {
48 StopMouseMonitoring();
49 DVLOG(2) << "Stopped mouse monitoring.";
50 }
51 }
52 } 21 }
53 22
54 void UserInputMonitor::EnableKeyPressMonitoring() { 23 void UserInputMonitor::EnableKeyPressMonitoring() {
55 base::AutoLock auto_lock(lock_); 24 base::AutoLock auto_lock(lock_);
56 ++key_press_counter_references_; 25 ++key_press_counter_references_;
57 if (key_press_counter_references_ == 1) { 26 if (key_press_counter_references_ == 1) {
58 StartKeyboardMonitoring(); 27 StartKeyboardMonitoring();
59 DVLOG(2) << "Started keyboard monitoring."; 28 DVLOG(2) << "Started keyboard monitoring.";
60 } 29 }
61 } 30 }
62 31
63 void UserInputMonitor::DisableKeyPressMonitoring() { 32 void UserInputMonitor::DisableKeyPressMonitoring() {
64 base::AutoLock auto_lock(lock_); 33 base::AutoLock auto_lock(lock_);
65 DCHECK_NE(key_press_counter_references_, 0u); 34 DCHECK_NE(key_press_counter_references_, 0u);
66 --key_press_counter_references_; 35 --key_press_counter_references_;
67 if (key_press_counter_references_ == 0) { 36 if (key_press_counter_references_ == 0) {
68 StopKeyboardMonitoring(); 37 StopKeyboardMonitoring();
69 DVLOG(2) << "Stopped keyboard monitoring."; 38 DVLOG(2) << "Stopped keyboard monitoring.";
70 } 39 }
71 } 40 }
72 41
73 } // namespace media 42 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698