| 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 770f6ae9b6698e2a3332354c8b9abb036af12173..759388adf7a80b9607e5a0df5390d40610a7b2bb 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client.cc
|
| @@ -152,7 +152,7 @@ ChromeContentRendererClient::~ChromeContentRendererClient() {
|
| }
|
|
|
| void ChromeContentRendererClient::RenderThreadStarted() {
|
| - chrome_observer_.reset(new ChromeRenderProcessObserver());
|
| + chrome_observer_.reset(new ChromeRenderProcessObserver(this));
|
| extension_dispatcher_.reset(new ExtensionDispatcher());
|
| histogram_snapshots_.reset(new RendererHistogramSnapshots());
|
| net_predictor_.reset(new RendererNetPredictor());
|
| @@ -215,7 +215,7 @@ void ChromeContentRendererClient::RenderViewCreated(RenderView* render_view) {
|
| new PageLoadHistograms(render_view, histogram_snapshots_.get());
|
| new PrintWebViewHelper(render_view);
|
| new SearchBox(render_view);
|
| - new SpellCheckProvider(render_view, spellcheck_.get());
|
| + spellcheck_provider_ = new SpellCheckProvider(render_view, spellcheck_.get());
|
| #if defined(ENABLE_SAFE_BROWSING)
|
| safe_browsing::MalwareDOMDetails::Create(render_view);
|
| #endif
|
| @@ -692,4 +692,16 @@ bool ChromeContentRendererClient::CrossesExtensionExtents(WebFrame* frame,
|
| return !extensions->InSameExtent(old_url, new_url);
|
| }
|
|
|
| +void ChromeContentRendererClient::OnPurgeMemory() {
|
| + DVLOG(1) << "Resetting spellcheck in renderer client";
|
| + RenderThread* thread = RenderThread::current();
|
| + if (spellcheck_.get())
|
| + thread->RemoveObserver(spellcheck_.get());
|
| + SpellCheck* new_spellcheck = new SpellCheck();
|
| + if (spellcheck_provider_)
|
| + spellcheck_provider_->SetSpellCheck(new_spellcheck);
|
| + spellcheck_.reset(new_spellcheck);
|
| + thread->AddObserver(new_spellcheck);
|
| +}
|
| +
|
| } // namespace chrome
|
|
|