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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 10073002: TabContents -> WebContentsImpl, part 11. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missed a few Created 8 years, 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "content/browser/renderer_host/render_process_host_impl.h" 8 #include "content/browser/renderer_host/render_process_host_impl.h"
9 9
10 #if defined(OS_WIN) 10 #if defined(OS_WIN)
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 static size_t g_max_renderer_count_override = 0; 223 static size_t g_max_renderer_count_override = 0;
224 224
225 // static 225 // static
226 size_t content::RenderProcessHost::GetMaxRendererProcessCount() { 226 size_t content::RenderProcessHost::GetMaxRendererProcessCount() {
227 if (g_max_renderer_count_override) 227 if (g_max_renderer_count_override)
228 return g_max_renderer_count_override; 228 return g_max_renderer_count_override;
229 229
230 // Defines the maximum number of renderer processes according to the 230 // Defines the maximum number of renderer processes according to the
231 // amount of installed memory as reported by the OS. The calculation 231 // amount of installed memory as reported by the OS. The calculation
232 // assumes that you want the renderers to use half of the installed 232 // assumes that you want the renderers to use half of the installed
233 // RAM and assuming that each tab uses ~40MB. 233 // RAM and assuming that each WebContents uses ~40MB.
234 // If you modify this assumption, you need to adjust the 234 // If you modify this assumption, you need to adjust the
235 // ThirtyFourTabs test to match the expected number of processes. 235 // ThirtyFourTabs test to match the expected number of processes.
236 // 236 //
237 // With the given amounts of installed memory below on a 32-bit CPU, 237 // With the given amounts of installed memory below on a 32-bit CPU,
238 // the maximum renderer count will roughly be as follows: 238 // the maximum renderer count will roughly be as follows:
239 // 239 //
240 // 128 MB -> 3 240 // 128 MB -> 3
241 // 512 MB -> 6 241 // 512 MB -> 6
242 // 1024 MB -> 12 242 // 1024 MB -> 12
243 // 4096 MB -> 51 243 // 4096 MB -> 51
244 // 16384 MB -> 82 (kMaxRendererProcessCount) 244 // 16384 MB -> 82 (kMaxRendererProcessCount)
245 245
246 static size_t max_count = 0; 246 static size_t max_count = 0;
247 if (!max_count) { 247 if (!max_count) {
248 const size_t kEstimatedTabMemoryUsage = 248 const size_t kEstimatedWebContentsMemoryUsage =
249 #if defined(ARCH_CPU_64_BITS) 249 #if defined(ARCH_CPU_64_BITS)
250 60; // In MB 250 60; // In MB
251 #else 251 #else
252 40; // In MB 252 40; // In MB
253 #endif 253 #endif
254 max_count = base::SysInfo::AmountOfPhysicalMemoryMB() / 2; 254 max_count = base::SysInfo::AmountOfPhysicalMemoryMB() / 2;
255 max_count /= kEstimatedTabMemoryUsage; 255 max_count /= kEstimatedWebContentsMemoryUsage;
256 256
257 const size_t kMinRendererProcessCount = 3; 257 const size_t kMinRendererProcessCount = 3;
258 max_count = std::max(max_count, kMinRendererProcessCount); 258 max_count = std::max(max_count, kMinRendererProcessCount);
259 max_count = std::min(max_count, content::kMaxRendererProcessCount); 259 max_count = std::min(max_count, content::kMaxRendererProcessCount);
260 } 260 }
261 return max_count; 261 return max_count;
262 } 262 }
263 263
264 // static 264 // static
265 bool g_run_renderer_in_process_ = false; 265 bool g_run_renderer_in_process_ = false;
(...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 // this object is not deleted at this point and may be reused later. 1256 // this object is not deleted at this point and may be reused later.
1257 // TODO(darin): clean this up 1257 // TODO(darin): clean this up
1258 } 1258 }
1259 1259
1260 void RenderProcessHostImpl::OnShutdownRequest() { 1260 void RenderProcessHostImpl::OnShutdownRequest() {
1261 // Don't shut down if there are more RenderViews than the one asking to 1261 // Don't shut down if there are more RenderViews than the one asking to
1262 // close, or if there are pending RenderViews being swapped back in. 1262 // close, or if there are pending RenderViews being swapped back in.
1263 if (pending_views_ || render_widget_hosts_.size() > 1) 1263 if (pending_views_ || render_widget_hosts_.size() > 1)
1264 return; 1264 return;
1265 1265
1266 // Notify any tabs that might have swapped out renderers from this process. 1266 // Notify any contents that might have swapped out renderers from this
1267 // They should not attempt to swap them back in. 1267 // process. They should not attempt to swap them back in.
1268 content::NotificationService::current()->Notify( 1268 content::NotificationService::current()->Notify(
1269 content::NOTIFICATION_RENDERER_PROCESS_CLOSING, 1269 content::NOTIFICATION_RENDERER_PROCESS_CLOSING,
1270 content::Source<RenderProcessHost>(this), 1270 content::Source<RenderProcessHost>(this),
1271 content::NotificationService::NoDetails()); 1271 content::NotificationService::NoDetails());
1272 1272
1273 Send(new ChildProcessMsg_Shutdown()); 1273 Send(new ChildProcessMsg_Shutdown());
1274 } 1274 }
1275 1275
1276 void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) { 1276 void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) {
1277 SetSuddenTerminationAllowed(enabled); 1277 SetSuddenTerminationAllowed(enabled);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1346 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) { 1346 void RenderProcessHostImpl::OnRevealFolderInOS(const FilePath& path) {
1347 // Only honor the request if appropriate persmissions are granted. 1347 // Only honor the request if appropriate persmissions are granted.
1348 if (ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(GetID(), 1348 if (ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(GetID(),
1349 path)) 1349 path))
1350 content::GetContentClient()->browser()->OpenItem(path); 1350 content::GetContentClient()->browser()->OpenItem(path);
1351 } 1351 }
1352 1352
1353 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) { 1353 void RenderProcessHostImpl::OnSavedPageAsMHTML(int job_id, int64 data_size) {
1354 MHTMLGenerationManager::GetInstance()->MHTMLGenerated(job_id, data_size); 1354 MHTMLGenerationManager::GetInstance()->MHTMLGenerated(job_id, data_size);
1355 } 1355 }
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.h ('k') | content/browser/renderer_host/render_view_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698