Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #include <algorithm> | 10 #include <algorithm> |
| 11 #include <limits> | 11 #include <limits> |
| (...skipping 2227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2239 // background thread. If the UI thread invokes this API just when it is | 2239 // background thread. If the UI thread invokes this API just when it is |
| 2240 // intercepted the stack is messed up on return from the interceptor | 2240 // intercepted the stack is messed up on return from the interceptor |
| 2241 // which causes random crashes in the browser process. Our hack for now | 2241 // which causes random crashes in the browser process. Our hack for now |
| 2242 // is to not invoke the SetPriorityClass API if the dll is loaded. | 2242 // is to not invoke the SetPriorityClass API if the dll is loaded. |
| 2243 if (GetModuleHandle(L"cbstext.dll")) | 2243 if (GetModuleHandle(L"cbstext.dll")) |
| 2244 return; | 2244 return; |
| 2245 #endif // OS_WIN | 2245 #endif // OS_WIN |
| 2246 | 2246 |
| 2247 #if defined(OS_WIN) | 2247 #if defined(OS_WIN) |
| 2248 // Same as below, but bound to an experiment (http://crbug.com/458594) | 2248 // Same as below, but bound to an experiment (http://crbug.com/458594) |
| 2249 // initially on Windows. Enabled by default in the asbence of field trials to | 2249 // initially on Windows. Enabled by default in the absence of field trials to |
| 2250 // get coverage on the perf waterfall. | 2250 // get coverage on the perf waterfall. |
| 2251 base::FieldTrial* trial = | 2251 base::FieldTrial* trial = |
| 2252 base::FieldTrialList::Find("BackgroundRendererProcesses"); | 2252 base::FieldTrialList::Find("BackgroundRendererProcesses"); |
| 2253 if (!trial || trial->group_name() != "Disallow") | 2253 if (!trial || trial->group_name() != "Disallow") |
| 2254 child_process_launcher_->SetProcessBackgrounded(backgrounded); | 2254 child_process_launcher_->SetProcessBackgrounded(backgrounded); |
| 2255 #elif defined(OS_MACOSX) | |
| 2256 // Same as below, but bound to an experiment (http://crbug.com/458594) . | |
| 2257 // Disabled by default (perf waterfall coverage will come through a new | |
| 2258 // telemetry benchmark). | |
| 2259 const std::string trial_group_name = | |
| 2260 base::FieldTrialList::FindFullName("BackgroundRendererProcesses"); | |
| 2261 if (!trial_group_name.empty() && trial_group_name != "Disallow") { | |
|
Alexei Svitkine (slow)
2015/04/23 20:53:28
This pattern makes it impossible to have a Control
| |
| 2262 child_process_launcher_->SetProcessBackgrounded(backgrounded); | |
| 2263 } | |
| 2255 #else | 2264 #else |
| 2256 // Control the background state from the browser process, otherwise the task | 2265 // Control the background state from the browser process, otherwise the task |
| 2257 // telling the renderer to "unbackground" itself may be preempted by other | 2266 // telling the renderer to "unbackground" itself may be preempted by other |
| 2258 // tasks executing at lowered priority ahead of it or simply by not being | 2267 // tasks executing at lowered priority ahead of it or simply by not being |
| 2259 // swiftly scheduled by the OS per the low process priority | 2268 // swiftly scheduled by the OS per the low process priority |
| 2260 // (http://crbug.com/398103). | 2269 // (http://crbug.com/398103). |
| 2261 child_process_launcher_->SetProcessBackgrounded(backgrounded); | 2270 child_process_launcher_->SetProcessBackgrounded(backgrounded); |
| 2262 #endif // OS_WIN | 2271 #endif // OS_WIN |
| 2263 | 2272 |
| 2264 // Notify the child process of background state. | 2273 // Notify the child process of background state. |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2480 if (worker_ref_count_ == 0) | 2489 if (worker_ref_count_ == 0) |
| 2481 Cleanup(); | 2490 Cleanup(); |
| 2482 } | 2491 } |
| 2483 | 2492 |
| 2484 void RenderProcessHostImpl::GetAudioOutputControllers( | 2493 void RenderProcessHostImpl::GetAudioOutputControllers( |
| 2485 const GetAudioOutputControllersCallback& callback) const { | 2494 const GetAudioOutputControllersCallback& callback) const { |
| 2486 audio_renderer_host()->GetOutputControllers(callback); | 2495 audio_renderer_host()->GetOutputControllers(callback); |
| 2487 } | 2496 } |
| 2488 | 2497 |
| 2489 } // namespace content | 2498 } // namespace content |
| OLD | NEW |