Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(822)

Unified Diff: chrome/browser/spellchecker/spellcheck_service.cc

Issue 2828313002: Convert render process component common Spellcheck IPC to mojo (Closed)
Patch Set: Build fix. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/spellchecker/spellcheck_service.cc
diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc
index e496d8909d595f1bb2fe556828561e700f2dec96..cf86778ba821d57661601d8e86604524fb5cb435 100644
--- a/chrome/browser/spellchecker/spellcheck_service.cc
+++ b/chrome/browser/spellchecker/spellcheck_service.cc
@@ -20,9 +20,8 @@
#include "components/spellcheck/browser/spellcheck_host_metrics.h"
#include "components/spellcheck/browser/spellcheck_platform.h"
#include "components/spellcheck/browser/spelling_service_client.h"
-#include "components/spellcheck/common/spellcheck_bdict_language.h"
+#include "components/spellcheck/common/spellcheck.mojom.h"
#include "components/spellcheck/common/spellcheck_common.h"
-#include "components/spellcheck/common/spellcheck_messages.h"
#include "components/spellcheck/spellcheck_build_features.h"
#include "components/user_prefs/user_prefs.h"
#include "content/public/browser/browser_context.h"
@@ -31,7 +30,6 @@
#include "content/public/browser/notification_types.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/storage_partition.h"
-#include "ipc/ipc_platform_file.h"
using content::BrowserThread;
@@ -174,27 +172,27 @@ void SpellcheckService::InitForRenderer(content::RenderProcessHost* process) {
if (SpellcheckServiceFactory::GetForContext(context) != this)
return;
- PrefService* prefs = user_prefs::UserPrefs::Get(context);
- std::vector<SpellCheckBDictLanguage> bdict_languages;
+ const PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ std::vector<spellcheck::mojom::SpellCheckBDictLanguagePtr> dictionaries;
for (const auto& hunspell_dictionary : hunspell_dictionaries_) {
- bdict_languages.push_back(SpellCheckBDictLanguage());
- bdict_languages.back().language = hunspell_dictionary->GetLanguage();
- bdict_languages.back().file =
- hunspell_dictionary->GetDictionaryFile().IsValid()
- ? IPC::GetPlatformFileForTransit(
- hunspell_dictionary->GetDictionaryFile().GetPlatformFile(),
- false)
- : IPC::InvalidPlatformFileForTransit();
+ dictionaries.push_back(spellcheck::mojom::SpellCheckBDictLanguage::New(
+ hunspell_dictionary->GetDictionaryFile().Duplicate(),
+ hunspell_dictionary->GetLanguage()));
}
- bool enabled =
- prefs->GetBoolean(spellcheck::prefs::kEnableSpellcheck) &&
- !bdict_languages.empty();
- process->Send(new SpellCheckMsg_Init(
- bdict_languages,
- enabled ? custom_dictionary_->GetWords() : std::set<std::string>()));
- process->Send(new SpellCheckMsg_EnableSpellCheck(enabled));
+ bool enable = prefs->GetBoolean(spellcheck::prefs::kEnableSpellcheck) &&
+ !dictionaries.empty();
+
+ std::vector<std::string> custom_words;
+ if (enable) {
+ custom_words.assign(custom_dictionary_->GetWords().begin(),
+ custom_dictionary_->GetWords().end());
+ }
+
+ spellcheck::mojom::SpellCheckerPtr spellchecker;
+ content::BindInterface(process, &spellchecker);
+ spellchecker->Initialize(std::move(dictionaries), custom_words, enable);
}
SpellCheckHostMetrics* SpellcheckService::GetMetrics() const {
@@ -257,13 +255,20 @@ void SpellcheckService::OnCustomDictionaryLoaded() {
}
void SpellcheckService::OnCustomDictionaryChanged(
- const SpellcheckCustomDictionary::Change& dictionary_change) {
- for (content::RenderProcessHost::iterator i(
- content::RenderProcessHost::AllHostsIterator());
- !i.IsAtEnd(); i.Advance()) {
- i.GetCurrentValue()->Send(new SpellCheckMsg_CustomDictionaryChanged(
- dictionary_change.to_add(),
- dictionary_change.to_remove()));
+ const SpellcheckCustomDictionary::Change& change) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ auto process_hosts(content::RenderProcessHost::AllHostsIterator());
+
+ const std::vector<std::string> additions(change.to_add().begin(),
+ change.to_add().end());
+ const std::vector<std::string> deletions(change.to_remove().begin(),
+ change.to_remove().end());
+ while (!process_hosts.IsAtEnd()) {
+ spellcheck::mojom::SpellCheckerPtr spellchecker;
+ content::BindInterface(process_hosts.GetCurrentValue(), &spellchecker);
+ spellchecker->CustomDictionaryChanged(additions, deletions);
+ process_hosts.Advance();
}
}
« no previous file with comments | « chrome/browser/spellchecker/spellcheck_service.h ('k') | chrome/browser/spellchecker/spellcheck_service_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698