Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #include "content/browser/browser_main_loop.h" | 5 #include "content/browser/browser_main_loop.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1113 // data during shutdown, so the blocking pool needs to be available. There | 1113 // data during shutdown, so the blocking pool needs to be available. There |
| 1114 // may also be slow operations pending that will blcok shutdown, so closing | 1114 // may also be slow operations pending that will blcok shutdown, so closing |
| 1115 // it here (which will block until required operations are complete) gives | 1115 // it here (which will block until required operations are complete) gives |
| 1116 // more head start for those operations to finish. | 1116 // more head start for those operations to finish. |
| 1117 { | 1117 { |
| 1118 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:ThreadPool"); | 1118 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:ThreadPool"); |
| 1119 BrowserThreadImpl::ShutdownThreadPool(); | 1119 BrowserThreadImpl::ShutdownThreadPool(); |
| 1120 } | 1120 } |
| 1121 // Must happen after the IO thread is shutdown since this may be accessed from | 1121 // Must happen after the IO thread is shutdown since this may be accessed from |
| 1122 // it. | 1122 // it. |
| 1123 if (!shell::ShellIsRemote()) { | 1123 { |
| 1124 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GPUChannelFactory"); | 1124 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GPUChannelFactory"); |
| 1125 if (BrowserGpuChannelHostFactory::instance()) | 1125 if (BrowserGpuChannelHostFactory::instance()) |
| 1126 BrowserGpuChannelHostFactory::Terminate(); | 1126 BrowserGpuChannelHostFactory::Terminate(); |
| 1127 } | 1127 } |
| 1128 | 1128 |
| 1129 // Must happen after the I/O thread is shutdown since this class lives on the | 1129 // Must happen after the I/O thread is shutdown since this class lives on the |
| 1130 // I/O thread and isn't threadsafe. | 1130 // I/O thread and isn't threadsafe. |
| 1131 { | 1131 { |
| 1132 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GamepadService"); | 1132 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GamepadService"); |
| 1133 GamepadService::GetInstance()->Terminate(); | 1133 GamepadService::GetInstance()->Terminate(); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1204 established_gpu_channel = false; | 1204 established_gpu_channel = false; |
| 1205 always_uses_gpu = ShouldStartGpuProcessOnBrowserStartup(); | 1205 always_uses_gpu = ShouldStartGpuProcessOnBrowserStartup(); |
| 1206 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); | 1206 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); |
| 1207 #elif defined(USE_AURA) || defined(OS_MACOSX) | 1207 #elif defined(USE_AURA) || defined(OS_MACOSX) |
| 1208 established_gpu_channel = true; | 1208 established_gpu_channel = true; |
| 1209 if (!GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor() || | 1209 if (!GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor() || |
| 1210 parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit) || | 1210 parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit) || |
| 1211 shell::ShellIsRemote()) { | 1211 shell::ShellIsRemote()) { |
| 1212 established_gpu_channel = always_uses_gpu = false; | 1212 established_gpu_channel = always_uses_gpu = false; |
| 1213 } | 1213 } |
| 1214 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); | 1214 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); |
|
piman
2016/08/08 15:36:30
Should we avoid doing this if we use the ContentCl
sadrul
2016/08/08 16:25:32
I initially did this, but BrowserGpuChannelHostFac
| |
| 1215 ImageTransportFactory::Initialize(); | 1215 ImageTransportFactory::Initialize(); |
| 1216 | |
| 1217 gpu::GpuChannelEstablishFactory* factory = | |
| 1218 GetContentClient()->browser()->GetGpuChannelEstablishFactory(); | |
| 1219 if (!factory) | |
| 1220 factory = BrowserGpuChannelHostFactory::instance(); | |
| 1221 DCHECK(factory); | |
| 1222 ImageTransportFactory::GetInstance()->SetGpuChannelEstablishFactory(factory); | |
| 1216 #if defined(USE_AURA) | 1223 #if defined(USE_AURA) |
| 1217 bool use_mus_in_renderer = base::CommandLine::ForCurrentProcess()->HasSwitch( | 1224 bool use_mus_in_renderer = base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1218 switches::kUseMusInRenderer); | 1225 switches::kUseMusInRenderer); |
| 1219 if (aura::Env::GetInstance() && !use_mus_in_renderer) { | 1226 if (aura::Env::GetInstance() && !use_mus_in_renderer) { |
| 1220 aura::Env::GetInstance()->set_context_factory(GetContextFactory()); | 1227 aura::Env::GetInstance()->set_context_factory(GetContextFactory()); |
| 1221 } | 1228 } |
| 1222 #endif // defined(USE_AURA) | 1229 #endif // defined(USE_AURA) |
| 1223 #endif // defined(OS_ANDROID) | 1230 #endif // defined(OS_ANDROID) |
| 1224 | 1231 |
| 1225 // Enable the GpuMemoryBuffer dump provider with IO thread affinity. Note that | 1232 // Enable the GpuMemoryBuffer dump provider with IO thread affinity. Note that |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1508 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner = | 1515 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner = |
| 1509 audio_thread_->task_runner(); | 1516 audio_thread_->task_runner(); |
| 1510 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner), | 1517 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner), |
| 1511 std::move(worker_task_runner), | 1518 std::move(worker_task_runner), |
| 1512 MediaInternals::GetInstance()); | 1519 MediaInternals::GetInstance()); |
| 1513 } | 1520 } |
| 1514 CHECK(audio_manager_); | 1521 CHECK(audio_manager_); |
| 1515 } | 1522 } |
| 1516 | 1523 |
| 1517 } // namespace content | 1524 } // namespace content |
| OLD | NEW |