| 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 522b9a64bcb84807b1ff16690babf04847bd8179..2ea0feea732ec16de7a2e2328726043d0c850dfb 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client.cc
|
| @@ -977,15 +977,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() {
|
|
|