Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/browser/first_run/first_run.h

Issue 2164033002: Refactoring startup logic for upcoming FRE changes (non-Win 10). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding first unit tests Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_FIRST_RUN_FIRST_RUN_H_ 5 #ifndef CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_
6 #define CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_ 6 #define CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 bool welcome_page_on_os_upgrade_enabled; 80 bool welcome_page_on_os_upgrade_enabled;
81 std::vector<GURL> new_tabs; 81 std::vector<GURL> new_tabs;
82 std::vector<GURL> bookmarks; 82 std::vector<GURL> bookmarks;
83 std::string import_bookmarks_path; 83 std::string import_bookmarks_path;
84 std::string compressed_variations_seed; 84 std::string compressed_variations_seed;
85 std::string variations_seed; 85 std::string variations_seed;
86 std::string variations_seed_signature; 86 std::string variations_seed_signature;
87 std::string suppress_default_browser_prompt_for_version; 87 std::string suppress_default_browser_prompt_for_version;
88 }; 88 };
89 89
90 // Struct which accumulates various properties of the current system for
91 // determining which, if any, onboarding actions should occur.
92 struct FirstRunSystemStatus {
93 // Describes which 'class' of Operating System is running. Any OS's which
94 // have the same onboarding behavior are considered the same class.
95 enum OperatingSystemClass { STANDARD = 0, WINDOWS_10 };
96
97 OperatingSystemClass os_class;
98 bool is_sentinel_present;
99 bool is_force_flag_on;
100 bool is_suppress_flag_on;
101 };
102
103 // Gathers properties of current system which are relevant for determining
104 // onboarding policy.
105 FirstRunSystemStatus GetFirstRunSystemStatus();
106
107 // Makes policy decisions based on the given system status, and returns
grt (UTC plus 2) 2016/08/23 10:36:02 nit: "Returns the (possibly empty) collection of f
108 // a vector, possibly empty, of first-run-related tabs to be shown to the user.
109 std::vector<GURL> GetOnboardingTabs(FirstRunSystemStatus status);
110
90 // Returns true if this is the first time chrome is run for this user. 111 // Returns true if this is the first time chrome is run for this user.
91 bool IsChromeFirstRun(); 112 bool IsChromeFirstRun();
92 113
93 #if defined(OS_MACOSX) 114 #if defined(OS_MACOSX)
94 // Returns true if |command_line|'s switches explicitly specify that first run 115 // Returns true if |command_line|'s switches explicitly specify that first run
95 // should be suppressed in the current run. 116 // should be suppressed in the current run.
96 bool IsFirstRunSuppressed(const base::CommandLine& command_line); 117 bool IsFirstRunSuppressed(const base::CommandLine& command_line);
97 #endif 118 #endif
98 119
99 // Returns whether metrics reporting is currently opt-in. This is used to 120 // Returns whether metrics reporting is currently opt-in. This is used to
(...skipping 28 matching lines...) Expand all
128 // exactly once, so that the browser loads the welcome tab once the 149 // exactly once, so that the browser loads the welcome tab once the
129 // message loop gets going. 150 // message loop gets going.
130 void SetShouldShowWelcomePage(); 151 void SetShouldShowWelcomePage();
131 152
132 // Returns true if the welcome page should be shown. 153 // Returns true if the welcome page should be shown.
133 // 154 //
134 // This will return true only once: The first time it is called after 155 // This will return true only once: The first time it is called after
135 // SetShouldShowWelcomePage() is called. 156 // SetShouldShowWelcomePage() is called.
136 bool ShouldShowWelcomePage(); 157 bool ShouldShowWelcomePage();
137 158
159 // Gets the URL for the "Welcome to Chrome" dialog.
160 // TODO(tmartino): Update to return new Welcome page when complete,
161 // subject to check against kUseConsolidatedFirstRun feature.
162 GURL GetWelcomePageURL();
grt (UTC plus 2) 2016/08/23 10:36:02 URL -> Url (http://google.github.io/styleguide/cpp
tmartino 2016/09/08 21:33:16 Done (here and throughout)
163
164 // Iterates over the given tabs, replacing "magic words" designated for
165 // use in Master Prefs files with corresponding URLs.
grt (UTC plus 2) 2016/08/23 10:36:02 "Master Prefs" -> "master preferences"
tmartino 2016/09/08 21:33:16 Done
166 std::vector<GURL> ProcessMasterPrefsTabs(const std::vector<GURL>& tabs);
167
138 // Sets a flag that will cause ShouldDoPersonalDataManagerFirstRun() 168 // Sets a flag that will cause ShouldDoPersonalDataManagerFirstRun()
139 // to return true exactly once, so that the browser loads 169 // to return true exactly once, so that the browser loads
140 // PersonalDataManager once the main message loop gets going. 170 // PersonalDataManager once the main message loop gets going.
141 void SetShouldDoPersonalDataManagerFirstRun(); 171 void SetShouldDoPersonalDataManagerFirstRun();
142 172
143 // Returns true if the autofill personal data manager first-run action 173 // Returns true if the autofill personal data manager first-run action
144 // should be taken. 174 // should be taken.
145 // 175 //
146 // This will return true only once, the first time it is called after 176 // This will return true only once, the first time it is called after
147 // SetShouldDoPersonalDataManagerFirstRun() is called. 177 // SetShouldDoPersonalDataManagerFirstRun() is called.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 // 215 //
186 // See chrome/installer/util/master_preferences.h for a description of 216 // See chrome/installer/util/master_preferences.h for a description of
187 // 'master_preferences' file. 217 // 'master_preferences' file.
188 ProcessMasterPreferencesResult ProcessMasterPreferences( 218 ProcessMasterPreferencesResult ProcessMasterPreferences(
189 const base::FilePath& user_data_dir, 219 const base::FilePath& user_data_dir,
190 MasterPrefs* out_prefs); 220 MasterPrefs* out_prefs);
191 221
192 } // namespace first_run 222 } // namespace first_run
193 223
194 #endif // CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_ 224 #endif // CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/first_run/first_run.cc » ('j') | chrome/browser/first_run/first_run.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698