diff options
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/browser_main.cc | 12 | ||||
-rw-r--r-- | chrome/browser/first_run.h | 6 | ||||
-rw-r--r-- | chrome/browser/first_run_win.cc | 48 |
3 files changed, 31 insertions, 35 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index e54471c..302385d 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -445,16 +445,14 @@ int BrowserMain(const MainFunctionParams& parameters) { BrowserInit browser_init; - int ping_delay = 0; if (is_first_run) { // On first run, we need to process the master preferences before the // browser's profile_manager object is created, but after ResourceBundle // is initialized. std::vector<std::wstring> first_run_tabs; - first_run_ui_bypass = !FirstRun::ProcessMasterPreferences(user_data_dir, - FilePath(), - &first_run_tabs, - &ping_delay); + first_run_ui_bypass = + !FirstRun::ProcessMasterPreferences(user_data_dir, FilePath(), NULL, + &first_run_tabs); // The master prefs might specify a set of urls to display. if (first_run_tabs.size()) AddFirstRunNewTabs(&browser_init, first_run_tabs); @@ -660,10 +658,12 @@ int BrowserMain(const MainFunctionParams& parameters) { win_util::ScopedCOMInitializer com_initializer; + int delay = 0; + installer_util::GetDistributionPingDelay(FilePath(), delay); // Init the RLZ library. This just binds the dll and schedules a task on the // file thread to be run sometime later. If this is the first run we record // the installation event. - RLZTracker::InitRlzDelayed(base::DIR_MODULE, is_first_run, ping_delay); + RLZTracker::InitRlzDelayed(base::DIR_MODULE, is_first_run, delay); #endif // Config the network module so it has access to resources. diff --git a/chrome/browser/first_run.h b/chrome/browser/first_run.h index 0914e9f..030c535 100644 --- a/chrome/browser/first_run.h +++ b/chrome/browser/first_run.h @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 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. @@ -69,8 +69,8 @@ class FirstRun { // 'master_preferences' file. static bool ProcessMasterPreferences(const FilePath& user_data_dir, const FilePath& master_prefs_path, - std::vector<std::wstring>* new_tabs, - int* ping_delay); + int* preference_details, + std::vector<std::wstring>* new_tabs); // Sets the kShouldShowFirstRunBubble local state pref so that the browser // shows the bubble once the main message loop gets going. Returns false if diff --git a/chrome/browser/first_run_win.cc b/chrome/browser/first_run_win.cc index c0ffb6fe..a00f456 100644 --- a/chrome/browser/first_run_win.cc +++ b/chrome/browser/first_run_win.cc @@ -167,9 +167,12 @@ bool FirstRun::CreateChromeQuickLaunchShortcut() { bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, const FilePath& master_prefs_path, - std::vector<std::wstring>* new_tabs, - int* ping_delay) { + int* preference_details, + std::vector<std::wstring>* new_tabs) { DCHECK(!user_data_dir.empty()); + if (preference_details) + *preference_details = 0; + FilePath master_prefs = master_prefs_path; if (master_prefs.empty()) { // The default location of the master prefs is next to the chrome exe. @@ -179,18 +182,18 @@ bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, master_prefs = master_prefs.Append(installer_util::kDefaultMasterPrefs); } - scoped_ptr<DictionaryValue> prefs( - installer_util::ParseDistributionPreferences(master_prefs)); - if (!prefs.get()) + int parse_result = installer_util::ParseDistributionPreferences( + master_prefs.ToWStringHack()); + if (preference_details) + *preference_details = parse_result; + + if (parse_result & installer_util::MASTER_PROFILE_ERROR) return true; if (new_tabs) - *new_tabs = installer_util::GetFirstRunTabs(prefs.get()); - if (ping_delay) - installer_util::GetDistributionPingDelay(prefs.get(), ping_delay); + *new_tabs = installer_util::ParseFirstRunTabs(master_prefs.ToWStringHack()); - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kRequireEula)) { + if (parse_result & installer_util::MASTER_PROFILE_REQUIRE_EULA) { // Show the post-installation EULA. This is done by setup.exe and the // result determines if we continue or not. We wait here until the user // dismisses the dialog. @@ -216,8 +219,7 @@ bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, } } - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kAltFirstRunBubble)) + if (parse_result & installer_util::MASTER_PROFILE_OEM_FIRST_RUN_BUBBLE) FirstRun::SetOEMFirstRunBubblePref(); FilePath user_prefs = GetDefaultPrefFilePath(true, user_data_dir); @@ -229,8 +231,7 @@ bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, if (!file_util::CopyFile(master_prefs, user_prefs)) return true; - if (!installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroSkipFirstRunPref)) + if (!(parse_result & installer_util::MASTER_PROFILE_NO_FIRST_RUN_UI)) return true; // From here on we won't show first run so we need to do the work to set the @@ -243,22 +244,17 @@ bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, if (!FirstRun::CreateSentinel()) return false; - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroShowWelcomePage)) + if (parse_result & installer_util::MASTER_PROFILE_SHOW_WELCOME) FirstRun::SetShowWelcomePagePref(); int import_items = 0; - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportSearchPref)) + if (parse_result & installer_util::MASTER_PROFILE_IMPORT_SEARCH_ENGINE) import_items += SEARCH_ENGINES; - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHistoryPref)) + if (parse_result & installer_util::MASTER_PROFILE_IMPORT_HISTORY) import_items += HISTORY; - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportBookmarksPref)) + if (parse_result & installer_util::MASTER_PROFILE_IMPORT_BOOKMARKS) import_items += FAVORITES; - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kDistroImportHomePagePref)) + if (parse_result & installer_util::MASTER_PROFILE_IMPORT_HOME_PAGE) import_items += HOME_PAGE; if (import_items) { @@ -272,8 +268,8 @@ bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, } } - if (installer_util::GetDistroBooleanPreference(prefs.get(), - installer_util::master_preferences::kMakeChromeDefaultForUser)) + if (parse_result & + installer_util::MASTER_PROFILE_MAKE_CHROME_DEFAULT_FOR_USER) ShellIntegration::SetAsDefaultBrowser(); return false; |