OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ | 5 #ifndef CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ |
6 #define CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ | 6 #define CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "url/gurl.h" | 10 #include "url/gurl.h" |
11 | 11 |
12 class PrefService; | 12 class PrefService; |
13 class Profile; | 13 class Profile; |
14 | 14 |
15 namespace user_prefs { | 15 namespace user_prefs { |
16 class PrefRegistrySyncable; | 16 class PrefRegistrySyncable; |
17 } | 17 } |
18 | 18 |
19 // StartupPref specifies what should happen at startup for a specified profile. | 19 // StartupPref specifies what should happen at startup for a specified profile. |
20 // StartupPref is stored in the preferences for a particular profile. | 20 // StartupPref is stored in the preferences for a particular profile. |
21 struct SessionStartupPref { | 21 struct SessionStartupPref { |
22 enum Type { | 22 enum Type { |
23 // Indicates the user wants to open the New Tab page. | 23 // Indicates the user wants to open the New Tab page. |
24 DEFAULT, | 24 DEFAULT, |
25 | 25 |
26 // Deprecated. See comment in session_startup_pref.cc | |
27 HOMEPAGE, | |
28 | |
29 // Indicates the user wants to restore the last session. | 26 // Indicates the user wants to restore the last session. |
30 LAST, | 27 LAST, |
31 | 28 |
32 // Indicates the user wants to restore a specific set of URLs. The URLs | 29 // Indicates the user wants to restore a specific set of URLs. The URLs |
33 // are contained in urls. | 30 // are contained in urls. |
34 URLS, | 31 URLS, |
35 | |
36 // Number of values in this enum. | |
37 TYPE_COUNT | |
38 }; | 32 }; |
39 | 33 |
40 // For historical reasons the enum and value registered in the prefs don't | 34 // For historical reasons the enum and value registered in the prefs don't |
41 // line up. These are the values registered in prefs. | 35 // line up. These are the values registered in prefs. |
42 // The values are also recorded in Settings.StartupPageLoadSettings histogram, | 36 // The values are also recorded in Settings.StartupPageLoadSettings histogram, |
43 // so make sure to update histograms.xml if you change these. | 37 // so make sure to update histograms.xml if you change these. |
44 static const int kPrefValueHomePage = 0; // Deprecated | |
45 static const int kPrefValueLast = 1; | 38 static const int kPrefValueLast = 1; |
46 static const int kPrefValueURLs = 4; | 39 static const int kPrefValueURLs = 4; |
47 static const int kPrefValueNewTab = 5; | 40 static const int kPrefValueNewTab = 5; |
48 static const int kPrefValueMax = 6; | 41 static const int kPrefValueMax = 6; |
49 | 42 |
50 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); | 43 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
51 | 44 |
52 // Returns the default value for |type|. | 45 // Returns the default value for |type|. |
53 static Type GetDefaultStartupType(); | 46 static Type GetDefaultStartupType(); |
54 | 47 |
55 // What should happen on startup for the specified profile. | 48 // What should happen on startup for the specified profile. |
56 static void SetStartupPref(Profile* profile, const SessionStartupPref& pref); | 49 static void SetStartupPref(Profile* profile, const SessionStartupPref& pref); |
57 static void SetStartupPref(PrefService* prefs, | 50 static void SetStartupPref(PrefService* prefs, |
58 const SessionStartupPref& pref); | 51 const SessionStartupPref& pref); |
59 static SessionStartupPref GetStartupPref(Profile* profile); | 52 static SessionStartupPref GetStartupPref(Profile* profile); |
60 static SessionStartupPref GetStartupPref(PrefService* prefs); | 53 static SessionStartupPref GetStartupPref(PrefService* prefs); |
61 | 54 |
62 // If the user had the "restore on startup" property set to the deprecated | |
63 // "Open the home page" value, this migrates them to a value that will have | |
64 // the same effect. | |
65 static void MigrateIfNecessary(PrefService* prefs); | |
66 | |
67 // Whether the startup type and URLs are managed via policy. | 55 // Whether the startup type and URLs are managed via policy. |
68 static bool TypeIsManaged(PrefService* prefs); | 56 static bool TypeIsManaged(PrefService* prefs); |
69 static bool URLsAreManaged(PrefService* prefs); | 57 static bool URLsAreManaged(PrefService* prefs); |
70 | 58 |
71 // Whether the startup type has not been overridden from its default. | 59 // Whether the startup type has not been overridden from its default. |
72 static bool TypeIsDefault(PrefService* prefs); | 60 static bool TypeIsDefault(PrefService* prefs); |
73 | 61 |
74 // Converts an integer pref value to a SessionStartupPref::Type. | 62 // Converts an integer pref value to a SessionStartupPref::Type. |
75 static SessionStartupPref::Type PrefValueToType(int pref_value); | 63 static SessionStartupPref::Type PrefValueToType(int pref_value); |
76 | 64 |
77 explicit SessionStartupPref(Type type); | 65 explicit SessionStartupPref(Type type); |
78 | 66 |
79 ~SessionStartupPref(); | 67 ~SessionStartupPref(); |
80 | 68 |
81 // What to do on startup. | 69 // What to do on startup. |
82 Type type; | 70 Type type; |
83 | 71 |
84 // The URLs to restore. Only used if type == URLS. | 72 // The URLs to restore. Only used if type == URLS. |
85 std::vector<GURL> urls; | 73 std::vector<GURL> urls; |
86 }; | 74 }; |
87 | 75 |
88 #endif // CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ | 76 #endif // CHROME_BROWSER_PREFS_SESSION_STARTUP_PREF_H__ |
OLD | NEW |