// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_FIRST_RUN_FIRST_RUN_INTERNAL_H_ #define CHROME_BROWSER_FIRST_RUN_FIRST_RUN_INTERNAL_H_ class MasterPrefs; class Profile; namespace base { class FilePath; } namespace installer { class MasterPreferences; } namespace first_run { namespace internal { enum FirstRunState { FIRST_RUN_UNKNOWN, // The state is not tested or set yet. FIRST_RUN_TRUE, FIRST_RUN_FALSE, }; // This variable should only be accessed through IsChromeFirstRun(). extern FirstRunState first_run_; // Sets up master preferences by preferences passed by installer. void SetupMasterPrefsFromInstallPrefs( const installer::MasterPreferences& install_prefs, MasterPrefs* out_prefs); // Get the file path of the first run sentinel; returns false on failure. bool GetFirstRunSentinelFilePath(base::FilePath* path); // Create the first run sentinel file; returns false on failure. bool CreateSentinel(); // -- Platform-specific functions -- void DoPostImportPlatformSpecificTasks(Profile* profile); // Returns true if the sentinel file exists (or the path cannot be obtained). // Migrates Windows legacy sentinel files to the corrent location, if needed. bool IsFirstRunSentinelPresent(); // This function has a common implementationin for all non-linux platforms, and // a linux specific implementation. bool IsOrganicFirstRun(); // Shows the EULA dialog if required. Returns true if the EULA is accepted, // returns false if the EULA has not been accepted, in which case the browser // should exit. bool ShowPostInstallEULAIfNeeded(installer::MasterPreferences* install_prefs); // Returns the path for the master preferences file. base::FilePath MasterPrefsPath(); } // namespace internal } // namespace first_run #endif // CHROME_BROWSER_FIRST_RUN_FIRST_RUN_INTERNAL_H_