Home | History | Annotate | Download | only in browser
      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