| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/spellchecker/spellcheck_service.h" | 5 #include "chrome/browser/spellchecker/spellcheck_service.h" |
| 6 | 6 |
| 7 #include "base/platform_file.h" | 7 #include "base/platform_file.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/prefs/public/pref_member.h" | 9 #include "base/prefs/public/pref_member.h" |
| 10 #include "base/string_split.h" | 10 #include "base/string_split.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 pref_change_registrar_.Init(prefs); | 41 pref_change_registrar_.Init(prefs); |
| 42 | 42 |
| 43 pref_change_registrar_.Add( | 43 pref_change_registrar_.Add( |
| 44 prefs::kEnableAutoSpellCorrect, | 44 prefs::kEnableAutoSpellCorrect, |
| 45 base::Bind(&SpellcheckService::OnEnableAutoSpellCorrectChanged, | 45 base::Bind(&SpellcheckService::OnEnableAutoSpellCorrectChanged, |
| 46 base::Unretained(this))); | 46 base::Unretained(this))); |
| 47 pref_change_registrar_.Add( | 47 pref_change_registrar_.Add( |
| 48 prefs::kSpellCheckDictionary, | 48 prefs::kSpellCheckDictionary, |
| 49 base::Bind(&SpellcheckService::OnSpellCheckDictionaryChanged, | 49 base::Bind(&SpellcheckService::OnSpellCheckDictionaryChanged, |
| 50 base::Unretained(this))); | 50 base::Unretained(this))); |
| 51 pref_change_registrar_.Add( |
| 52 prefs::kSpellCheckUseSpellingService, |
| 53 base::Bind(&SpellcheckService::OnUseSpellingServiceChanged, |
| 54 base::Unretained(this))); |
| 51 pref_change_registrar_.Add( | 55 pref_change_registrar_.Add( |
| 52 prefs::kEnableContinuousSpellcheck, | 56 prefs::kEnableContinuousSpellcheck, |
| 53 base::Bind(&SpellcheckService::InitForAllRenderers, | 57 base::Bind(&SpellcheckService::InitForAllRenderers, |
| 54 base::Unretained(this))); | 58 base::Unretained(this))); |
| 55 | 59 |
| 56 OnSpellCheckDictionaryChanged(); | 60 OnSpellCheckDictionaryChanged(); |
| 57 | 61 |
| 58 custom_dictionary_.reset(new SpellcheckCustomDictionary(profile_->GetPath())); | 62 custom_dictionary_.reset(new SpellcheckCustomDictionary(profile_->GetPath())); |
| 59 custom_dictionary_->AddObserver(this); | 63 custom_dictionary_->AddObserver(this); |
| 60 custom_dictionary_->Load(); | 64 custom_dictionary_->Load(); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 if (!g_status_event) | 136 if (!g_status_event) |
| 133 return false; | 137 return false; |
| 134 g_status_type = status_type; | 138 g_status_type = status_type; |
| 135 g_status_event->Signal(); | 139 g_status_event->Signal(); |
| 136 return true; | 140 return true; |
| 137 } | 141 } |
| 138 | 142 |
| 139 void SpellcheckService::StartRecordingMetrics(bool spellcheck_enabled) { | 143 void SpellcheckService::StartRecordingMetrics(bool spellcheck_enabled) { |
| 140 metrics_.reset(new SpellCheckHostMetrics()); | 144 metrics_.reset(new SpellCheckHostMetrics()); |
| 141 metrics_->RecordEnabledStats(spellcheck_enabled); | 145 metrics_->RecordEnabledStats(spellcheck_enabled); |
| 146 OnUseSpellingServiceChanged(); |
| 142 } | 147 } |
| 143 | 148 |
| 144 void SpellcheckService::InitForRenderer(content::RenderProcessHost* process) { | 149 void SpellcheckService::InitForRenderer(content::RenderProcessHost* process) { |
| 145 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 150 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 146 | 151 |
| 147 Profile* profile = Profile::FromBrowserContext(process->GetBrowserContext()); | 152 Profile* profile = Profile::FromBrowserContext(process->GetBrowserContext()); |
| 148 if (SpellcheckServiceFactory::GetForProfile(profile) != this) | 153 if (SpellcheckServiceFactory::GetForProfile(profile) != this) |
| 149 return; | 154 return; |
| 150 | 155 |
| 151 PrefService* prefs = profile->GetPrefs(); | 156 PrefService* prefs = profile->GetPrefs(); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 void SpellcheckService::OnSpellCheckDictionaryChanged() { | 269 void SpellcheckService::OnSpellCheckDictionaryChanged() { |
| 265 if (hunspell_dictionary_.get()) | 270 if (hunspell_dictionary_.get()) |
| 266 hunspell_dictionary_->RemoveObserver(this); | 271 hunspell_dictionary_->RemoveObserver(this); |
| 267 hunspell_dictionary_.reset(new SpellcheckHunspellDictionary( | 272 hunspell_dictionary_.reset(new SpellcheckHunspellDictionary( |
| 268 profile_->GetPrefs()->GetString(prefs::kSpellCheckDictionary), | 273 profile_->GetPrefs()->GetString(prefs::kSpellCheckDictionary), |
| 269 profile_->GetRequestContext(), | 274 profile_->GetRequestContext(), |
| 270 this)); | 275 this)); |
| 271 hunspell_dictionary_->AddObserver(this); | 276 hunspell_dictionary_->AddObserver(this); |
| 272 hunspell_dictionary_->Load(); | 277 hunspell_dictionary_->Load(); |
| 273 } | 278 } |
| 279 |
| 280 void SpellcheckService::OnUseSpellingServiceChanged() { |
| 281 bool enabled = pref_change_registrar_.prefs()->GetBoolean( |
| 282 prefs::kSpellCheckUseSpellingService); |
| 283 if (metrics_) |
| 284 metrics_->RecordSpellingServiceStats(enabled); |
| 285 } |
| OLD | NEW |