Index: components/dom_distiller/core/distilled_page_prefs.cc |
diff --git a/components/dom_distiller/core/distilled_page_prefs.cc b/components/dom_distiller/core/distilled_page_prefs.cc |
index fed24235060b6c23866c6f8e959ee938d2de0486..9a68ef8e9a2ef7f18ffd55ae060be1a253d71442 100644 |
--- a/components/dom_distiller/core/distilled_page_prefs.cc |
+++ b/components/dom_distiller/core/distilled_page_prefs.cc |
@@ -19,6 +19,8 @@ namespace { |
const char kFontPref[] = "dom_distiller.font_family"; |
// Path to the integer corresponding to user's preference font family. |
const char kThemePref[] = "dom_distiller.theme"; |
+// Path to the float corresponding to user's preference font scaling. |
+const char kFontScalePref[] = "dom_distiller.font_scale"; |
} |
namespace dom_distiller { |
@@ -41,6 +43,9 @@ void DistilledPagePrefs::RegisterProfilePrefs( |
kFontPref, |
DistilledPagePrefs::SANS_SERIF, |
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
+ registry->RegisterDoublePref( |
+ kFontScalePref, |
+ 1.0); |
} |
void DistilledPagePrefs::SetFontFamily( |
@@ -80,6 +85,26 @@ DistilledPagePrefs::Theme DistilledPagePrefs::GetTheme() { |
return static_cast<Theme>(theme); |
} |
+void DistilledPagePrefs::SetFontScaling(float scaling) { |
+ pref_service_->SetDouble(kFontScalePref, scaling); |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&DistilledPagePrefs::NotifyOnChangeFontScaling, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ scaling)); |
+} |
+ |
+float DistilledPagePrefs::GetFontScaling() { |
+ float scaling = pref_service_->GetDouble(kFontScalePref); |
+ if (scaling < 0.4 || scaling > 2.5) { |
+ // Persisted data was incorrect, trying to clean it up by storing the |
+ // default. |
+ SetFontScaling(1.0); |
+ return 1.0; |
+ } |
+ return scaling; |
+} |
+ |
void DistilledPagePrefs::AddObserver(Observer* obs) { |
observers_.AddObserver(obs); |
} |
@@ -98,4 +123,9 @@ void DistilledPagePrefs::NotifyOnChangeTheme( |
FOR_EACH_OBSERVER(Observer, observers_, OnChangeTheme(new_theme)); |
} |
+void DistilledPagePrefs::NotifyOnChangeFontScaling( |
+ float scaling) { |
+ FOR_EACH_OBSERVER(Observer, observers_, OnChangeFontScaling(scaling)); |
+} |
+ |
} // namespace dom_distiller |