| 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_profile.h" | 5 #include "chrome/browser/spellchecker/spellcheck_profile.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/string_split.h" | 10 #include "base/string_split.h" |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 custom_dictionary_->WriteWordToCustomDictionary(word); | 105 custom_dictionary_->WriteWordToCustomDictionary(word); |
| 106 } | 106 } |
| 107 | 107 |
| 108 void SpellCheckProfile::Shutdown() { | 108 void SpellCheckProfile::Shutdown() { |
| 109 if (host_.get()) | 109 if (host_.get()) |
| 110 host_->UnsetProfile(); | 110 host_->UnsetProfile(); |
| 111 | 111 |
| 112 profile_ = NULL; | 112 profile_ = NULL; |
| 113 } | 113 } |
| 114 | 114 |
| 115 void SpellCheckProfile::Observe(int type, | 115 void SpellCheckProfile::OnPreferenceChanged(PrefServiceBase* prefs, |
| 116 const content::NotificationSource& source, | 116 const std::string& pref_name_in) { |
| 117 const content::NotificationDetails& details) { | 117 DCHECK(prefs); |
| 118 switch (type) { | 118 if (pref_name_in == prefs::kSpellCheckDictionary || |
| 119 case chrome::NOTIFICATION_PREF_CHANGED: { | 119 pref_name_in == prefs::kEnableSpellCheck) { |
| 120 std::string* pref_name_in = content::Details<std::string>(details).ptr(); | 120 ReinitializeSpellCheckHost(true); |
| 121 PrefService* prefs = content::Source<PrefService>(source).ptr(); | 121 } else if (pref_name_in == prefs::kEnableAutoSpellCorrect) { |
| 122 DCHECK(pref_name_in && prefs); | 122 bool enabled = prefs->GetBoolean(prefs::kEnableAutoSpellCorrect); |
| 123 if (*pref_name_in == prefs::kSpellCheckDictionary || | 123 for (content::RenderProcessHost::iterator i( |
| 124 *pref_name_in == prefs::kEnableSpellCheck) { | 124 content::RenderProcessHost::AllHostsIterator()); |
| 125 ReinitializeSpellCheckHost(true); | 125 !i.IsAtEnd(); i.Advance()) { |
| 126 } else if (*pref_name_in == prefs::kEnableAutoSpellCorrect) { | 126 content::RenderProcessHost* process = i.GetCurrentValue(); |
| 127 bool enabled = prefs->GetBoolean(prefs::kEnableAutoSpellCorrect); | 127 process->Send(new SpellCheckMsg_EnableAutoSpellCorrect(enabled)); |
| 128 for (content::RenderProcessHost::iterator i( | |
| 129 content::RenderProcessHost::AllHostsIterator()); | |
| 130 !i.IsAtEnd(); i.Advance()) { | |
| 131 content::RenderProcessHost* process = i.GetCurrentValue(); | |
| 132 process->Send(new SpellCheckMsg_EnableAutoSpellCorrect(enabled)); | |
| 133 } | |
| 134 } | |
| 135 } | 128 } |
| 136 } | 129 } |
| 137 } | 130 } |
| 138 | 131 |
| 139 SpellCheckProfile::ReinitializeResult SpellCheckProfile::ReinitializeHostImpl( | 132 SpellCheckProfile::ReinitializeResult SpellCheckProfile::ReinitializeHostImpl( |
| 140 bool force, | 133 bool force, |
| 141 bool enable, | 134 bool enable, |
| 142 const std::string& language, | 135 const std::string& language, |
| 143 net::URLRequestContextGetter* request_context) { | 136 net::URLRequestContextGetter* request_context) { |
| 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || IsTesting()); | 137 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || IsTesting()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 158 | 151 |
| 159 if (enable) { | 152 if (enable) { |
| 160 // Retrieve the (perhaps updated recently) dictionary name from preferences. | 153 // Retrieve the (perhaps updated recently) dictionary name from preferences. |
| 161 host_.reset(CreateHost(this, language, request_context, metrics_.get())); | 154 host_.reset(CreateHost(this, language, request_context, metrics_.get())); |
| 162 return REINITIALIZE_CREATED_HOST; | 155 return REINITIALIZE_CREATED_HOST; |
| 163 } | 156 } |
| 164 | 157 |
| 165 return host_deleted ? REINITIALIZE_REMOVED_HOST : REINITIALIZE_DID_NOTHING; | 158 return host_deleted ? REINITIALIZE_REMOVED_HOST : REINITIALIZE_DID_NOTHING; |
| 166 } | 159 } |
| 167 | 160 |
| OLD | NEW |