summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_init.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/browser_init.cc')
-rw-r--r--chrome/browser/ui/browser_init.cc44
1 files changed, 34 insertions, 10 deletions
diff --git a/chrome/browser/ui/browser_init.cc b/chrome/browser/ui/browser_init.cc
index 7f6bf7ba..55e1320 100644
--- a/chrome/browser/ui/browser_init.cc
+++ b/chrome/browser/ui/browser_init.cc
@@ -1584,9 +1584,7 @@ void BrowserInit::LaunchWithProfile::CheckPreferencesBackup(Profile* profile) {
// Check if backup is valid.
if (!prefs_watcher->is_backup_valid()) {
- scoped_ptr<BaseSettingChange> change(
- protector::CreatePrefsBackupInvalidChange());
- protector_service->ShowChange(change.release());
+ protector_service->ShowChange(protector::CreatePrefsBackupInvalidChange());
// Further checks make no sense.
return;
}
@@ -1599,13 +1597,39 @@ void BrowserInit::LaunchWithProfile::CheckPreferencesBackup(Profile* profile) {
PinnedTabCodec::Tabs new_tabs = PinnedTabCodec::ReadPinnedTabs(profile);
const base::Value* tabs_backup =
prefs_watcher->GetBackupForPref(prefs::kPinnedTabs);
- scoped_ptr<BaseSettingChange> change(
- protector::CreateSessionStartupChange(
- new_pref,
- new_tabs,
- SessionStartupPref::GetStartupPrefBackup(profile),
- PinnedTabCodec::ReadPinnedTabs(tabs_backup)));
- protector_service->ShowChange(change.release());
+ protector_service->ShowChange(protector::CreateSessionStartupChange(
+ new_pref,
+ new_tabs,
+ SessionStartupPref::GetStartupPrefBackup(profile),
+ PinnedTabCodec::ReadPinnedTabs(tabs_backup)));
+ }
+
+ // Check for homepage changes.
+ if (prefs_watcher->DidPrefChange(prefs::kHomePage) ||
+ prefs_watcher->DidPrefChange(prefs::kHomePageIsNewTabPage) ||
+ prefs_watcher->DidPrefChange(prefs::kShowHomeButton)) {
+ LOG(WARNING) << "Homepage has changed";
+ PrefService* prefs = profile->GetPrefs();
+ std::string backup_homepage;
+ bool backup_homepage_is_ntp;
+ bool backup_show_home_button;
+ if (!prefs_watcher->GetBackupForPref(prefs::kHomePage)->
+ GetAsString(&backup_homepage) ||
+ !prefs_watcher->GetBackupForPref(prefs::kHomePageIsNewTabPage)->
+ GetAsBoolean(&backup_homepage_is_ntp) ||
+ !prefs_watcher->GetBackupForPref(prefs::kShowHomeButton)->
+ GetAsBoolean(&backup_show_home_button)) {
+ NOTREACHED();
+ }
+ protector_service->ShowChange(protector::CreateHomepageChange(
+ // New:
+ prefs->GetString(prefs::kHomePage),
+ prefs->GetBoolean(prefs::kHomePageIsNewTabPage),
+ prefs->GetBoolean(prefs::kShowHomeButton),
+ // Backup:
+ backup_homepage,
+ backup_homepage_is_ntp,
+ backup_show_home_button));
}
}