| 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 e21d588f33cd0f8090ec68468009834a69fb5643..d4f5a465ae7c6bb26bfd137189799e2023fc4993 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client.cc
|
| @@ -975,15 +975,21 @@ 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() {
|
|
|