| Index: chrome/browser/ui/browser.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/ui/browser.cc	(revision 99286)
 | 
| +++ chrome/browser/ui/browser.cc	(working copy)
 | 
| @@ -313,6 +313,7 @@
 | 
|    profile_pref_registrar_.Add(prefs::kDevToolsDisabled, this);
 | 
|    profile_pref_registrar_.Add(prefs::kEditBookmarksEnabled, this);
 | 
|    profile_pref_registrar_.Add(prefs::kEnableBookmarkBar, this);
 | 
| +  profile_pref_registrar_.Add(prefs::kHomePage, this);
 | 
|    profile_pref_registrar_.Add(prefs::kInstantEnabled, this);
 | 
|    profile_pref_registrar_.Add(prefs::kIncognitoModeAvailability, this);
 | 
|    profile_pref_registrar_.Add(prefs::kSearchSuggestEnabled, this);
 | 
| @@ -1468,7 +1469,8 @@
 | 
|  
 | 
|  void Browser::Home(WindowOpenDisposition disposition) {
 | 
|    UserMetrics::RecordAction(UserMetricsAction("Home"));
 | 
| -  OpenURL(GetHomePage(), GURL(), disposition, PageTransition::AUTO_BOOKMARK);
 | 
| +  OpenURL(GetHomePage(), GURL(), disposition,
 | 
| +          PageTransition::AUTO_BOOKMARK | PageTransition::HOME_PAGE);
 | 
|  }
 | 
|  
 | 
|  void Browser::OpenCurrentURL() {
 | 
| @@ -2238,6 +2240,9 @@
 | 
|    prefs->RegisterStringPref(prefs::kHomePage,
 | 
|                              chrome::kChromeUINewTabURL,
 | 
|                              PrefService::SYNCABLE_PREF);
 | 
| +  prefs->RegisterBooleanPref(prefs::kHomePageChanged,
 | 
| +                             false,
 | 
| +                             PrefService::UNSYNCABLE_PREF);
 | 
|    prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage,
 | 
|                               true,
 | 
|                               PrefService::SYNCABLE_PREF);
 | 
| @@ -4033,6 +4038,9 @@
 | 
|          UpdateCommandsForBookmarkEditing();
 | 
|        } else if (pref_name == prefs::kEnableBookmarkBar) {
 | 
|          UpdateCommandsForBookmarkBar();
 | 
| +      } else if (pref_name == prefs::kHomePage) {
 | 
| +        PrefService* pref_service = Source<PrefService>(source).ptr();
 | 
| +        MarkHomePageAsChanged(pref_service);
 | 
|        } else if (pref_name == prefs::kAllowFileSelectionDialogs) {
 | 
|          UpdateSaveAsState(GetContentRestrictionsForSelectedTab());
 | 
|          UpdateOpenFileState();
 | 
| @@ -4485,6 +4493,11 @@
 | 
|        show_main_ui);
 | 
|  }
 | 
|  
 | 
| +void Browser::MarkHomePageAsChanged(PrefService* pref_service) {
 | 
| +  pref_service->SetBoolean(prefs::kHomePageChanged, true);
 | 
| +  pref_service->ScheduleSavePersistentPrefs();
 | 
| +}
 | 
| +
 | 
|  void Browser::UpdateSaveAsState(int content_restrictions) {
 | 
|    bool enabled = !(content_restrictions & CONTENT_RESTRICTION_SAVE);
 | 
|    PrefService* state = g_browser_process->local_state();
 | 
| 
 |