Index: chrome/browser/spellchecker/spellcheck_service.cc |
diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc |
index 6a71e1697dfc07c7802e8a2a86466cdc9f60f9d8..eff9d5ab9b6be9fac8b4eb7bb9f43bad5d896542 100644 |
--- a/chrome/browser/spellchecker/spellcheck_service.cc |
+++ b/chrome/browser/spellchecker/spellcheck_service.cc |
@@ -48,6 +48,10 @@ SpellcheckService::SpellcheckService(Profile* profile) |
prefs::kSpellCheckDictionary, |
base::Bind(&SpellcheckService::OnSpellCheckDictionaryChanged, |
base::Unretained(this))); |
+ pref_change_registrar_.Add( |
+ prefs::kSpellCheckUseSpellingService, |
+ base::Bind(&SpellcheckService::OnUseSpellingServiceChanged, |
+ base::Unretained(this))); |
pref_change_registrar_.Add( |
prefs::kEnableContinuousSpellcheck, |
base::Bind(&SpellcheckService::InitForAllRenderers, |
@@ -139,6 +143,7 @@ bool SpellcheckService::SignalStatusEvent( |
void SpellcheckService::StartRecordingMetrics(bool spellcheck_enabled) { |
metrics_.reset(new SpellCheckHostMetrics()); |
metrics_->RecordEnabledStats(spellcheck_enabled); |
+ OnUseSpellingServiceChanged(); |
} |
void SpellcheckService::InitForRenderer(content::RenderProcessHost* process) { |
@@ -271,3 +276,10 @@ void SpellcheckService::OnSpellCheckDictionaryChanged() { |
hunspell_dictionary_->AddObserver(this); |
hunspell_dictionary_->Load(); |
} |
+ |
+void SpellcheckService::OnUseSpellingServiceChanged() { |
+ bool enabled = pref_change_registrar_.prefs()->GetBoolean( |
+ prefs::kSpellCheckUseSpellingService); |
+ if (metrics_) |
+ metrics_->RecordSpellingServiceStats(enabled); |
+} |