1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 6 #define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "base/threading/non_thread_safe.h" 11 #include "chrome/browser/browser_process_platform_part_base.h" 12 13 namespace chromeos { 14 class OomPriorityManager; 15 class ProfileHelper; 16 } 17 18 namespace chromeos { 19 namespace system { 20 class AutomaticRebootManager; 21 } 22 } 23 24 class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase, 25 public base::NonThreadSafe { 26 public: 27 BrowserProcessPlatformPart(); 28 virtual ~BrowserProcessPlatformPart(); 29 30 void InitializeAutomaticRebootManager(); 31 void ShutdownAutomaticRebootManager(); 32 33 // Returns the out-of-memory priority manager. 34 virtual chromeos::OomPriorityManager* oom_priority_manager(); 35 36 // Returns the ProfileHelper instance that is used to identify 37 // users and their profiles in Chrome OS multi user session. 38 virtual chromeos::ProfileHelper* profile_helper(); 39 40 // Overridden from BrowserProcessPlatformPartBase: 41 virtual void StartTearDown() OVERRIDE; 42 43 chromeos::system::AutomaticRebootManager* automatic_reboot_manager() { 44 return automatic_reboot_manager_.get(); 45 } 46 47 protected: 48 virtual void CreateProfileHelper(); 49 50 bool created_profile_helper_; 51 scoped_ptr<chromeos::ProfileHelper> profile_helper_; 52 53 private: 54 scoped_ptr<chromeos::OomPriorityManager> oom_priority_manager_; 55 56 scoped_ptr<chromeos::system::AutomaticRebootManager> 57 automatic_reboot_manager_; 58 59 DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart); 60 }; 61 62 #endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_CHROMEOS_H_ 63