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 ee7db8e0a72e4b8a568906070be85010264247f5..6fa1133b5968d422027828b2df1b966548733bca 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -149,7 +149,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()); |
@@ -214,7 +214,8 @@ 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_.reset(new SpellCheckProvider(render_view, |
+ spellcheck_.get())); |
#if defined(ENABLE_SAFE_BROWSING) |
safe_browsing::MalwareDOMDetails::Create(render_view); |
#endif |
@@ -624,4 +625,20 @@ bool ChromeContentRendererClient::CrossesExtensionExtents(WebFrame* frame, |
return !extensions->InSameExtent(old_url, new_url); |
} |
+void ChromeContentRendererClient::OnPurgeMemory() { |
+ ResetSpellCheck(); |
+} |
+ |
+void ChromeContentRendererClient::ResetSpellCheck() { |
+ LOG(INFO) << "Resetting spellcheck in renderer client"; |
jam
2011/07/22 16:31:50
nit: i believe people try to use VLOG now so that
Greg Billock
2011/07/22 17:02:07
Yeah, I'm going to strip out all this test code. A
|
+ RenderThread* thread = RenderThread::current(); |
+ if (spellcheck_.get()) |
+ thread->RemoveObserver(spellcheck_.get()); |
+ SpellCheck* new_spellcheck = new SpellCheck(); |
+ if (spellcheck_provider_.get()) |
+ spellcheck_provider_->SetSpellCheck(new_spellcheck); |
+ spellcheck_.reset(new_spellcheck); |
+ thread->AddObserver(new_spellcheck); |
+} |
+ |
} // namespace chrome |