diff options
-rw-r--r-- | chrome/browser/chrome_browser_main.cc | 9 | ||||
-rw-r--r-- | chrome/browser/first_run/first_run.cc | 13 | ||||
-rw-r--r-- | chrome/browser/first_run/first_run.h | 8 | ||||
-rw-r--r-- | chrome/browser/prefs/browser_prefs.cc | 2 | ||||
-rw-r--r-- | chrome/installer/util/master_preferences.cc | 15 | ||||
-rw-r--r-- | chrome/installer/util/master_preferences_constants.cc | 1 | ||||
-rw-r--r-- | chrome/installer/util/master_preferences_constants.h | 2 |
7 files changed, 39 insertions, 11 deletions
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 0cd9c2e..309041e 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -1230,9 +1230,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { } PrefService* pref_service = profile_->GetPrefs(); - bool is_google_homepage = pref_service && - google_util::IsGoogleHomePageUrl( - pref_service->GetString(prefs::kHomePage)); + bool is_google_homepage = google_util::IsGoogleHomePageUrl( + pref_service->GetString(prefs::kHomePage)); bool is_google_in_startpages = false; SessionStartupPref session_startup_prefs = @@ -1244,7 +1243,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { IsGoogleUrl) > 0; } - RLZTracker::InitRlzDelayed(is_first_run_, master_prefs_->ping_delay, + int ping_delay = is_first_run_ ? master_prefs_->ping_delay : + pref_service->GetInteger(first_run::GetPingDelayPrefName().c_str()); + RLZTracker::InitRlzDelayed(is_first_run_, ping_delay, is_google_default_search, is_google_homepage, is_google_in_startpages); diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc index a1873c4..88a462d 100644 --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc @@ -9,6 +9,7 @@ #include "base/file_util.h" #include "base/metrics/histogram.h" #include "base/path_service.h" +#include "base/stringprintf.h" #include "base/utf_string_conversions.h" #include "build/build_config.h" #include "chrome/browser/browser_process.h" @@ -441,6 +442,18 @@ bool CreateSentinel() { return file_util::WriteFile(first_run_sentinel, "", 0) != -1; } +std::string GetPingDelayPrefName() { + return base::StringPrintf("%s.%s", + installer::master_preferences::kDistroDict, + installer::master_preferences::kDistroPingDelay); +} + +void RegisterUserPrefs(PrefService* prefs) { + prefs->RegisterIntegerPref(GetPingDelayPrefName().c_str(), + 0, + PrefService::UNSYNCABLE_PREF); +} + bool RemoveSentinel() { FilePath first_run_sentinel; if (!internal::GetFirstRunSentinelFilePath(&first_run_sentinel)) diff --git a/chrome/browser/first_run/first_run.h b/chrome/browser/first_run/first_run.h index 1e57550..4121730 100644 --- a/chrome/browser/first_run/first_run.h +++ b/chrome/browser/first_run/first_run.h @@ -5,6 +5,7 @@ #ifndef CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_ #define CHROME_BROWSER_FIRST_RUN_FIRST_RUN_H_ +#include <string> #include <vector> #include "base/basictypes.h" @@ -18,6 +19,7 @@ class CommandLine; class FilePath; class GURL; +class PrefService; class Profile; class ProcessSingleton; @@ -65,6 +67,12 @@ bool IsChromeFirstRun(); // Creates the sentinel file that signals that chrome has been configured. bool CreateSentinel(); +// Get RLZ ping delay pref name. +std::string GetPingDelayPrefName(); + +// Register user preferences used by the MasterPrefs structure. +void RegisterUserPrefs(PrefService* prefs); + // Removes the sentinel file created in ConfigDone(). Returns false if the // sentinel file could not be removed. bool RemoveSentinel(); diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index 47f54a8..06cdbf8 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -21,6 +21,7 @@ #include "chrome/browser/extensions/extension_prefs.h" #include "chrome/browser/extensions/extension_web_ui.h" #include "chrome/browser/external_protocol/external_protocol_handler.h" +#include "chrome/browser/first_run/first_run.h" #include "chrome/browser/geolocation/geolocation_prefs.h" #include "chrome/browser/google/google_url_tracker.h" #include "chrome/browser/google/google_url_tracker_factory.h" @@ -220,6 +221,7 @@ void RegisterUserPrefs(PrefService* user_prefs) { extensions::ComponentLoader::RegisterUserPrefs(user_prefs); extensions::ExtensionPrefs::RegisterUserPrefs(user_prefs); ExtensionWebUI::RegisterUserPrefs(user_prefs); + first_run::RegisterUserPrefs(user_prefs); GAIAInfoUpdateService::RegisterUserPrefs(user_prefs); HostContentSettingsMap::RegisterUserPrefs(user_prefs); IncognitoModePrefs::RegisterUserPrefs(user_prefs); diff --git a/chrome/installer/util/master_preferences.cc b/chrome/installer/util/master_preferences.cc index 21c05b1..d397b8c 100644 --- a/chrome/installer/util/master_preferences.cc +++ b/chrome/installer/util/master_preferences.cc @@ -17,7 +17,6 @@ namespace { -const char kDistroDict[] = "distribution"; const char kFirstRunTabs[] = "first_run_tabs"; base::LazyInstance<installer::MasterPreferences> g_master_preferences = @@ -109,7 +108,8 @@ MasterPreferences::MasterPreferences(const FilePath& prefs_path) } else { preferences_read_from_file_ = true; // Cache a pointer to the distribution dictionary. - master_dictionary_->GetDictionary(kDistroDict, &distribution_); + master_dictionary_->GetDictionary( + installer::master_preferences::kDistroDict, &distribution_); } InitializeProductFlags(); @@ -169,10 +169,10 @@ void MasterPreferences::InitializeFromCommandLine(const CommandLine& cmd_line) { installer::master_preferences::kAltShortcutText }, }; - std::string name(kDistroDict); + std::string name(installer::master_preferences::kDistroDict); for (int i = 0; i < arraysize(translate_switches); ++i) { if (cmd_line.HasSwitch(translate_switches[i].cmd_line_switch)) { - name.resize(arraysize(kDistroDict) - 1); + name.assign(installer::master_preferences::kDistroDict); name.append(".").append(translate_switches[i].distribution_switch); master_dictionary_->SetBoolean(name, true); } @@ -182,7 +182,7 @@ void MasterPreferences::InitializeFromCommandLine(const CommandLine& cmd_line) { std::wstring str_value(cmd_line.GetSwitchValueNative( installer::switches::kLogFile)); if (!str_value.empty()) { - name.resize(arraysize(kDistroDict) - 1); + name.assign(installer::master_preferences::kDistroDict); name.append(".").append(installer::master_preferences::kLogFile); master_dictionary_->SetString(name, str_value); } @@ -195,14 +195,15 @@ void MasterPreferences::InitializeFromCommandLine(const CommandLine& cmd_line) { env->GetVar(kGoogleUpdateIsMachineEnvVar, &is_machine_var); if (!is_machine_var.empty() && is_machine_var[0] == '1') { VLOG(1) << "Taking system-level from environment."; - name.resize(arraysize(kDistroDict) - 1); + name.assign(installer::master_preferences::kDistroDict); name.append(".").append(installer::master_preferences::kSystemLevel); master_dictionary_->SetBoolean(name, true); } } // Cache a pointer to the distribution dictionary. Ignore errors if any. - master_dictionary_->GetDictionary(kDistroDict, &distribution_); + master_dictionary_->GetDictionary(installer::master_preferences::kDistroDict, + &distribution_); InitializeProductFlags(); #endif diff --git a/chrome/installer/util/master_preferences_constants.cc b/chrome/installer/util/master_preferences_constants.cc index a59c4f2..9ab31a9 100644 --- a/chrome/installer/util/master_preferences_constants.cc +++ b/chrome/installer/util/master_preferences_constants.cc @@ -15,6 +15,7 @@ namespace master_preferences { const char kChromeShortcutIconIndex[] = "chrome_shortcut_icon_index"; const char kCreateAllShortcuts[] = "create_all_shortcuts"; const char kDisableLogging[] = "disable_logging"; + const char kDistroDict[] = "distribution"; const char kDistroImportBookmarksPref[] = "import_bookmarks"; const char kDistroImportBookmarksFromFilePref[] = "import_bookmarks_from_file"; diff --git a/chrome/installer/util/master_preferences_constants.h b/chrome/installer/util/master_preferences_constants.h index 0de206e..c8a16af 100644 --- a/chrome/installer/util/master_preferences_constants.h +++ b/chrome/installer/util/master_preferences_constants.h @@ -34,6 +34,8 @@ extern const char kChromeShortcutIconIndex[]; extern const char kCreateAllShortcuts[]; // Boolean pref that disables all logging. extern const char kDisableLogging[]; +// Name of the dictionary that holds the distribution values. +extern const char kDistroDict[]; // Boolean pref that triggers silent import of the default browser bookmarks. extern const char kDistroImportBookmarksPref[]; // String pref that triggers silent import of bookmarks from the html file at |