Index: chrome/browser/chromeos/login/login_utils.cc |
diff --git a/chrome/browser/chromeos/login/login_utils.cc b/chrome/browser/chromeos/login/login_utils.cc |
index c0570563fdd9ed210c77ba5682d5a2a6499f1935..496b3308ecc03a6eeab48d983a6dc1b99d6abba3 100644 |
--- a/chrome/browser/chromeos/login/login_utils.cc |
+++ b/chrome/browser/chromeos/login/login_utils.cc |
@@ -155,6 +155,9 @@ class LoginUtilsImpl |
private: |
typedef std::set<std::string> SessionRestoreStateSet; |
+ // Removes obsolete about://flags entries from user profile preferences. |
+ void RemoveObsoleteFlags(PrefService* prefs); |
+ |
// DoBrowserLaunch is split into two parts. |
// This one is called after anynchronous locale switch. |
void DoBrowserLaunchOnLocaleLoadedImpl(Profile* profile, |
@@ -297,6 +300,26 @@ void LoginUtilsImpl::DoBrowserLaunchOnLocaleLoaded( |
context->profile, context->display_host); |
} |
+void LoginUtilsImpl::RemoveObsoleteFlags(PrefService* prefs) { |
+ about_flags::PrefServiceFlagsStorage flags_storage(prefs); |
+ std::set<std::string> flags = flags_storage.GetFlags(); |
+ bool removed_any = false; |
+ // Entries from about://flags that we need to remove since they are obsolete. |
+ const char* const kObsoleteSwitchesToRemove[] = { |
+ ::switches::kMultiProfilesObsolete, |
+ }; |
+ for (size_t i = 0; i < arraysize(kObsoleteSwitchesToRemove); ++i) { |
+ std::set<std::string>::iterator iter = |
+ flags.find(kObsoleteSwitchesToRemove[i]); |
+ if (iter != flags.end()) { |
+ flags.erase(iter); |
+ removed_any = true; |
+ } |
+ } |
+ if (removed_any) |
+ flags_storage.SetFlags(flags); |
+} |
+ |
// Called from DoBrowserLaunch() or from |
// DoBrowserLaunchOnLocaleLoaded() depending on |
// if locale switch was needed. |
@@ -309,6 +332,7 @@ void LoginUtilsImpl::DoBrowserLaunchOnLocaleLoadedImpl( |
} |
CommandLine user_flags(CommandLine::NO_PROGRAM); |
+ RemoveObsoleteFlags(profile->GetPrefs()); |
about_flags::PrefServiceFlagsStorage flags_storage_(profile->GetPrefs()); |
about_flags::ConvertFlagsToSwitches(&flags_storage_, &user_flags, |
about_flags::kAddSentinels); |