Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1760)

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 7222023: Forward handling of low-mem message to the content renderer client. Add APIs to handle this case. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Don't own SpellCheckProvider in renderer client. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/chrome_content_renderer_client.h" 5 #include "chrome/renderer/chrome_content_renderer_client.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 145
146 ChromeContentRendererClient::ChromeContentRendererClient() { 146 ChromeContentRendererClient::ChromeContentRendererClient() {
147 chrome::InitializePPAPI(); 147 chrome::InitializePPAPI();
148 } 148 }
149 149
150 ChromeContentRendererClient::~ChromeContentRendererClient() { 150 ChromeContentRendererClient::~ChromeContentRendererClient() {
151 chrome::UninitializePPAPI(); 151 chrome::UninitializePPAPI();
152 } 152 }
153 153
154 void ChromeContentRendererClient::RenderThreadStarted() { 154 void ChromeContentRendererClient::RenderThreadStarted() {
155 chrome_observer_.reset(new ChromeRenderProcessObserver()); 155 chrome_observer_.reset(new ChromeRenderProcessObserver(this));
156 extension_dispatcher_.reset(new ExtensionDispatcher()); 156 extension_dispatcher_.reset(new ExtensionDispatcher());
157 histogram_snapshots_.reset(new RendererHistogramSnapshots()); 157 histogram_snapshots_.reset(new RendererHistogramSnapshots());
158 net_predictor_.reset(new RendererNetPredictor()); 158 net_predictor_.reset(new RendererNetPredictor());
159 spellcheck_.reset(new SpellCheck()); 159 spellcheck_.reset(new SpellCheck());
160 visited_link_slave_.reset(new VisitedLinkSlave()); 160 visited_link_slave_.reset(new VisitedLinkSlave());
161 #if defined(ENABLE_SAFE_BROWSING) 161 #if defined(ENABLE_SAFE_BROWSING)
162 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); 162 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create());
163 #endif 163 #endif
164 164
165 RenderThread* thread = RenderThread::current(); 165 RenderThread* thread = RenderThread::current();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); 208 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme);
209 } 209 }
210 210
211 void ChromeContentRendererClient::RenderViewCreated(RenderView* render_view) { 211 void ChromeContentRendererClient::RenderViewCreated(RenderView* render_view) {
212 ContentSettingsObserver* content_settings = 212 ContentSettingsObserver* content_settings =
213 new ContentSettingsObserver(render_view); 213 new ContentSettingsObserver(render_view);
214 new ExtensionHelper(render_view, extension_dispatcher_.get()); 214 new ExtensionHelper(render_view, extension_dispatcher_.get());
215 new PageLoadHistograms(render_view, histogram_snapshots_.get()); 215 new PageLoadHistograms(render_view, histogram_snapshots_.get());
216 new PrintWebViewHelper(render_view); 216 new PrintWebViewHelper(render_view);
217 new SearchBox(render_view); 217 new SearchBox(render_view);
218 new SpellCheckProvider(render_view, spellcheck_.get()); 218 spellcheck_provider_ = new SpellCheckProvider(render_view, spellcheck_.get());
219 #if defined(ENABLE_SAFE_BROWSING) 219 #if defined(ENABLE_SAFE_BROWSING)
220 safe_browsing::MalwareDOMDetails::Create(render_view); 220 safe_browsing::MalwareDOMDetails::Create(render_view);
221 #endif 221 #endif
222 222
223 #if defined(OS_MACOSX) 223 #if defined(OS_MACOSX)
224 new TextInputClientObserver(render_view); 224 new TextInputClientObserver(render_view);
225 #endif // defined(OS_MACOSX) 225 #endif // defined(OS_MACOSX)
226 226
227 PasswordAutofillManager* password_autofill_manager = 227 PasswordAutofillManager* password_autofill_manager =
228 new PasswordAutofillManager(render_view); 228 new PasswordAutofillManager(render_view);
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 // uninstalled. 685 // uninstalled.
686 if (old_url == new_url) { 686 if (old_url == new_url) {
687 bool is_extension_url = !!extensions->GetByURL(new_url); 687 bool is_extension_url = !!extensions->GetByURL(new_url);
688 if (is_extension_url != extension_dispatcher_->is_extension_process()) 688 if (is_extension_url != extension_dispatcher_->is_extension_process())
689 return true; 689 return true;
690 } 690 }
691 691
692 return !extensions->InSameExtent(old_url, new_url); 692 return !extensions->InSameExtent(old_url, new_url);
693 } 693 }
694 694
695 void ChromeContentRendererClient::OnPurgeMemory() {
696 DVLOG(1) << "Resetting spellcheck in renderer client";
697 RenderThread* thread = RenderThread::current();
698 if (spellcheck_.get())
699 thread->RemoveObserver(spellcheck_.get());
700 SpellCheck* new_spellcheck = new SpellCheck();
701 if (spellcheck_provider_)
702 spellcheck_provider_->SetSpellCheck(new_spellcheck);
703 spellcheck_.reset(new_spellcheck);
704 thread->AddObserver(new_spellcheck);
705 }
706
695 } // namespace chrome 707 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.h ('k') | chrome/renderer/chrome_render_process_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698