summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/browser_render_process_host.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 22:44:29 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 22:44:29 +0000
commitc27324bdb7b9ee448a0c73d5c005c709282c8cbc (patch)
treed7ec31ab43e6493ef3f00eb81faeca0c79a793c3 /chrome/browser/renderer_host/browser_render_process_host.cc
parent5ef3748a651d073bf12928e880a042bf450e1aa8 (diff)
downloadchromium_src-c27324bdb7b9ee448a0c73d5c005c709282c8cbc.zip
chromium_src-c27324bdb7b9ee448a0c73d5c005c709282c8cbc.tar.gz
chromium_src-c27324bdb7b9ee448a0c73d5c005c709282c8cbc.tar.bz2
Move Mac to using renderer spellchecker.
BUG=25677 Review URL: http://codereview.chromium.org/395007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32561 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/browser_render_process_host.cc')
-rw-r--r--chrome/browser/renderer_host/browser_render_process_host.cc60
1 files changed, 16 insertions, 44 deletions
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
index 1f630af..e9bfedb 100644
--- a/chrome/browser/renderer_host/browser_render_process_host.cc
+++ b/chrome/browser/renderer_host/browser_render_process_host.cc
@@ -40,16 +40,15 @@
#include "chrome/browser/renderer_host/render_widget_host.h"
#include "chrome/browser/renderer_host/resource_message_filter.h"
#include "chrome/browser/renderer_host/web_cache_manager.h"
-#if defined(SPELLCHECKER_IN_RENDERER)
#include "chrome/browser/spellcheck_host.h"
-#endif
-#include "chrome/browser/spellchecker.h"
#include "chrome/browser/visitedlink_master.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/child_process_info.h"
#include "chrome/common/child_process_host.h"
#include "chrome/common/logging_chrome.h"
#include "chrome/common/notification_service.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/process_watcher.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/result_codes.h"
#include "chrome/renderer/render_process.h"
@@ -199,15 +198,12 @@ BrowserRenderProcessHost::BrowserRenderProcessHost(Profile* profile)
registrar_.Add(this, NotificationType::USER_SCRIPTS_UPDATED,
NotificationService::AllSources());
-#if defined(SPELLCHECKER_IN_RENDERER)
registrar_.Add(this, NotificationType::SPELLCHECK_HOST_REINITIALIZED,
NotificationService::AllSources());
registrar_.Add(this, NotificationType::SPELLCHECK_WORD_ADDED,
NotificationService::AllSources());
-
- PrefService* prefs = profile->GetPrefs();
- prefs->AddPrefObserver(prefs::kEnableAutoSpellCorrect, this);
-#endif
+ registrar_.Add(this, NotificationType::SPELLCHECK_AUTOSPELL_TOGGLED,
+ NotificationService::AllSources());
visited_link_updater_.reset(new VisitedLinkUpdater());
@@ -221,11 +217,6 @@ BrowserRenderProcessHost::BrowserRenderProcessHost(Profile* profile)
}
BrowserRenderProcessHost::~BrowserRenderProcessHost() {
-#if defined(SPELLCHECKER_IN_RENDERER)
- PrefService* prefs = profile()->GetPrefs();
- prefs->RemovePrefObserver(prefs::kEnableAutoSpellCorrect, this);
-#endif
-
WebCacheManager::GetInstance()->Remove(id());
ChildProcessSecurityPolicy::GetInstance()->Remove(id());
@@ -277,7 +268,6 @@ bool BrowserRenderProcessHost::Init(bool is_extensions_process,
g_browser_process->print_job_manager(),
profile(),
widget_helper_,
- profile()->GetSpellChecker(),
request_context);
// Find the renderer before creating the channel so if this fails early we
@@ -394,15 +384,6 @@ void BrowserRenderProcessHost::WidgetHidden() {
}
}
-void BrowserRenderProcessHost::AddWord(const string16& word) {
- SpellChecker* spellchecker = profile()->GetSpellChecker();
- if (spellchecker) {
- ChromeThread::PostTask(
- ChromeThread::IO, FROM_HERE,
- NewRunnableMethod(spellchecker, &SpellChecker::AddWord, word));
- }
-}
-
void BrowserRenderProcessHost::SendVisitedLinkTable(
base::SharedMemory* table_memory) {
// Check if the process is still starting and we don't have a handle for it
@@ -762,10 +743,8 @@ void BrowserRenderProcessHost::OnMessageReceived(const IPC::Message& msg) {
OnExtensionRemoveListener)
IPC_MESSAGE_HANDLER(ViewHostMsg_ExtensionCloseChannel,
OnExtensionCloseChannel)
-#if defined(SPELLCHECKER_IN_RENDERER)
IPC_MESSAGE_HANDLER(ViewHostMsg_SpellChecker_RequestDictionary,
OnSpellCheckerRequestDictionary)
-#endif
IPC_MESSAGE_UNHANDLED_ERROR()
IPC_END_MESSAGE_MAP_EX()
@@ -900,7 +879,6 @@ void BrowserRenderProcessHost::Observe(NotificationType type,
}
break;
}
-#if defined(SPELLCHECKER_IN_RENDERER)
case NotificationType::SPELLCHECK_HOST_REINITIALIZED: {
InitSpellChecker();
break;
@@ -911,18 +889,12 @@ void BrowserRenderProcessHost::Observe(NotificationType type,
ptr()->last_added_word());
break;
}
- case NotificationType::PREF_CHANGED: {
- std::wstring* pref_name_in = Details<std::wstring>(details).ptr();
- PrefService* prefs = Source<PrefService>(source).ptr();
- DCHECK(pref_name_in && prefs);
- if (*pref_name_in == prefs::kEnableAutoSpellCorrect) {
- EnableAutoSpellCorrect(
- prefs->GetBoolean(prefs::kEnableAutoSpellCorrect));
- break;
- }
- // Fall through.
+ case NotificationType::SPELLCHECK_AUTOSPELL_TOGGLED: {
+ PrefService* prefs = profile()->GetPrefs();
+ EnableAutoSpellCorrect(
+ prefs->GetBoolean(prefs::kEnableAutoSpellCorrect));
+ break;
}
-#endif
default: {
NOTREACHED();
break;
@@ -937,14 +909,12 @@ void BrowserRenderProcessHost::OnProcessLaunched() {
InitVisitedLinks();
InitUserScripts();
InitExtensions();
-#if defined(SPELLCHECKER_IN_RENDERER)
// We don't want to initialize the spellchecker unless SpellCheckHost has been
// created. In InitSpellChecker(), we know if GetSpellCheckHost() is NULL
// then the spellchecker has been turned off, but here, we don't know if
// it's been turned off or just not loaded yet.
if (profile()->GetSpellCheckHost())
InitSpellChecker();
-#endif
if (max_page_id_ != -1)
Send(new ViewMsg_SetNextPageID(max_page_id_ + 1));
@@ -981,7 +951,6 @@ void BrowserRenderProcessHost::OnExtensionCloseChannel(int port_id) {
}
}
-#if defined(SPELLCHECKER_IN_RENDERER)
void BrowserRenderProcessHost::OnSpellCheckerRequestDictionary() {
// We may have gotten multiple requests from different renderers. We don't
// want to initialize multiple times in this case, so we set |force| to false.
@@ -997,12 +966,16 @@ void BrowserRenderProcessHost::InitSpellChecker() {
if (spellcheck_host) {
PrefService* prefs = profile()->GetPrefs();
IPC::PlatformFileForTransit file;
+
+ if (spellcheck_host->bdict_file() != base::kInvalidPlatformFileValue) {
#if defined(OS_POSIX)
- file = base::FileDescriptor(spellcheck_host->bdict_file(), false);
+ file = base::FileDescriptor(spellcheck_host->bdict_file(), false);
#elif defined(OS_WIN)
- ::DuplicateHandle(::GetCurrentProcess(), spellcheck_host->bdict_file(),
- GetHandle(), &file, 0, false, DUPLICATE_SAME_ACCESS);
+ ::DuplicateHandle(::GetCurrentProcess(), spellcheck_host->bdict_file(),
+ GetHandle(), &file, 0, false, DUPLICATE_SAME_ACCESS);
#endif
+ }
+
Send(new ViewMsg_SpellChecker_Init(
file,
spellcheck_host->custom_words(),
@@ -1020,4 +993,3 @@ void BrowserRenderProcessHost::InitSpellChecker() {
void BrowserRenderProcessHost::EnableAutoSpellCorrect(bool enable) {
Send(new ViewMsg_SpellChecker_EnableAutoSpellCorrect(enable));
}
-#endif