| OLD | NEW |
| 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 "chrome/browser/extensions/api/system_info/system_info_api.h" | 5 #include "chrome/browser/extensions/api/system_info/system_info_api.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 | 107 |
| 108 SystemInfoEventRouter::~SystemInfoEventRouter() { | 108 SystemInfoEventRouter::~SystemInfoEventRouter() { |
| 109 if (has_storage_monitor_observer_) { | 109 if (has_storage_monitor_observer_) { |
| 110 StorageMonitor* storage_monitor = StorageMonitor::GetInstance(); | 110 StorageMonitor* storage_monitor = StorageMonitor::GetInstance(); |
| 111 if (storage_monitor) | 111 if (storage_monitor) |
| 112 storage_monitor->RemoveObserver(this); | 112 storage_monitor->RemoveObserver(this); |
| 113 } | 113 } |
| 114 } | 114 } |
| 115 | 115 |
| 116 void SystemInfoEventRouter::AddEventListener(const std::string& event_name) { | 116 void SystemInfoEventRouter::AddEventListener(const std::string& event_name) { |
| 117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 117 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 118 | 118 |
| 119 watching_event_set_.insert(event_name); | 119 watching_event_set_.insert(event_name); |
| 120 if (watching_event_set_.count(event_name) > 1) | 120 if (watching_event_set_.count(event_name) > 1) |
| 121 return; | 121 return; |
| 122 | 122 |
| 123 // For system.display event. | 123 // For system.display event. |
| 124 #if defined(OS_CHROMEOS) | 124 #if defined(OS_CHROMEOS) |
| 125 if (IsDisplayChangedEvent(event_name)) | 125 if (IsDisplayChangedEvent(event_name)) |
| 126 ash::Shell::GetScreen()->AddObserver(this); | 126 ash::Shell::GetScreen()->AddObserver(this); |
| 127 #endif | 127 #endif |
| 128 | 128 |
| 129 if (IsSystemStorageEvent(event_name)) { | 129 if (IsSystemStorageEvent(event_name)) { |
| 130 if (!has_storage_monitor_observer_) { | 130 if (!has_storage_monitor_observer_) { |
| 131 has_storage_monitor_observer_ = true; | 131 has_storage_monitor_observer_ = true; |
| 132 DCHECK(StorageMonitor::GetInstance()->IsInitialized()); | 132 DCHECK(StorageMonitor::GetInstance()->IsInitialized()); |
| 133 StorageMonitor::GetInstance()->AddObserver(this); | 133 StorageMonitor::GetInstance()->AddObserver(this); |
| 134 } | 134 } |
| 135 } | 135 } |
| 136 } | 136 } |
| 137 | 137 |
| 138 void SystemInfoEventRouter::RemoveEventListener(const std::string& event_name) { | 138 void SystemInfoEventRouter::RemoveEventListener(const std::string& event_name) { |
| 139 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 139 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 140 | 140 |
| 141 std::multiset<std::string>::iterator it = | 141 std::multiset<std::string>::iterator it = |
| 142 watching_event_set_.find(event_name); | 142 watching_event_set_.find(event_name); |
| 143 if (it != watching_event_set_.end()) { | 143 if (it != watching_event_set_.end()) { |
| 144 watching_event_set_.erase(it); | 144 watching_event_set_.erase(it); |
| 145 if (watching_event_set_.count(event_name) > 0) | 145 if (watching_event_set_.count(event_name) > 0) |
| 146 return; | 146 return; |
| 147 } | 147 } |
| 148 | 148 |
| 149 #if defined(OS_CHROMEOS) | 149 #if defined(OS_CHROMEOS) |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 void SystemInfoAPI::OnListenerRemoved(const EventListenerInfo& details) { | 254 void SystemInfoAPI::OnListenerRemoved(const EventListenerInfo& details) { |
| 255 if (IsSystemStorageEvent(details.event_name)) { | 255 if (IsSystemStorageEvent(details.event_name)) { |
| 256 StorageMonitor::GetInstance()->EnsureInitialized( | 256 StorageMonitor::GetInstance()->EnsureInitialized( |
| 257 base::Bind(&RemoveEventListener, details.event_name)); | 257 base::Bind(&RemoveEventListener, details.event_name)); |
| 258 } else { | 258 } else { |
| 259 RemoveEventListener(details.event_name); | 259 RemoveEventListener(details.event_name); |
| 260 } | 260 } |
| 261 } | 261 } |
| 262 | 262 |
| 263 } // namespace extensions | 263 } // namespace extensions |
| OLD | NEW |