Index: chrome/browser/renderer_host/browser_render_process_host.cc |
=================================================================== |
--- chrome/browser/renderer_host/browser_render_process_host.cc (revision 32394) |
+++ chrome/browser/renderer_host/browser_render_process_host.cc (working copy) |
@@ -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,16 +198,13 @@ |
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()); |
+ registrar_.Add(this, NotificationType::SPELLCHECK_AUTOSPELL_TOGGLED, |
+ NotificationService::AllSources()); |
- PrefService* prefs = profile->GetPrefs(); |
- prefs->AddPrefObserver(prefs::kEnableAutoSpellCorrect, this); |
-#endif |
- |
visited_link_updater_.reset(new VisitedLinkUpdater()); |
WebCacheManager::GetInstance()->Add(id()); |
@@ -221,11 +217,6 @@ |
} |
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 @@ |
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::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 @@ |
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 @@ |
} |
break; |
} |
-#if defined(SPELLCHECKER_IN_RENDERER) |
case NotificationType::SPELLCHECK_HOST_REINITIALIZED: { |
InitSpellChecker(); |
break; |
@@ -911,18 +889,12 @@ |
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 @@ |
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 @@ |
} |
} |
-#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 @@ |
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::EnableAutoSpellCorrect(bool enable) { |
Send(new ViewMsg_SpellChecker_EnableAutoSpellCorrect(enable)); |
} |
-#endif |