1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/compiler_specific.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/threading/non_thread_safe.h" 1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/browser_process_platform_part_base.h" 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace chromeos { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class OomPriorityManager; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class ProfileHelper; 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace chromeos { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace system { 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass AutomaticRebootManager; 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace policy { 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class BrowserPolicyConnector; 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class BrowserPolicyConnectorChromeOS; 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase, 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) public base::NonThreadSafe { 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserProcessPlatformPart(); 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~BrowserProcessPlatformPart(); 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void InitializeAutomaticRebootManager(); 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void ShutdownAutomaticRebootManager(); 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Returns the out-of-memory priority manager. 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Virtual for testing (see TestingBrowserProcessPlatformPart). 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual chromeos::OomPriorityManager* oom_priority_manager(); 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Returns the ProfileHelper instance that is used to identify 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // users and their profiles in Chrome OS multi user session. 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chromeos::ProfileHelper* profile_helper(); 4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch chromeos::system::AutomaticRebootManager* automatic_reboot_manager() { 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return automatic_reboot_manager_.get(); 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) policy::BrowserPolicyConnectorChromeOS* browser_policy_connector_chromeos(); 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Overridden from BrowserProcessPlatformPartBase: 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void StartTearDown() OVERRIDE; 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual scoped_ptr<policy::BrowserPolicyConnector> 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) CreateBrowserPolicyConnector() OVERRIDE; 575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private: 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void CreateProfileHelper(); 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool created_profile_helper_; 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<chromeos::ProfileHelper> profile_helper_; 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<chromeos::OomPriorityManager> oom_priority_manager_; 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<chromeos::system::AutomaticRebootManager> 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch automatic_reboot_manager_; 68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart); 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 73