Home | History | Annotate | Download | only in profiles
      1 // Copyright 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_PROFILES_PROFILE_WINDOW_H_
      6 #define CHROME_BROWSER_PROFILES_PROFILE_WINDOW_H_
      7 
      8 #include "base/callback_forward.h"
      9 #include "chrome/browser/ui/host_desktop.h"
     10 #include "chrome/browser/ui/startup/startup_types.h"
     11 
     12 class Profile;
     13 namespace base { class FilePath; }
     14 
     15 namespace profiles {
     16 
     17 // Callback to be used when switching to a new profile is completed.
     18 typedef base::Callback<void()> ProfileSwitchingDoneCallback;
     19 
     20 // Activates a window for |profile| on the desktop specified by
     21 // |desktop_type|. If no such window yet exists, or if |always_create| is
     22 // true, this first creates a new window, then activates
     23 // that. If activating an exiting window and multiple windows exists then the
     24 // window that was most recently active is activated. This is used for
     25 // creation of a window from the multi-profile dropdown menu.
     26 void FindOrCreateNewWindowForProfile(
     27     Profile* profile,
     28     chrome::startup::IsProcessStartup process_startup,
     29     chrome::startup::IsFirstRun is_first_run,
     30     chrome::HostDesktopType desktop_type,
     31     bool always_create);
     32 
     33 // Opens a Browser with the specified profile given by |path|.
     34 // If |always_create| is true then a new window is created
     35 // even if a window for that profile already exists. When the browser is
     36 // opened, |callback| will be run if it isn't null.
     37 
     38 void SwitchToProfile(
     39     const base::FilePath& path,
     40     chrome::HostDesktopType desktop_type,
     41     bool always_create,
     42     ProfileSwitchingDoneCallback callback);
     43 
     44 // Opens a Browser for the guest profile and runs |callback| if it isn't null.
     45 void SwitchToGuestProfile(chrome::HostDesktopType desktop_type,
     46                           ProfileSwitchingDoneCallback callback);
     47 
     48 // Creates a new profile from the next available profile directory, and
     49 // opens a new browser window for the profile once it is ready. When the browser
     50 // is opened, |callback| will be run if it isn't null.
     51 void CreateAndSwitchToNewProfile(chrome::HostDesktopType desktop_type,
     52                                  ProfileSwitchingDoneCallback callback);
     53 
     54 // Closes all browser windows that belong to the guest profile.
     55 void CloseGuestProfileWindows();
     56 
     57 // Closes all the browser windows for |profile| and opens the user manager.
     58 void LockProfile(Profile* profile);
     59 
     60 }  // namespace profiles
     61 
     62 #endif  // CHROME_BROWSER_PROFILES_PROFILE_WINDOW_H_
     63