| 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 958 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 969 // Teardown may start in PostMainMessageLoopRun, and during teardown we | 969 // Teardown may start in PostMainMessageLoopRun, and during teardown we |
| 970 // need to be able to perform IO. | 970 // need to be able to perform IO. |
| 971 base::ThreadRestrictions::SetIOAllowed(true); | 971 base::ThreadRestrictions::SetIOAllowed(true); |
| 972 BrowserThread::PostTask( | 972 BrowserThread::PostTask( |
| 973 BrowserThread::IO, FROM_HERE, | 973 BrowserThread::IO, FROM_HERE, |
| 974 base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed), | 974 base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed), |
| 975 true)); | 975 true)); |
| 976 | 976 |
| 977 #if defined(OS_ANDROID) | 977 #if defined(OS_ANDROID) |
| 978 g_browser_main_loop_shutting_down = true; | 978 g_browser_main_loop_shutting_down = true; |
| 979 ui::ContextProviderFactory::SetInstance(nullptr); |
| 979 #endif | 980 #endif |
| 980 | 981 |
| 981 if (RenderProcessHost::run_renderer_in_process()) | 982 if (RenderProcessHost::run_renderer_in_process()) |
| 982 RenderProcessHostImpl::ShutDownInProcessRenderer(); | 983 RenderProcessHostImpl::ShutDownInProcessRenderer(); |
| 983 | 984 |
| 984 if (parts_) { | 985 if (parts_) { |
| 985 TRACE_EVENT0("shutdown", | 986 TRACE_EVENT0("shutdown", |
| 986 "BrowserMainLoop::Subsystem:PostMainMessageLoopRun"); | 987 "BrowserMainLoop::Subsystem:PostMainMessageLoopRun"); |
| 987 parts_->PostMainMessageLoopRun(); | 988 parts_->PostMainMessageLoopRun(); |
| 988 } | 989 } |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 // it here (which will block until required operations are complete) gives | 1124 // it here (which will block until required operations are complete) gives |
| 1124 // more head start for those operations to finish. | 1125 // more head start for those operations to finish. |
| 1125 { | 1126 { |
| 1126 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:ThreadPool"); | 1127 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:ThreadPool"); |
| 1127 BrowserThreadImpl::ShutdownThreadPool(); | 1128 BrowserThreadImpl::ShutdownThreadPool(); |
| 1128 } | 1129 } |
| 1129 // Must happen after the IO thread is shutdown since this may be accessed from | 1130 // Must happen after the IO thread is shutdown since this may be accessed from |
| 1130 // it. | 1131 // it. |
| 1131 { | 1132 { |
| 1132 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GPUChannelFactory"); | 1133 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GPUChannelFactory"); |
| 1133 if (BrowserGpuChannelHostFactory::instance()) { | 1134 if (BrowserGpuChannelHostFactory::instance()) |
| 1134 #if defined(OS_ANDROID) | |
| 1135 // Clean up the references to the factory before terminating it. | |
| 1136 ui::ContextProviderFactory::SetInstance(nullptr); | |
| 1137 ContextProviderFactoryImpl::Terminate(); | |
| 1138 #endif | |
| 1139 BrowserGpuChannelHostFactory::Terminate(); | 1135 BrowserGpuChannelHostFactory::Terminate(); |
| 1140 } | |
| 1141 } | 1136 } |
| 1142 | 1137 |
| 1143 // Must happen after the I/O thread is shutdown since this class lives on the | 1138 // Must happen after the I/O thread is shutdown since this class lives on the |
| 1144 // I/O thread and isn't threadsafe. | 1139 // I/O thread and isn't threadsafe. |
| 1145 { | 1140 { |
| 1146 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GamepadService"); | 1141 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GamepadService"); |
| 1147 GamepadService::GetInstance()->Terminate(); | 1142 GamepadService::GetInstance()->Terminate(); |
| 1148 } | 1143 } |
| 1149 { | 1144 { |
| 1150 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:SensorService"); | 1145 TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:SensorService"); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1211 } | 1206 } |
| 1212 #endif | 1207 #endif |
| 1213 | 1208 |
| 1214 bool always_uses_gpu = true; | 1209 bool always_uses_gpu = true; |
| 1215 bool established_gpu_channel = false; | 1210 bool established_gpu_channel = false; |
| 1216 #if defined(OS_ANDROID) | 1211 #if defined(OS_ANDROID) |
| 1217 // TODO(crbug.com/439322): This should be set to |true|. | 1212 // TODO(crbug.com/439322): This should be set to |true|. |
| 1218 established_gpu_channel = false; | 1213 established_gpu_channel = false; |
| 1219 always_uses_gpu = ShouldStartGpuProcessOnBrowserStartup(); | 1214 always_uses_gpu = ShouldStartGpuProcessOnBrowserStartup(); |
| 1220 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); | 1215 BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); |
| 1221 ContextProviderFactoryImpl::Initialize( | |
| 1222 BrowserGpuChannelHostFactory::instance()); | |
| 1223 ui::ContextProviderFactory::SetInstance( | 1216 ui::ContextProviderFactory::SetInstance( |
| 1224 ContextProviderFactoryImpl::GetInstance()); | 1217 ContextProviderFactoryImpl::GetInstance()); |
| 1225 #elif defined(USE_AURA) || defined(OS_MACOSX) | 1218 #elif defined(USE_AURA) || defined(OS_MACOSX) |
| 1226 established_gpu_channel = true; | 1219 established_gpu_channel = true; |
| 1227 if (!GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor() || | 1220 if (!GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor() || |
| 1228 parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit) || | 1221 parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit) || |
| 1229 shell::ShellIsRemote()) { | 1222 shell::ShellIsRemote()) { |
| 1230 established_gpu_channel = always_uses_gpu = false; | 1223 established_gpu_channel = always_uses_gpu = false; |
| 1231 } | 1224 } |
| 1232 gpu::GpuChannelEstablishFactory* factory = | 1225 gpu::GpuChannelEstablishFactory* factory = |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1546 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner = | 1539 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner = |
| 1547 audio_thread_->task_runner(); | 1540 audio_thread_->task_runner(); |
| 1548 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner), | 1541 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner), |
| 1549 std::move(worker_task_runner), | 1542 std::move(worker_task_runner), |
| 1550 MediaInternals::GetInstance()); | 1543 MediaInternals::GetInstance()); |
| 1551 } | 1544 } |
| 1552 CHECK(audio_manager_); | 1545 CHECK(audio_manager_); |
| 1553 } | 1546 } |
| 1554 | 1547 |
| 1555 } // namespace content | 1548 } // namespace content |
| OLD | NEW |