19ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 29ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 39ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// found in the LICENSE file. 49ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 59ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#ifndef CHROME_BROWSER_CHROMEOS_POWER_POWER_PREFS_H_ 69ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#define CHROME_BROWSER_CHROMEOS_POWER_POWER_PREFS_H_ 79ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/basictypes.h" 99ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/compiler_specific.h" 109ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/memory/scoped_ptr.h" 119ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "content/public/browser/notification_observer.h" 129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "content/public/browser/notification_registrar.h" 139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass PrefChangeRegistrar; 159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass Profile; 169ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 179ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochnamespace user_prefs { 189ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass PrefRegistrySyncable; 199ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 209ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 219ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochnamespace chromeos { 229ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass PowerPolicyController; 249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 259ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Sends an updated power policy to the |power_policy_controller| whenever one 269ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// of the power-related prefs changes. 279ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass PowerPrefs : public content::NotificationObserver { 289ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch public: 299ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch explicit PowerPrefs(PowerPolicyController* power_policy_controller); 309ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch virtual ~PowerPrefs(); 319ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 329ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // Register power prefs with default values applicable to a user profile. 339ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch static void RegisterUserProfilePrefs( 349ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch user_prefs::PrefRegistrySyncable* registry); 359ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 369ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // Register power prefs with default values applicable to the login profile. 379ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch static void RegisterLoginProfilePrefs( 389ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch user_prefs::PrefRegistrySyncable* registry); 399ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 409ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // content::NotificationObserver: 419ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch virtual void Observe(int type, 429ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch const content::NotificationSource& source, 439ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch const content::NotificationDetails& details) OVERRIDE; 449ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 459ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch void UpdatePowerPolicyFromPrefs(); 469ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 479ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch private: 489ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch friend class PowerPrefsTest; 499ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 509ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // Register power prefs whose default values are the same in user profiles and 519ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // the login profile. 529ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 539ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 549ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch void SetProfile(Profile* profile); 559ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 569ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PowerPolicyController* power_policy_controller_; // Not owned. 579ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 589ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch content::NotificationRegistrar notification_registrar_; 599ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 609ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch Profile* profile_; // Not owned. 619ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch scoped_ptr<PrefChangeRegistrar> pref_change_registrar_; 629ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 639ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch DISALLOW_COPY_AND_ASSIGN(PowerPrefs); 649ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}; 659ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 669ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} // namespace chromeos 679ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 689ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#endif // CHROME_BROWSER_CHROMEOS_POWER_POWER_PREFS_H_ 69