summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/renderer_host/browser_render_process_host.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
index 0a27032..83d59f0 100644
--- a/chrome/browser/renderer_host/browser_render_process_host.cc
+++ b/chrome/browser/renderer_host/browser_render_process_host.cc
@@ -972,8 +972,15 @@ void BrowserRenderProcessHost::Observe(NotificationType type,
}
void BrowserRenderProcessHost::OnProcessLaunched() {
- // Now that the process is created, set its backgrounding accordingly.
- SetBackgrounded(backgrounded_);
+ // At this point, we used to set the process priority if it were marked as
+ // backgrounded_. We don't do that anymore because when we create a process,
+ // we really don't know how it will be used. If it is backgrounded, and not
+ // yet processed, a stray hung-cpu process (not chrome) can cause pages to
+ // not load at all. (see http://crbug.com/21884).
+ // If we could perfectly track when a process is created as visible or not,
+ // we could potentially call SetBackgrounded() properly at this point. But
+ // there are many cases, and no effective way to automate those cases.
+ // I'm choosing correctness over the feature of de-prioritizing this work.
Send(new ViewMsg_SetIsIncognitoProcess(profile()->IsOffTheRecord()));