Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / first_run / first_run_internal.h
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_