diff options
| author | karen@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-19 23:38:54 +0000 |
|---|---|---|
| committer | karen@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-19 23:38:54 +0000 |
| commit | 1aebc8c77b4157fb8ab34b7f7b0af177f5676ab3 (patch) | |
| tree | 50411b1143753acc27e6ff16be7dcb143c5f48fa | |
| parent | 024d6d54ea0b5463d6e10fc0ac99399e7a8c8ac0 (diff) | |
| download | chromium_src-1aebc8c77b4157fb8ab34b7f7b0af177f5676ab3.zip chromium_src-1aebc8c77b4157fb8ab34b7f7b0af177f5676ab3.tar.gz chromium_src-1aebc8c77b4157fb8ab34b7f7b0af177f5676ab3.tar.bz2 | |
Merge 142958 - Make the default startup pref to be NTP also on Mac.
BUG=133473
TEST=Manual.
Review URL: https://chromiumcodereview.appspot.com/10581013
TBR=marja@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10536213
git-svn-id: svn://svn.chromium.org/chrome/branches/1180/src@143084 0039d316-1c4b-4281-b951-d872f2087c98
| -rw-r--r-- | chrome/browser/prefs/session_startup_pref.cc | 30 | ||||
| -rw-r--r-- | chrome/browser/prefs/session_startup_pref.h | 4 |
2 files changed, 24 insertions, 10 deletions
diff --git a/chrome/browser/prefs/session_startup_pref.cc b/chrome/browser/prefs/session_startup_pref.cc index d63767d..bbe96c9 100644 --- a/chrome/browser/prefs/session_startup_pref.cc +++ b/chrome/browser/prefs/session_startup_pref.cc @@ -7,6 +7,7 @@ #include <string> #include "base/values.h" +#include "base/version.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" @@ -72,18 +73,10 @@ void SessionStartupPref::RegisterUserPrefs(PrefService* prefs) { // static SessionStartupPref::Type SessionStartupPref::GetDefaultStartupType() { #if defined(OS_CHROMEOS) - SessionStartupPref::Type type = SessionStartupPref::LAST; + return SessionStartupPref::LAST; #else - SessionStartupPref::Type type = SessionStartupPref::DEFAULT; + return SessionStartupPref::DEFAULT; #endif - -#if defined(OS_MACOSX) - // Use Lion's system preference, if it is set. - if (restore_utils::IsWindowRestoreEnabled()) - type = SessionStartupPref::LAST; -#endif - - return type; } // static @@ -129,6 +122,11 @@ SessionStartupPref SessionStartupPref::GetStartupPref(PrefService* prefs) { MigrateIfNecessary(prefs); +#if defined(OS_MACOSX) + if (restore_utils::IsWindowRestoreEnabled()) + MigrateMacDefaultPrefIfNecessary(prefs); +#endif + SessionStartupPref pref( PrefValueToType(prefs->GetInteger(prefs::kRestoreOnStartup))); @@ -189,6 +187,18 @@ void SessionStartupPref::MigrateIfNecessary(PrefService* prefs) { } // static +void SessionStartupPref::MigrateMacDefaultPrefIfNecessary(PrefService* prefs) { + DCHECK(prefs); + // The default startup pref used to be LAST, now it is DEFAULT. Don't change + // the setting for existing profiles (even if the user has never changed it), + // but make new profiles default to DEFAULT. + bool old_profile_version = Version(prefs->GetString( + prefs::kProfileCreatedByVersion)).IsOlderThan("21.0.1180.0"); + if (old_profile_version && TypeIsDefault(prefs)) + prefs->SetInteger(prefs::kRestoreOnStartup, kPrefValueLast); +} + +// static bool SessionStartupPref::TypeIsManaged(PrefService* prefs) { DCHECK(prefs); const PrefService::Preference* pref_restore = diff --git a/chrome/browser/prefs/session_startup_pref.h b/chrome/browser/prefs/session_startup_pref.h index e1885aa..48e2e114 100644 --- a/chrome/browser/prefs/session_startup_pref.h +++ b/chrome/browser/prefs/session_startup_pref.h @@ -58,6 +58,10 @@ struct SessionStartupPref { // the same effect. static void MigrateIfNecessary(PrefService* prefs); + // The default startup pref for Mac used to be LAST, now it's DEFAULT. This + // migrates old users by writing out the preference explicitly. + static void MigrateMacDefaultPrefIfNecessary(PrefService* prefs); + // Whether the startup type and URLs are managed via policy. static bool TypeIsManaged(PrefService* prefs); static bool URLsAreManaged(PrefService* prefs); |
