Remove base/power_monitor and base/system_monitor Change-Id: I15da4ea1066ebaae654345791ec01b6bf6199ac0 Reviewed-on: https://gn-review.googlesource.com/1522 Reviewed-by: Brett Wilson <brettw@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
diff --git a/base/power_monitor/power_monitor.cc b/base/power_monitor/power_monitor.cc deleted file mode 100644 index 30e06a2..0000000 --- a/base/power_monitor/power_monitor.cc +++ /dev/null
@@ -1,65 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor.h" - -#include <utility> - -#include "base/power_monitor/power_monitor_source.h" - -namespace base { - -static PowerMonitor* g_power_monitor = nullptr; - -PowerMonitor::PowerMonitor(std::unique_ptr<PowerMonitorSource> source) - : observers_(new ObserverListThreadSafe<PowerObserver>()), - source_(std::move(source)) { - DCHECK(!g_power_monitor); - g_power_monitor = this; -} - -PowerMonitor::~PowerMonitor() { - DCHECK_EQ(this, g_power_monitor); - g_power_monitor = nullptr; -} - -// static -PowerMonitor* PowerMonitor::Get() { - return g_power_monitor; -} - -void PowerMonitor::AddObserver(PowerObserver* obs) { - observers_->AddObserver(obs); -} - -void PowerMonitor::RemoveObserver(PowerObserver* obs) { - observers_->RemoveObserver(obs); -} - -PowerMonitorSource* PowerMonitor::Source() { - return source_.get(); -} - -bool PowerMonitor::IsOnBatteryPower() { - return source_->IsOnBatteryPower(); -} - -void PowerMonitor::NotifyPowerStateChange(bool battery_in_use) { - DVLOG(1) << "PowerStateChange: " << (battery_in_use ? "On" : "Off") - << " battery"; - observers_->Notify(FROM_HERE, &PowerObserver::OnPowerStateChange, - battery_in_use); -} - -void PowerMonitor::NotifySuspend() { - DVLOG(1) << "Power Suspending"; - observers_->Notify(FROM_HERE, &PowerObserver::OnSuspend); -} - -void PowerMonitor::NotifyResume() { - DVLOG(1) << "Power Resuming"; - observers_->Notify(FROM_HERE, &PowerObserver::OnResume); -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor.h b/base/power_monitor/power_monitor.h deleted file mode 100644 index e025b32..0000000 --- a/base/power_monitor/power_monitor.h +++ /dev/null
@@ -1,55 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_POWER_MONITOR_POWER_MONITOR_H_ -#define BASE_POWER_MONITOR_POWER_MONITOR_H_ - -#include "base/base_export.h" -#include "base/macros.h" -#include "base/memory/ref_counted.h" -#include "base/observer_list_threadsafe.h" -#include "base/power_monitor/power_observer.h" - -namespace base { - -class PowerMonitorSource; - -// A class used to monitor the power state change and notify the observers about -// the change event. -class BASE_EXPORT PowerMonitor { - public: - // Takes ownership of |source|. - explicit PowerMonitor(std::unique_ptr<PowerMonitorSource> source); - ~PowerMonitor(); - - // Get the process-wide PowerMonitor (if not present, returns NULL). - static PowerMonitor* Get(); - - // Add and remove an observer. - // Can be called from any thread. - // Must not be called from within a notification callback. - void AddObserver(PowerObserver* observer); - void RemoveObserver(PowerObserver* observer); - - // Is the computer currently on battery power. - bool IsOnBatteryPower(); - - private: - friend class PowerMonitorSource; - - PowerMonitorSource* Source(); - - void NotifyPowerStateChange(bool battery_in_use); - void NotifySuspend(); - void NotifyResume(); - - scoped_refptr<ObserverListThreadSafe<PowerObserver> > observers_; - std::unique_ptr<PowerMonitorSource> source_; - - DISALLOW_COPY_AND_ASSIGN(PowerMonitor); -}; - -} // namespace base - -#endif // BASE_POWER_MONITOR_POWER_MONITOR_H_
diff --git a/base/power_monitor/power_monitor_device_source.cc b/base/power_monitor/power_monitor_device_source.cc deleted file mode 100644 index 5df5800..0000000 --- a/base/power_monitor/power_monitor_device_source.cc +++ /dev/null
@@ -1,28 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor_device_source.h" - -namespace base { - -PowerMonitorDeviceSource::PowerMonitorDeviceSource() { -#if defined(OS_MACOSX) - PlatformInit(); -#endif - -#if defined(OS_WIN) || defined(OS_MACOSX) - // Provide the correct battery status if possible. Others platforms, such as - // Android and ChromeOS, will update their status once their backends are - // actually initialized. - SetInitialOnBatteryPowerState(IsOnBatteryPowerImpl()); -#endif -} - -PowerMonitorDeviceSource::~PowerMonitorDeviceSource() { -#if defined(OS_MACOSX) - PlatformDestroy(); -#endif -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_device_source.h b/base/power_monitor/power_monitor_device_source.h deleted file mode 100644 index 2996609..0000000 --- a/base/power_monitor/power_monitor_device_source.h +++ /dev/null
@@ -1,98 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_H_ -#define BASE_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_H_ - -#include "base/base_export.h" -#include "base/macros.h" -#include "base/power_monitor/power_monitor_source.h" -#include "base/power_monitor/power_observer.h" -#include "build_config.h" - -#if defined(OS_WIN) -#include <windows.h> -#endif // !OS_WIN - -#if defined(OS_IOS) -#include <objc/runtime.h> -#endif // OS_IOS - -namespace base { - -// A class used to monitor the power state change and notify the observers about -// the change event. -class BASE_EXPORT PowerMonitorDeviceSource : public PowerMonitorSource { - public: - PowerMonitorDeviceSource(); - ~PowerMonitorDeviceSource() override; - -#if defined(OS_MACOSX) - // Allocate system resources needed by the PowerMonitor class. - // - // This function must be called before instantiating an instance of the class - // and before the Sandbox is initialized. -#if !defined(OS_IOS) - static void AllocateSystemIOPorts(); -#else - static void AllocateSystemIOPorts() {} -#endif // OS_IOS -#endif // OS_MACOSX - -#if defined(OS_CHROMEOS) - // On Chrome OS, Chrome receives power-related events from powerd, the system - // power daemon, via D-Bus signals received on the UI thread. base can't - // directly depend on that code, so this class instead exposes static methods - // so that events can be passed in. - static void SetPowerSource(bool on_battery); - static void HandleSystemSuspending(); - static void HandleSystemResumed(); -#endif - - private: -#if defined(OS_WIN) - // Represents a message-only window for power message handling on Windows. - // Only allow PowerMonitor to create it. - class PowerMessageWindow { - public: - PowerMessageWindow(); - ~PowerMessageWindow(); - - private: - static LRESULT CALLBACK WndProcThunk(HWND hwnd, - UINT message, - WPARAM wparam, - LPARAM lparam); - // Instance of the module containing the window procedure. - HMODULE instance_; - // A hidden message-only window. - HWND message_hwnd_; - }; -#endif // OS_WIN - -#if defined(OS_MACOSX) - void PlatformInit(); - void PlatformDestroy(); -#endif - - // Platform-specific method to check whether the system is currently - // running on battery power. Returns true if running on batteries, - // false otherwise. - bool IsOnBatteryPowerImpl() override; - -#if defined(OS_IOS) - // Holds pointers to system event notification observers. - std::vector<id> notification_observers_; -#endif - -#if defined(OS_WIN) - PowerMessageWindow power_message_window_; -#endif - - DISALLOW_COPY_AND_ASSIGN(PowerMonitorDeviceSource); -}; - -} // namespace base - -#endif // BASE_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_H_
diff --git a/base/power_monitor/power_monitor_device_source_chromeos.cc b/base/power_monitor/power_monitor_device_source_chromeos.cc deleted file mode 100644 index c3466ee..0000000 --- a/base/power_monitor/power_monitor_device_source_chromeos.cc +++ /dev/null
@@ -1,40 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_device_source.h" -#include "base/power_monitor/power_monitor_source.h" - -namespace base { - -namespace { - -// The most-recently-seen power source. -bool g_on_battery = false; - -} // namespace - -// static -void PowerMonitorDeviceSource::SetPowerSource(bool on_battery) { - if (on_battery != g_on_battery) { - g_on_battery = on_battery; - ProcessPowerEvent(POWER_STATE_EVENT); - } -} - -// static -void PowerMonitorDeviceSource::HandleSystemSuspending() { - ProcessPowerEvent(SUSPEND_EVENT); -} - -// static -void PowerMonitorDeviceSource::HandleSystemResumed() { - ProcessPowerEvent(RESUME_EVENT); -} - -bool PowerMonitorDeviceSource::IsOnBatteryPowerImpl() { - return g_on_battery; -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_device_source_mac.mm b/base/power_monitor/power_monitor_device_source_mac.mm deleted file mode 100644 index be2b8b9..0000000 --- a/base/power_monitor/power_monitor_device_source_mac.mm +++ /dev/null
@@ -1,155 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Implementation based on sample code from -// http://developer.apple.com/library/mac/#qa/qa1340/_index.html. - -#include "base/power_monitor/power_monitor_device_source.h" - -#include "base/mac/foundation_util.h" -#include "base/mac/scoped_cftyperef.h" -#include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_source.h" - -#include <IOKit/IOMessage.h> -#include <IOKit/ps/IOPSKeys.h> -#include <IOKit/ps/IOPowerSources.h> -#include <IOKit/pwr_mgt/IOPMLib.h> - -namespace base { - -void ProcessPowerEventHelper(PowerMonitorSource::PowerEvent event) { - PowerMonitorSource::ProcessPowerEvent(event); -} - -bool PowerMonitorDeviceSource::IsOnBatteryPowerImpl() { - base::ScopedCFTypeRef<CFTypeRef> info(IOPSCopyPowerSourcesInfo()); - base::ScopedCFTypeRef<CFArrayRef> power_sources_list( - IOPSCopyPowerSourcesList(info)); - - const CFIndex count = CFArrayGetCount(power_sources_list); - for (CFIndex i = 0; i < count; ++i) { - const CFDictionaryRef description = IOPSGetPowerSourceDescription( - info, CFArrayGetValueAtIndex(power_sources_list, i)); - if (!description) - continue; - - CFStringRef current_state = base::mac::GetValueFromDictionary<CFStringRef>( - description, CFSTR(kIOPSPowerSourceStateKey)); - - if (!current_state) - continue; - - // We only report "on battery power" if no source is on AC power. - if (CFStringCompare(current_state, CFSTR(kIOPSBatteryPowerValue), 0) != - kCFCompareEqualTo) { - return false; - } - } - - return true; -} - -namespace { - -io_connect_t g_system_power_io_port = 0; -IONotificationPortRef g_notification_port_ref = 0; -io_object_t g_notifier_object = 0; -CFRunLoopSourceRef g_battery_status_ref = 0; - -void BatteryEventCallback(void*) { - ProcessPowerEventHelper(PowerMonitorSource::POWER_STATE_EVENT); -} - -void SystemPowerEventCallback(void*, - io_service_t service, - natural_t message_type, - void* message_argument) { - switch (message_type) { - // If this message is not handled the system may delay sleep for 30 seconds. - case kIOMessageCanSystemSleep: - IOAllowPowerChange(g_system_power_io_port, - reinterpret_cast<intptr_t>(message_argument)); - break; - case kIOMessageSystemWillSleep: - ProcessPowerEventHelper(base::PowerMonitorSource::SUSPEND_EVENT); - IOAllowPowerChange(g_system_power_io_port, - reinterpret_cast<intptr_t>(message_argument)); - break; - - case kIOMessageSystemWillPowerOn: - ProcessPowerEventHelper(PowerMonitorSource::RESUME_EVENT); - break; - } -} - -} // namespace - -// The reason we can't include this code in the constructor is because -// PlatformInit() requires an active runloop and the IO port needs to be -// allocated at sandbox initialization time, before there's a runloop. -// See crbug.com/83783 . - -// static -void PowerMonitorDeviceSource::AllocateSystemIOPorts() { - DCHECK_EQ(g_system_power_io_port, 0u); - - // Notification port allocated by IORegisterForSystemPower. - g_system_power_io_port = IORegisterForSystemPower( - NULL, &g_notification_port_ref, SystemPowerEventCallback, - &g_notifier_object); - - DCHECK_NE(g_system_power_io_port, 0u); -} - -void PowerMonitorDeviceSource::PlatformInit() { - // Need to call AllocateSystemIOPorts() before creating a PowerMonitor - // object. - DCHECK_NE(g_system_power_io_port, 0u); - if (g_system_power_io_port == 0) - return; - - // Add the notification port and battery monitor to the application runloop - CFRunLoopAddSource(CFRunLoopGetCurrent(), IONotificationPortGetRunLoopSource( - g_notification_port_ref), - kCFRunLoopCommonModes); - - base::ScopedCFTypeRef<CFRunLoopSourceRef> battery_status_ref( - IOPSNotificationCreateRunLoopSource(BatteryEventCallback, nullptr)); - CFRunLoopAddSource(CFRunLoopGetCurrent(), battery_status_ref, - kCFRunLoopDefaultMode); - g_battery_status_ref = battery_status_ref.release(); -} - -void PowerMonitorDeviceSource::PlatformDestroy() { - DCHECK_NE(g_system_power_io_port, 0u); - if (g_system_power_io_port == 0) - return; - - // Remove the sleep notification port from the application runloop - CFRunLoopRemoveSource( - CFRunLoopGetCurrent(), - IONotificationPortGetRunLoopSource(g_notification_port_ref), - kCFRunLoopCommonModes); - - base::ScopedCFTypeRef<CFRunLoopSourceRef> battery_status_ref( - g_battery_status_ref); - CFRunLoopRemoveSource(CFRunLoopGetCurrent(), g_battery_status_ref, - kCFRunLoopDefaultMode); - g_battery_status_ref = 0; - - // Deregister for system sleep notifications - IODeregisterForSystemPower(&g_notifier_object); - - // IORegisterForSystemPower implicitly opens the Root Power Domain IOService, - // so we close it here. - IOServiceClose(g_system_power_io_port); - - g_system_power_io_port = 0; - - // Destroy the notification port allocated by IORegisterForSystemPower. - IONotificationPortDestroy(g_notification_port_ref); -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_device_source_stub.cc b/base/power_monitor/power_monitor_device_source_stub.cc deleted file mode 100644 index f24e5b2..0000000 --- a/base/power_monitor/power_monitor_device_source_stub.cc +++ /dev/null
@@ -1,14 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor_device_source.h" - -namespace base { - -bool PowerMonitorDeviceSource::IsOnBatteryPowerImpl() { - NOTIMPLEMENTED(); - return false; -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_device_source_win.cc b/base/power_monitor/power_monitor_device_source_win.cc deleted file mode 100644 index e74be50..0000000 --- a/base/power_monitor/power_monitor_device_source_win.cc +++ /dev/null
@@ -1,112 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor_device_source.h" - -#include "base/message_loop/message_loop.h" -#include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_source.h" -#include "base/win/wrapped_window_proc.h" - -namespace base { - -void ProcessPowerEventHelper(PowerMonitorSource::PowerEvent event) { - PowerMonitorSource::ProcessPowerEvent(event); -} - -namespace { - -const wchar_t kWindowClassName[] = L"Base_PowerMessageWindow"; - -void ProcessWmPowerBroadcastMessage(WPARAM event_id) { - PowerMonitorSource::PowerEvent power_event; - switch (event_id) { - case PBT_APMPOWERSTATUSCHANGE: // The power status changed. - power_event = PowerMonitorSource::POWER_STATE_EVENT; - break; - case PBT_APMRESUMEAUTOMATIC: // Resume from suspend. - //case PBT_APMRESUMESUSPEND: // User-initiated resume from suspend. - // We don't notify for this latter event - // because if it occurs it is always sent as a - // second event after PBT_APMRESUMEAUTOMATIC. - power_event = PowerMonitorSource::RESUME_EVENT; - break; - case PBT_APMSUSPEND: // System has been suspended. - power_event = PowerMonitorSource::SUSPEND_EVENT; - break; - default: - return; - - // Other Power Events: - // PBT_APMBATTERYLOW - removed in Vista. - // PBT_APMOEMEVENT - removed in Vista. - // PBT_APMQUERYSUSPEND - removed in Vista. - // PBT_APMQUERYSUSPENDFAILED - removed in Vista. - // PBT_APMRESUMECRITICAL - removed in Vista. - // PBT_POWERSETTINGCHANGE - user changed the power settings. - } - - ProcessPowerEventHelper(power_event); -} - -} // namespace - -// Function to query the system to see if it is currently running on -// battery power. Returns true if running on battery. -bool PowerMonitorDeviceSource::IsOnBatteryPowerImpl() { - SYSTEM_POWER_STATUS status; - if (!GetSystemPowerStatus(&status)) { - DPLOG(ERROR) << "GetSystemPowerStatus failed"; - return false; - } - return (status.ACLineStatus == 0); -} - -PowerMonitorDeviceSource::PowerMessageWindow::PowerMessageWindow() - : instance_(NULL), message_hwnd_(NULL) { - if (!MessageLoopForUI::IsCurrent()) { - // Creating this window in (e.g.) a renderer inhibits shutdown on Windows. - // See http://crbug.com/230122. TODO(vandebo): http://crbug.com/236031 - DLOG(ERROR) - << "Cannot create windows on non-UI thread, power monitor disabled!"; - return; - } - WNDCLASSEX window_class; - base::win::InitializeWindowClass( - kWindowClassName, - &base::win::WrappedWindowProc< - PowerMonitorDeviceSource::PowerMessageWindow::WndProcThunk>, - 0, 0, 0, NULL, NULL, NULL, NULL, NULL, - &window_class); - instance_ = window_class.hInstance; - ATOM clazz = RegisterClassEx(&window_class); - DCHECK(clazz); - - message_hwnd_ = CreateWindowEx(WS_EX_NOACTIVATE, kWindowClassName, - NULL, WS_POPUP, 0, 0, 0, 0, NULL, NULL, instance_, NULL); -} - -PowerMonitorDeviceSource::PowerMessageWindow::~PowerMessageWindow() { - if (message_hwnd_) { - DestroyWindow(message_hwnd_); - UnregisterClass(kWindowClassName, instance_); - } -} - -// static -LRESULT CALLBACK PowerMonitorDeviceSource::PowerMessageWindow::WndProcThunk( - HWND hwnd, - UINT message, - WPARAM wparam, - LPARAM lparam) { - switch (message) { - case WM_POWERBROADCAST: - ProcessWmPowerBroadcastMessage(wparam); - return TRUE; - default: - return ::DefWindowProc(hwnd, message, wparam, lparam); - } -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_source.cc b/base/power_monitor/power_monitor_source.cc deleted file mode 100644 index 8ec6e68..0000000 --- a/base/power_monitor/power_monitor_source.cc +++ /dev/null
@@ -1,69 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/power_monitor/power_monitor_source.h" - -#include "base/power_monitor/power_monitor.h" -#include "build_config.h" - -namespace base { - -PowerMonitorSource::PowerMonitorSource() = default; -PowerMonitorSource::~PowerMonitorSource() = default; - -bool PowerMonitorSource::IsOnBatteryPower() { - AutoLock auto_lock(battery_lock_); - return on_battery_power_; -} - -void PowerMonitorSource::ProcessPowerEvent(PowerEvent event_id) { - PowerMonitor* monitor = PowerMonitor::Get(); - if (!monitor) - return; - - PowerMonitorSource* source = monitor->Source(); - - // Suppress duplicate notifications. Some platforms may - // send multiple notifications of the same event. - switch (event_id) { - case POWER_STATE_EVENT: - { - bool new_on_battery_power = source->IsOnBatteryPowerImpl(); - bool changed = false; - - { - AutoLock auto_lock(source->battery_lock_); - if (source->on_battery_power_ != new_on_battery_power) { - changed = true; - source->on_battery_power_ = new_on_battery_power; - } - } - - if (changed) - monitor->NotifyPowerStateChange(new_on_battery_power); - } - break; - case RESUME_EVENT: - if (source->suspended_) { - source->suspended_ = false; - monitor->NotifyResume(); - } - break; - case SUSPEND_EVENT: - if (!source->suspended_) { - source->suspended_ = true; - monitor->NotifySuspend(); - } - break; - } -} - -void PowerMonitorSource::SetInitialOnBatteryPowerState(bool on_battery_power) { - // Must only be called before a monitor exists, otherwise the caller should - // have just used a normal ProcessPowerEvent(POWER_STATE_EVENT) call. - DCHECK(!PowerMonitor::Get()); - on_battery_power_ = on_battery_power; -} - -} // namespace base
diff --git a/base/power_monitor/power_monitor_source.h b/base/power_monitor/power_monitor_source.h deleted file mode 100644 index b69cbf8..0000000 --- a/base/power_monitor/power_monitor_source.h +++ /dev/null
@@ -1,70 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_ -#define BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_ - -#include "base/base_export.h" -#include "base/macros.h" -#include "base/memory/ref_counted.h" -#include "base/observer_list_threadsafe.h" -#include "base/synchronization/lock.h" - -namespace base { - -class PowerMonitor; - -// Communicates power state changes to the power monitor. -class BASE_EXPORT PowerMonitorSource { - public: - PowerMonitorSource(); - virtual ~PowerMonitorSource(); - - // Normalized list of power events. - enum PowerEvent { - POWER_STATE_EVENT, // The Power status of the system has changed. - SUSPEND_EVENT, // The system is being suspended. - RESUME_EVENT // The system is being resumed. - }; - - // Is the computer currently on battery power. Can be called on any thread. - bool IsOnBatteryPower(); - - protected: - friend class PowerMonitorTest; - - // Friend function that is allowed to access the protected ProcessPowerEvent. - friend void ProcessPowerEventHelper(PowerEvent); - - // Get the process-wide PowerMonitorSource (if not present, returns NULL). - static PowerMonitorSource* Get(); - - // ProcessPowerEvent should only be called from a single thread, most likely - // the UI thread or, in child processes, the IO thread. - static void ProcessPowerEvent(PowerEvent event_id); - - // Platform-specific method to check whether the system is currently - // running on battery power. Returns true if running on batteries, - // false otherwise. - virtual bool IsOnBatteryPowerImpl() = 0; - - // Sets the initial state for |on_battery_power_|, which defaults to false - // since not all implementations can provide the value at construction. May - // only be called before a base::PowerMonitor has been created. - void SetInitialOnBatteryPowerState(bool on_battery_power); - - private: - bool on_battery_power_ = false; - bool suspended_ = false; - - // This lock guards access to on_battery_power_, to ensure that - // IsOnBatteryPower can be called from any thread. - Lock battery_lock_; - - DISALLOW_COPY_AND_ASSIGN(PowerMonitorSource); -}; - -} // namespace base - -#endif // BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_
diff --git a/base/power_monitor/power_observer.h b/base/power_monitor/power_observer.h deleted file mode 100644 index 0142b2a..0000000 --- a/base/power_monitor/power_observer.h +++ /dev/null
@@ -1,31 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_POWER_MONITOR_POWER_OBSERVER_H_ -#define BASE_POWER_MONITOR_POWER_OBSERVER_H_ - -#include "base/base_export.h" -#include "base/compiler_specific.h" - -namespace base { - -class BASE_EXPORT PowerObserver { - public: - // Notification of a change in power status of the computer, such - // as from switching between battery and A/C power. - virtual void OnPowerStateChange(bool on_battery_power) {}; - - // Notification that the system is suspending. - virtual void OnSuspend() {} - - // Notification that the system is resuming. - virtual void OnResume() {} - - protected: - virtual ~PowerObserver() = default; -}; - -} // namespace base - -#endif // BASE_POWER_MONITOR_POWER_OBSERVER_H_
diff --git a/base/system_monitor/system_monitor.cc b/base/system_monitor/system_monitor.cc deleted file mode 100644 index 71e4f07..0000000 --- a/base/system_monitor/system_monitor.cc +++ /dev/null
@@ -1,51 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/system_monitor/system_monitor.h" - -#include <utility> - -#include "base/logging.h" -#include "base/time/time.h" - -namespace base { - -static SystemMonitor* g_system_monitor = nullptr; - -SystemMonitor::SystemMonitor() - : devices_changed_observer_list_( - new ObserverListThreadSafe<DevicesChangedObserver>()) { - DCHECK(!g_system_monitor); - g_system_monitor = this; -} - -SystemMonitor::~SystemMonitor() { - DCHECK_EQ(this, g_system_monitor); - g_system_monitor = nullptr; -} - -// static -SystemMonitor* SystemMonitor::Get() { - return g_system_monitor; -} - -void SystemMonitor::ProcessDevicesChanged(DeviceType device_type) { - NotifyDevicesChanged(device_type); -} - -void SystemMonitor::AddDevicesChangedObserver(DevicesChangedObserver* obs) { - devices_changed_observer_list_->AddObserver(obs); -} - -void SystemMonitor::RemoveDevicesChangedObserver(DevicesChangedObserver* obs) { - devices_changed_observer_list_->RemoveObserver(obs); -} - -void SystemMonitor::NotifyDevicesChanged(DeviceType device_type) { - DVLOG(1) << "DevicesChanged with device type " << device_type; - devices_changed_observer_list_->Notify( - FROM_HERE, &DevicesChangedObserver::OnDevicesChanged, device_type); -} - -} // namespace base
diff --git a/base/system_monitor/system_monitor.h b/base/system_monitor/system_monitor.h deleted file mode 100644 index f0828d1..0000000 --- a/base/system_monitor/system_monitor.h +++ /dev/null
@@ -1,75 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_SYSTEM_MONITOR_SYSTEM_MONITOR_H_ -#define BASE_SYSTEM_MONITOR_SYSTEM_MONITOR_H_ - -#include "base/base_export.h" -#include "base/macros.h" -#include "base/memory/ref_counted.h" -#include "base/observer_list_threadsafe.h" -#include "build_config.h" - -namespace base { - -// Class for monitoring various system-related subsystems -// such as power management, network status, etc. -// TODO(mbelshe): Add support beyond just power management. -class BASE_EXPORT SystemMonitor { - public: - // Type of devices whose change need to be monitored, such as add/remove. - enum DeviceType { - DEVTYPE_AUDIO, // Audio device, e.g., microphone. - DEVTYPE_VIDEO_CAPTURE, // Video capture device, e.g., webcam. - DEVTYPE_UNKNOWN, // Other devices. - }; - - // Create SystemMonitor. Only one SystemMonitor instance per application - // is allowed. - SystemMonitor(); - ~SystemMonitor(); - - // Get the application-wide SystemMonitor (if not present, returns NULL). - static SystemMonitor* Get(); - - class BASE_EXPORT DevicesChangedObserver { - public: - // Notification that the devices connected to the system have changed. - // This is only implemented on Windows currently. - virtual void OnDevicesChanged(DeviceType device_type) {} - - protected: - virtual ~DevicesChangedObserver() = default; - }; - - // Add a new observer. - // Can be called from any thread. - // Must not be called from within a notification callback. - void AddDevicesChangedObserver(DevicesChangedObserver* obs); - - // Remove an existing observer. - // Can be called from any thread. - // Must not be called from within a notification callback. - void RemoveDevicesChangedObserver(DevicesChangedObserver* obs); - - // The ProcessFoo() style methods are a broken pattern and should not - // be copied. Any significant addition to this class is blocked on - // refactoring to improve the state of affairs. See http://crbug.com/149059 - - // Cross-platform handling of a device change event. - void ProcessDevicesChanged(DeviceType device_type); - - private: - // Functions to trigger notifications. - void NotifyDevicesChanged(DeviceType device_type); - - scoped_refptr<ObserverListThreadSafe<DevicesChangedObserver> > - devices_changed_observer_list_; - - DISALLOW_COPY_AND_ASSIGN(SystemMonitor); -}; - -} // namespace base - -#endif // BASE_SYSTEM_MONITOR_SYSTEM_MONITOR_H_
diff --git a/build/gen.py b/build/gen.py index 2755480..8cc7bbd 100755 --- a/build/gen.py +++ b/build/gen.py
@@ -665,7 +665,6 @@ 'base/logging_win.cc', 'base/message_loop/message_pump_win.cc', 'base/native_library_win.cc', - 'base/power_monitor/power_monitor_device_source_win.cc', 'base/process/kill_win.cc', 'base/process/launch_win.cc', 'base/process/memory_win.cc',