Home | History | Annotate | Download | only in first_run
      1 // Copyright (c) 2012 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_FIRST_RUN_FIRST_RUN_INTERNAL_H_
      6 #define CHROME_BROWSER_FIRST_RUN_FIRST_RUN_INTERNAL_H_
      7 
      8 class MasterPrefs;
      9 class Profile;
     10 
     11 namespace base {
     12 class FilePath;
     13 }
     14 
     15 namespace installer {
     16 class MasterPreferences;
     17 }
     18 
     19 namespace first_run {
     20 
     21 namespace internal {
     22 
     23 enum FirstRunState {
     24   FIRST_RUN_UNKNOWN,  // The state is not tested or set yet.
     25   FIRST_RUN_TRUE,
     26   FIRST_RUN_FALSE,
     27 };
     28 
     29 // This variable should only be accessed through IsChromeFirstRun().
     30 extern FirstRunState first_run_;
     31 
     32 // Sets up master preferences by preferences passed by installer.
     33 void SetupMasterPrefsFromInstallPrefs(
     34     const installer::MasterPreferences& install_prefs,
     35     MasterPrefs* out_prefs);
     36 
     37 // Get the file path of the first run sentinel; returns false on failure.
     38 bool GetFirstRunSentinelFilePath(base::FilePath* path);
     39 
     40 // Create the first run sentinel file; returns false on failure.
     41 bool CreateSentinel();
     42 
     43 // -- Platform-specific functions --
     44 
     45 void DoPostImportPlatformSpecificTasks(Profile* profile);
     46 
     47 // Returns true if the sentinel file exists (or the path cannot be obtained).
     48 // Migrates Windows legacy sentinel files to the corrent location, if needed.
     49 bool IsFirstRunSentinelPresent();
     50 
     51 // This function has a common implementationin for all non-linux platforms, and
     52 // a linux specific implementation.
     53 bool IsOrganicFirstRun();
     54 
     55 // Shows the EULA dialog if required. Returns true if the EULA is accepted,
     56 // returns false if the EULA has not been accepted, in which case the browser
     57 // should exit.
     58 bool ShowPostInstallEULAIfNeeded(installer::MasterPreferences* install_prefs);
     59 
     60 // Returns the path for the master preferences file.
     61 base::FilePath MasterPrefsPath();
     62 
     63 }  // namespace internal
     64 }  // namespace first_run
     65 
     66 #endif  // CHROME_BROWSER_FIRST_RUN_FIRST_RUN_INTERNAL_H_
     67