Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 825c45e319cbe1fbf050027a985b9c3ec25049ea..682e351fedef22626604d75985d21969e61bfe10 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -979,15 +979,20 @@ bool ChromeContentRendererClient::CrossesExtensionExtents( |
should_consider_workaround); |
} |
-void ChromeContentRendererClient::OnPurgeMemory() { |
- DVLOG(1) << "Resetting spellcheck in renderer client"; |
+void ChromeContentRendererClient::SetSpellcheck(SpellCheck* spellcheck) { |
RenderThread* thread = RenderThread::Get(); |
- if (spellcheck_.get()) |
+ if (spellcheck_.get() && thread) |
thread->RemoveObserver(spellcheck_.get()); |
- spellcheck_.reset(new SpellCheck()); |
+ spellcheck_.reset(spellcheck); |
SpellCheckReplacer replacer(spellcheck_.get()); |
content::RenderView::ForEach(&replacer); |
- thread->AddObserver(spellcheck_.get()); |
+ if (thread) |
+ thread->AddObserver(spellcheck_.get()); |
+} |
+ |
+void ChromeContentRendererClient::OnPurgeMemory() { |
+ DVLOG(1) << "Resetting spellcheck in renderer client"; |
+ SetSpellcheck(new SpellCheck()); |
} |
bool ChromeContentRendererClient::IsAdblockInstalled() { |