| 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 "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/feature_list.h" | 9 #include "base/feature_list.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 | 163 |
| 164 #if defined(USE_X11) | 164 #if defined(USE_X11) |
| 165 #include "ui/gfx/x/x11_connection.h" | 165 #include "ui/gfx/x/x11_connection.h" |
| 166 #include "ui/gfx/x/x11_types.h" | 166 #include "ui/gfx/x/x11_types.h" |
| 167 #endif | 167 #endif |
| 168 | 168 |
| 169 #if defined(USE_NSS_CERTS) || !defined(USE_OPENSSL) | 169 #if defined(USE_NSS_CERTS) || !defined(USE_OPENSSL) |
| 170 #include "crypto/nss_util.h" | 170 #include "crypto/nss_util.h" |
| 171 #endif | 171 #endif |
| 172 | 172 |
| 173 #if defined(MOJO_SHELL_CLIENT) |
| 174 #include "components/mus/public/interfaces/window_manager.mojom.h" |
| 175 #include "content/common/mojo/mojo_shell_connection_impl.h" |
| 176 #include "mojo/application/public/cpp/application_impl.h" |
| 177 #include "mojo/converters/network/network_type_converters.h" |
| 178 #include "ui/views/mus/window_manager_connection.h" |
| 179 #endif |
| 180 |
| 173 // One of the linux specific headers defines this as a macro. | 181 // One of the linux specific headers defines this as a macro. |
| 174 #ifdef DestroyAll | 182 #ifdef DestroyAll |
| 175 #undef DestroyAll | 183 #undef DestroyAll |
| 176 #endif | 184 #endif |
| 177 | 185 |
| 178 namespace content { | 186 namespace content { |
| 179 namespace { | 187 namespace { |
| 180 | 188 |
| 181 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) | 189 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) |
| 182 void SetupSandbox(const base::CommandLine& parsed_command_line) { | 190 void SetupSandbox(const base::CommandLine& parsed_command_line) { |
| (...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 NOTREACHED(); | 904 NOTREACHED(); |
| 897 } | 905 } |
| 898 | 906 |
| 899 TRACE_EVENT_END0("startup", "BrowserMainLoop::CreateThreads:start"); | 907 TRACE_EVENT_END0("startup", "BrowserMainLoop::CreateThreads:start"); |
| 900 } | 908 } |
| 901 created_threads_ = true; | 909 created_threads_ = true; |
| 902 return result_code_; | 910 return result_code_; |
| 903 } | 911 } |
| 904 | 912 |
| 905 int BrowserMainLoop::PreMainMessageLoopRun() { | 913 int BrowserMainLoop::PreMainMessageLoopRun() { |
| 914 #if defined(MOJO_SHELL_CLIENT) |
| 915 if (IsRunningInMojoShell()) { |
| 916 MojoShellConnectionImpl::Create(); |
| 917 #if defined(USE_AURA) |
| 918 mus::mojom::WindowManagerPtr window_manager; |
| 919 mojo::ApplicationImpl* application = |
| 920 MojoShellConnection::Get()->GetApplication(); |
| 921 application->ConnectToService( |
| 922 mojo::URLRequest::From(std::string("mojo:example_wm")), |
| 923 &window_manager); |
| 924 views::WindowManagerConnection::Create(window_manager.Pass(), application); |
| 925 #endif |
| 926 } |
| 927 #endif |
| 928 |
| 906 if (parts_) { | 929 if (parts_) { |
| 907 TRACE_EVENT0("startup", | 930 TRACE_EVENT0("startup", |
| 908 "BrowserMainLoop::CreateThreads:PreMainMessageLoopRun"); | 931 "BrowserMainLoop::CreateThreads:PreMainMessageLoopRun"); |
| 909 TRACK_SCOPED_REGION( | 932 TRACK_SCOPED_REGION( |
| 910 "Startup", "BrowserMainLoop::PreMainMessageLoopRun"); | 933 "Startup", "BrowserMainLoop::PreMainMessageLoopRun"); |
| 911 | 934 |
| 912 parts_->PreMainMessageLoopRun(); | 935 parts_->PreMainMessageLoopRun(); |
| 913 } | 936 } |
| 914 | 937 |
| 915 // If the UI thread blocks, the whole UI is unresponsive. | 938 // If the UI thread blocks, the whole UI is unresponsive. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 942 TRACE_EVENT0("shutdown", "BrowserMainLoop::ShutdownThreadsAndCleanUp"); | 965 TRACE_EVENT0("shutdown", "BrowserMainLoop::ShutdownThreadsAndCleanUp"); |
| 943 | 966 |
| 944 // Teardown may start in PostMainMessageLoopRun, and during teardown we | 967 // Teardown may start in PostMainMessageLoopRun, and during teardown we |
| 945 // need to be able to perform IO. | 968 // need to be able to perform IO. |
| 946 base::ThreadRestrictions::SetIOAllowed(true); | 969 base::ThreadRestrictions::SetIOAllowed(true); |
| 947 BrowserThread::PostTask( | 970 BrowserThread::PostTask( |
| 948 BrowserThread::IO, FROM_HERE, | 971 BrowserThread::IO, FROM_HERE, |
| 949 base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed), | 972 base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed), |
| 950 true)); | 973 true)); |
| 951 | 974 |
| 975 #if defined(MOJO_SHELL_CLIENT) |
| 976 MojoShellConnection::Destroy(); |
| 977 #endif |
| 952 mojo_ipc_support_.reset(); | 978 mojo_ipc_support_.reset(); |
| 953 mojo_shell_context_.reset(); | 979 mojo_shell_context_.reset(); |
| 954 | 980 |
| 955 #if !defined(OS_IOS) | 981 #if !defined(OS_IOS) |
| 956 if (RenderProcessHost::run_renderer_in_process()) | 982 if (RenderProcessHost::run_renderer_in_process()) |
| 957 RenderProcessHostImpl::ShutDownInProcessRenderer(); | 983 RenderProcessHostImpl::ShutDownInProcessRenderer(); |
| 958 #endif | 984 #endif |
| 959 | 985 |
| 960 if (parts_) { | 986 if (parts_) { |
| 961 TRACE_EVENT0("shutdown", | 987 TRACE_EVENT0("shutdown", |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1428 DCHECK(is_tracing_startup_for_duration_); | 1454 DCHECK(is_tracing_startup_for_duration_); |
| 1429 | 1455 |
| 1430 is_tracing_startup_for_duration_ = false; | 1456 is_tracing_startup_for_duration_ = false; |
| 1431 TracingController::GetInstance()->StopTracing( | 1457 TracingController::GetInstance()->StopTracing( |
| 1432 TracingController::CreateFileSink( | 1458 TracingController::CreateFileSink( |
| 1433 startup_trace_file_, | 1459 startup_trace_file_, |
| 1434 base::Bind(OnStoppedStartupTracing, startup_trace_file_))); | 1460 base::Bind(OnStoppedStartupTracing, startup_trace_file_))); |
| 1435 } | 1461 } |
| 1436 | 1462 |
| 1437 } // namespace content | 1463 } // namespace content |
| OLD | NEW |