Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(397)

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 1554443003: Stop linking in the old Mojo EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge and fix new flaky test Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/browser/mojo/mojo_shell_client_host.cc ('k') | content/child/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 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>
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 #include "gpu/command_buffer/client/gpu_switches.h" 158 #include "gpu/command_buffer/client/gpu_switches.h"
159 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 159 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
160 #include "gpu/command_buffer/service/gpu_switches.h" 160 #include "gpu/command_buffer/service/gpu_switches.h"
161 #include "ipc/attachment_broker.h" 161 #include "ipc/attachment_broker.h"
162 #include "ipc/attachment_broker_privileged.h" 162 #include "ipc/attachment_broker_privileged.h"
163 #include "ipc/ipc_channel.h" 163 #include "ipc/ipc_channel.h"
164 #include "ipc/ipc_logging.h" 164 #include "ipc/ipc_logging.h"
165 #include "ipc/ipc_switches.h" 165 #include "ipc/ipc_switches.h"
166 #include "ipc/mojo/ipc_channel_mojo.h" 166 #include "ipc/mojo/ipc_channel_mojo.h"
167 #include "media/base/media_switches.h" 167 #include "media/base/media_switches.h"
168 #include "mojo/edk/embedder/embedder.h"
168 #include "net/url_request/url_request_context_getter.h" 169 #include "net/url_request/url_request_context_getter.h"
169 #include "ppapi/shared_impl/ppapi_switches.h" 170 #include "ppapi/shared_impl/ppapi_switches.h"
170 #include "storage/browser/fileapi/sandbox_file_system_backend.h" 171 #include "storage/browser/fileapi/sandbox_file_system_backend.h"
171 #include "third_party/icu/source/common/unicode/unistr.h" 172 #include "third_party/icu/source/common/unicode/unistr.h"
172 #include "third_party/icu/source/i18n/unicode/timezone.h" 173 #include "third_party/icu/source/i18n/unicode/timezone.h"
173 #include "third_party/mojo/src/mojo/edk/embedder/embedder.h"
174 #include "third_party/skia/include/core/SkBitmap.h" 174 #include "third_party/skia/include/core/SkBitmap.h"
175 #include "ui/base/ui_base_switches.h" 175 #include "ui/base/ui_base_switches.h"
176 #include "ui/events/event_switches.h" 176 #include "ui/events/event_switches.h"
177 #include "ui/gfx/switches.h" 177 #include "ui/gfx/switches.h"
178 #include "ui/gl/gl_switches.h" 178 #include "ui/gl/gl_switches.h"
179 #include "ui/gl/gpu_switching_manager.h" 179 #include "ui/gl/gpu_switching_manager.h"
180 #include "ui/native_theme/native_theme_switches.h" 180 #include "ui/native_theme/native_theme_switches.h"
181 181
182 #if defined(OS_ANDROID) 182 #if defined(OS_ANDROID)
183 #include "content/browser/android/child_process_launcher_android.h" 183 #include "content/browser/android/child_process_launcher_android.h"
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1521 switches::kDisableDirectWrite, 1521 switches::kDisableDirectWrite,
1522 switches::kDisableWin32kRendererLockDown, 1522 switches::kDisableWin32kRendererLockDown,
1523 switches::kTraceExportEventsToETW, 1523 switches::kTraceExportEventsToETW,
1524 #endif 1524 #endif
1525 #if defined(USE_OZONE) 1525 #if defined(USE_OZONE)
1526 switches::kOzonePlatform, 1526 switches::kOzonePlatform,
1527 #endif 1527 #endif
1528 #if defined(OS_CHROMEOS) 1528 #if defined(OS_CHROMEOS)
1529 switches::kDisableVaapiAcceleratedVideoEncode, 1529 switches::kDisableVaapiAcceleratedVideoEncode,
1530 #endif 1530 #endif
1531 "use-new-edk", // TODO(use_chrome_edk): temporary.
1532 }; 1531 };
1533 renderer_cmd->CopySwitchesFrom(browser_cmd, kSwitchNames, 1532 renderer_cmd->CopySwitchesFrom(browser_cmd, kSwitchNames,
1534 arraysize(kSwitchNames)); 1533 arraysize(kSwitchNames));
1535 1534
1536 CopyEnableDisableFeatureFlagsToRenderer(renderer_cmd); 1535 CopyEnableDisableFeatureFlagsToRenderer(renderer_cmd);
1537 1536
1538 if (browser_cmd.HasSwitch(switches::kTraceStartup) && 1537 if (browser_cmd.HasSwitch(switches::kTraceStartup) &&
1539 BrowserMainLoop::GetInstance()->is_tracing_startup_for_duration()) { 1538 BrowserMainLoop::GetInstance()->is_tracing_startup_for_duration()) {
1540 // Pass kTraceStartup switch to renderer only if startup tracing has not 1539 // Pass kTraceStartup switch to renderer only if startup tracing has not
1541 // finished. 1540 // finished.
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
2333 // to exit. Child process will be killed in any case during 2332 // to exit. Child process will be killed in any case during
2334 // child_process_launcher_.reset(). Make sure we will not broadcast 2333 // child_process_launcher_.reset(). Make sure we will not broadcast
2335 // FrameHostMsg_RenderProcessGone with status 2334 // FrameHostMsg_RenderProcessGone with status
2336 // TERMINATION_STATUS_STILL_RUNNING, since this will break WebContentsImpl 2335 // TERMINATION_STATUS_STILL_RUNNING, since this will break WebContentsImpl
2337 // logic. 2336 // logic.
2338 status = base::TERMINATION_STATUS_PROCESS_CRASHED; 2337 status = base::TERMINATION_STATUS_PROCESS_CRASHED;
2339 } 2338 }
2340 } 2339 }
2341 2340
2342 RendererClosedDetails details(status, exit_code); 2341 RendererClosedDetails details(status, exit_code);
2343 mojo_application_host_->WillDestroySoon();
2344 2342
2345 child_process_launcher_.reset(); 2343 child_process_launcher_.reset();
2346 #if USE_ATTACHMENT_BROKER 2344 #if USE_ATTACHMENT_BROKER
2347 IPC::AttachmentBroker::GetGlobal()->DeregisterCommunicationChannel( 2345 IPC::AttachmentBroker::GetGlobal()->DeregisterCommunicationChannel(
2348 channel_.get()); 2346 channel_.get());
2349 #endif 2347 #endif
2350 channel_.reset(); 2348 channel_.reset();
2351 while (!queued_messages_.empty()) { 2349 while (!queued_messages_.empty()) {
2352 delete queued_messages_.front(); 2350 delete queued_messages_.front();
2353 queued_messages_.pop(); 2351 queued_messages_.pop();
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
2421 // RenderViews being swapped back in. 2419 // RenderViews being swapped back in.
2422 // In single process mode, we never shutdown the renderer. 2420 // In single process mode, we never shutdown the renderer.
2423 if (pending_views_ || run_renderer_in_process() || GetActiveViewCount() > 0) 2421 if (pending_views_ || run_renderer_in_process() || GetActiveViewCount() > 0)
2424 return; 2422 return;
2425 2423
2426 // Notify any contents that might have swapped out renderers from this 2424 // Notify any contents that might have swapped out renderers from this
2427 // process. They should not attempt to swap them back in. 2425 // process. They should not attempt to swap them back in.
2428 FOR_EACH_OBSERVER(RenderProcessHostObserver, observers_, 2426 FOR_EACH_OBSERVER(RenderProcessHostObserver, observers_,
2429 RenderProcessWillExit(this)); 2427 RenderProcessWillExit(this));
2430 2428
2431 mojo_application_host_->WillDestroySoon();
2432
2433 Send(new ChildProcessMsg_Shutdown()); 2429 Send(new ChildProcessMsg_Shutdown());
2434 } 2430 }
2435 2431
2436 void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) { 2432 void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) {
2437 SetSuddenTerminationAllowed(enabled); 2433 SetSuddenTerminationAllowed(enabled);
2438 } 2434 }
2439 2435
2440 void RenderProcessHostImpl::UpdateProcessPriority() { 2436 void RenderProcessHostImpl::UpdateProcessPriority() {
2441 if (!child_process_launcher_.get() || child_process_launcher_->IsStarting()) { 2437 if (!child_process_launcher_.get() || child_process_launcher_->IsStarting()) {
2442 is_process_backgrounded_ = false; 2438 is_process_backgrounded_ = false;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
2518 // ExtensionService uses this notification to initialize the renderer process 2514 // ExtensionService uses this notification to initialize the renderer process
2519 // with state that must be there before any JavaScript executes. 2515 // with state that must be there before any JavaScript executes.
2520 // 2516 //
2521 // The queued messages contain such things as "navigate". If this notification 2517 // The queued messages contain such things as "navigate". If this notification
2522 // was after, we can end up executing JavaScript before the initialization 2518 // was after, we can end up executing JavaScript before the initialization
2523 // happens. 2519 // happens.
2524 NotificationService::current()->Notify(NOTIFICATION_RENDERER_PROCESS_CREATED, 2520 NotificationService::current()->Notify(NOTIFICATION_RENDERER_PROCESS_CREATED,
2525 Source<RenderProcessHost>(this), 2521 Source<RenderProcessHost>(this),
2526 NotificationService::NoDetails()); 2522 NotificationService::NoDetails());
2527 2523
2528 if (base::CommandLine::ForCurrentProcess()->HasSwitch("use-new-edk") && 2524 if (child_process_launcher_.get()) {
2529 child_process_launcher_.get()) {
2530 base::ProcessHandle process_handle = 2525 base::ProcessHandle process_handle =
2531 child_process_launcher_->GetProcess().Handle(); 2526 child_process_launcher_->GetProcess().Handle();
2532 mojo::embedder::ScopedPlatformHandle client_pipe; 2527 mojo::edk::ScopedPlatformHandle client_pipe;
2533 #if defined(MOJO_SHELL_CLIENT) 2528 #if defined(MOJO_SHELL_CLIENT)
2534 if (IsRunningInMojoShell()) { 2529 if (IsRunningInMojoShell()) {
2535 client_pipe = RegisterProcessWithBroker( 2530 client_pipe = RegisterProcessWithBroker(
2536 child_process_launcher_->GetProcess().Pid()); 2531 child_process_launcher_->GetProcess().Pid());
2537 } else 2532 } else
2538 #endif 2533 #endif
2539 { 2534 {
2540 client_pipe = mojo::embedder::ChildProcessLaunched(process_handle); 2535 client_pipe = mojo::edk::ChildProcessLaunched(process_handle);
2541 } 2536 }
2542 Send(new ChildProcessMsg_SetMojoParentPipeHandle( 2537 Send(new ChildProcessMsg_SetMojoParentPipeHandle(
2543 IPC::GetFileHandleForProcess( 2538 IPC::GetFileHandleForProcess(client_pipe.release().handle,
2544 #if defined(OS_WIN)
2545 client_pipe.release().handle,
2546 #else
2547 client_pipe.release().fd,
2548 #endif
2549 process_handle, true))); 2539 process_handle, true)));
2550 } 2540 }
2551 2541
2552 #if defined(MOJO_SHELL_CLIENT) 2542 #if defined(MOJO_SHELL_CLIENT)
2553 // Send the mojo shell handle to the renderer. 2543 // Send the mojo shell handle to the renderer.
2554 SendExternalMojoShellHandleToChild(GetHandle(), this); 2544 SendExternalMojoShellHandleToChild(GetHandle(), this);
2555 #endif 2545 #endif
2556 2546
2557 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages. 2547 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages.
2558 // This way, Mojo can be safely used from the renderer in response to any 2548 // This way, Mojo can be safely used from the renderer in response to any
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
2763 void RenderProcessHostImpl::GetAudioOutputControllers( 2753 void RenderProcessHostImpl::GetAudioOutputControllers(
2764 const GetAudioOutputControllersCallback& callback) const { 2754 const GetAudioOutputControllersCallback& callback) const {
2765 audio_renderer_host()->GetOutputControllers(callback); 2755 audio_renderer_host()->GetOutputControllers(callback);
2766 } 2756 }
2767 2757
2768 BluetoothDispatcherHost* RenderProcessHostImpl::GetBluetoothDispatcherHost() { 2758 BluetoothDispatcherHost* RenderProcessHostImpl::GetBluetoothDispatcherHost() {
2769 return bluetooth_dispatcher_host_.get(); 2759 return bluetooth_dispatcher_host_.get();
2770 } 2760 }
2771 2761
2772 } // namespace content 2762 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/mojo/mojo_shell_client_host.cc ('k') | content/child/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698