Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc |
index 9a1d6d78e7a02158e8f93e82f50b0f97b04f60cc..b8cf8c189fb42dcd109f0ea946ab1fb7d71f5698 100644 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc |
@@ -798,6 +798,18 @@ void BrowserOptionsHandler::PageLoadStarted() { |
void BrowserOptionsHandler::InitializeHandler() { |
Profile* profile = Profile::FromWebUI(web_ui()); |
PrefService* prefs = profile->GetPrefs(); |
+ chrome::ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs(); |
+ // Only regular profiles are able to edit default zoom level, or delete per- |
+ // host zoom levels, via the settings menu. We only require a zoom_level_prefs |
+ // if the profile is able to change these preference types. |
+ DCHECK(zoom_level_prefs || |
+ profile->GetProfileType() != Profile::REGULAR_PROFILE); |
+ if (zoom_level_prefs) { |
+ default_zoom_level_subscription_ = |
+ zoom_level_prefs->RegisterDefaultZoomLevelCallback( |
+ base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, |
+ base::Unretained(this))); |
+ } |
ProfileSyncService* sync_service( |
ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile)); |
@@ -854,10 +866,6 @@ void BrowserOptionsHandler::InitializeHandler() { |
prefs::kDownloadExtensionsToOpen, prefs, |
base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, |
base::Unretained(this))); |
- default_zoom_level_.Init( |
- prefs::kDefaultZoomLevel, prefs, |
- base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, |
- base::Unretained(this))); |
profile_pref_registrar_.Init(prefs); |
profile_pref_registrar_.Add( |
prefs::kNetworkPredictionOptions, |
@@ -1525,7 +1533,8 @@ void BrowserOptionsHandler::HandleDefaultZoomFactor( |
const base::ListValue* args) { |
double zoom_factor; |
if (ExtractDoubleValue(args, &zoom_factor)) { |
- default_zoom_level_.SetValue(content::ZoomFactorToZoomLevel(zoom_factor)); |
+ Profile::FromWebUI(web_ui())->GetZoomLevelPrefs()->SetDefaultZoomLevelPref( |
+ content::ZoomFactorToZoomLevel(zoom_factor)); |
} |
} |
@@ -1782,8 +1791,9 @@ void BrowserOptionsHandler::SetupFontSizeSelector() { |
} |
void BrowserOptionsHandler::SetupPageZoomSelector() { |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- double default_zoom_level = pref_service->GetDouble(prefs::kDefaultZoomLevel); |
+ double default_zoom_level = |
+ content::HostZoomMap::GetDefaultForBrowserContext( |
+ Profile::FromWebUI(web_ui()))->GetDefaultZoomLevel(); |
double default_zoom_factor = |
content::ZoomLevelToZoomFactor(default_zoom_level); |