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

Unified Diff: chrome/browser/first_run_win.cc

Issue 3025009: Revert 53198 - Some first run fixes:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/views/location_bar/location_bar_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/first_run_win.cc
===================================================================
--- chrome/browser/first_run_win.cc (revision 53209)
+++ chrome/browser/first_run_win.cc (working copy)
@@ -163,15 +163,15 @@
}
// Helper class that performs delayed first-run tasks that need more of the
-// chrome infrastructure to be up and running before they can be attempted.
-class FirstRunDelayedTasks : public NotificationObserver {
+// chrome infrastructure to be up an running before they can be attempted.
+class FirsRunDelayedTasks : public NotificationObserver {
public:
enum Tasks {
NO_TASK,
INSTALL_EXTENSIONS
};
- explicit FirstRunDelayedTasks(Tasks task) {
+ explicit FirsRunDelayedTasks(Tasks task) {
if (task == INSTALL_EXTENSIONS) {
registrar_.Add(this, NotificationType::EXTENSIONS_READY,
NotificationService::AllSources());
@@ -192,7 +192,7 @@
private:
// Private ctor forces it to be created only in the heap.
- ~FirstRunDelayedTasks() {}
+ ~FirsRunDelayedTasks() {}
// The extension work is to basically trigger an extension update check.
// If the extension specified in the master pref is older than the live
@@ -304,26 +304,24 @@
DictionaryValue* extensions = 0;
if (installer_util::HasExtensionsBlock(prefs.get(), &extensions)) {
LOG(INFO) << "Extensions block found in master preferences";
- new FirstRunDelayedTasks(FirstRunDelayedTasks::INSTALL_EXTENSIONS);
+ new FirsRunDelayedTasks(FirsRunDelayedTasks::INSTALL_EXTENSIONS);
}
- // If the search engine dialog is not shown, the search engine is set to
- // Google unless master_preferences specifically turns on search engine
- // import.
+ // Add a special exception for import_search_engine preference.
+ // Even though we skip all other import_* preferences below, if
+ // skip-first-run-ui is not specified, we make exception for this one
+ // preference.
int import_items = 0;
if (installer_util::GetDistroBooleanPreference(prefs.get(),
- installer_util::master_preferences::kDistroImportSearchPref, &value)
- && value) {
- import_items |= importer::SEARCH_ENGINES;
- out_prefs->do_import_items |= importer::SEARCH_ENGINES;
+ installer_util::master_preferences::kDistroImportSearchPref, &value)) {
+ if (value) {
+ import_items += importer::SEARCH_ENGINES;
+ out_prefs->do_import_items += importer::SEARCH_ENGINES;
+ } else {
+ out_prefs->dont_import_items += importer::SEARCH_ENGINES;
+ }
}
- // Check to see if search engine logos should be randomized.
- if (installer_util::GetDistroBooleanPreference(prefs.get(),
- installer_util::master_preferences::kSearchEngineExperimentRandomizePref,
- &value) && value)
- out_prefs->randomize_search_engine_experiment = true;
-
// If we're suppressing the first-run bubble, set that preference now.
// Otherwise, wait until the user has completed first run to set it, so the
// user is guaranteed to see the bubble iff he or she has completed the first
@@ -333,42 +331,45 @@
&value) && value)
FirstRun::SetShowFirstRunBubblePref(false);
+ if (InSearchExperimentLocale() &&
+ installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kSearchEngineExperimentPref,
+ &value) && value) {
+ // Set the first run dialog to include the search choice window.
+ out_prefs->run_search_engine_experiment = true;
+ // Check to see if search engine logos should be randomized.
+ if (installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::
+ kSearchEngineExperimentRandomizePref,
+ &value) && value) {
+ out_prefs->randomize_search_engine_experiment = true;
+ }
+ // Set the first run bubble to minimal.
+ FirstRun::SetMinimalFirstRunBubblePref();
+ }
+ // History is imported automatically, unless turned off in master_prefs.
if (installer_util::GetDistroBooleanPreference(prefs.get(),
- installer_util::master_preferences::kDistroImportHistoryPref, &value)) {
- if (value) {
- import_items |= importer::HISTORY;
- } else {
- // Automatic history import can be turned off in master_prefs.
- out_prefs->dont_import_items |= importer::HISTORY;
- }
+ installer_util::master_preferences::kDistroImportHistoryPref, &value)
+ && !value) {
+ out_prefs->dont_import_items |= importer::HISTORY;
}
+ // Home page is imported automatically only in organic builds, and can be
+ // turned off in master_prefs.
if (installer_util::GetDistroBooleanPreference(prefs.get(),
- installer_util::master_preferences::kDistroImportHomePagePref, &value)) {
- if (value) {
- import_items |= importer::HOME_PAGE;
- } else {
- // Automatic home page import can be turned off in master_prefs.
- out_prefs->dont_import_items |= importer::HOME_PAGE;
- }
+ installer_util::master_preferences::kDistroImportHomePagePref, &value)
+ && !value) {
+ out_prefs->dont_import_items |= importer::HOME_PAGE;
}
// Bookmarks are never imported unless specifically turned on.
if (installer_util::GetDistroBooleanPreference(prefs.get(),
installer_util::master_preferences::kDistroImportBookmarksPref, &value)
&& value) {
- import_items |= importer::FAVORITES;
out_prefs->do_import_items |= importer::FAVORITES;
}
- if (installer_util::GetDistroBooleanPreference(prefs.get(),
- installer_util::master_preferences::kMakeChromeDefaultForUser, &value) &&
- value)
- ShellIntegration::SetAsDefaultBrowser();
-
- // TODO(mirandac): Refactor skip-first-run-ui process into regular first run
- // import process. http://crbug.com/49647
// Note we are skipping all other master preferences if skip-first-run-ui
// is *not* specified. (That is, we continue only if skipping first run ui.)
if (!installer_util::GetDistroBooleanPreference(prefs.get(),
@@ -376,6 +377,10 @@
!value)
return true;
+ // From here on we won't show first run so we need to do the work to show the
+ // bubble anyway, unless it's already been explicitly suppressed.
+ FirstRun::SetShowFirstRunBubblePref(true);
+
// We need to be able to create the first run sentinel or else we cannot
// proceed because ImportSettings will launch the importer process which
// would end up here if the sentinel is not present.
@@ -403,6 +408,11 @@
}
}
+ if (installer_util::GetDistroBooleanPreference(prefs.get(),
+ installer_util::master_preferences::kMakeChromeDefaultForUser, &value) &&
+ value)
+ ShellIntegration::SetAsDefaultBrowser();
+
return false;
}
@@ -668,10 +678,6 @@
}
}
- FirstRun::SetShowFirstRunBubblePref(true);
- // Set the first run bubble to minimal.
- FirstRun::SetMinimalFirstRunBubblePref();
-
process_singleton->Unlock();
FirstRun::CreateSentinel();
}
« no previous file with comments | « no previous file | chrome/browser/views/location_bar/location_bar_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698