diff options
-rw-r--r-- | chrome/browser/renderer_host/browser_render_process_host.cc | 11 |
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())); |