New issue
Advanced search Search tips

Issue 666605 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Connect all child processes to the service manager

Project Member Reported by sa...@chromium.org, Nov 18 2016

Issue description

Following  issue 623396 , most child processes expose their ChannelMojo connections to their parent process via the service manager. This tracks converting the remainder:
- NaCl loader and broker processes
- service utility process
- replay process
and removing kMojoChannelToken (and its one other use in chrome/utility/importer/firefox_importer_unittest_utils_mac.cc)
 

Comment 1 by sa...@chromium.org, Dec 16 2016

Issue 674450 has been merged into this issue.
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b0375b64246a09f6df36b55274138f9748741b7

commit 2b0375b64246a09f6df36b55274138f9748741b7
Author: sammc <sammc@chromium.org>
Date: Thu Dec 22 01:26:17 2016

Change the NaCl loader and broker processes to use the ServiceManager.

This is the first child process outside of content to be connected to
the ServiceManager so this CL adds a way for content embedders to
provide additional service manifests via ContentBrowserClient. This
would introduce an unnecessary string copy when obtaining service
manifest overlays, so this changes that API to take a StringPiece.

BUG= 666605 
TBR=kmarshall@chromium.org

Review-Url: https://codereview.chromium.org/2501913002
Cr-Commit-Position: refs/heads/master@{#440299}

[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/android_webview/browser/aw_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/android_webview/browser/aw_content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/blimp/engine/app/blimp_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/blimp/engine/app/blimp_content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chrome/browser/browser_resources.grd
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chromecast/browser/cast_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/chromecast/browser/cast_content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/DEPS
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/broker/BUILD.gn
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/broker/OWNERS
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/broker/nacl_broker_listener.cc
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/broker/nacl_broker_manifest.json
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/browser/nacl_broker_host_win.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/browser/nacl_process_host.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/browser/nacl_process_host.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/BUILD.gn
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/DEPS
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/nacl_constants.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/nacl_constants.h
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/nacl_service.cc
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/common/nacl_service.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/BUILD.gn
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/OWNERS
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nacl_helper_linux.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nacl_helper_win_64.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nacl_listener.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nacl_listener.h
[add] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nacl_loader_manifest.json
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nonsfi/nonsfi_listener.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/components/nacl/loader/nonsfi/nonsfi_listener.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/BUILD.gn
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/browser/browser_child_process_host_impl.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/public/browser/browser_child_process_host.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/public/browser/content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/shell/browser/shell_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/shell/browser/shell_content_browser_client.h
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/content/zygote/zygote_linux.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/headless/lib/browser/headless_content_browser_client.cc
[modify] https://crrev.com/2b0375b64246a09f6df36b55274138f9748741b7/headless/lib/browser/headless_content_browser_client.h

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/146658672ac9fadfa9be2a0124853ac5d1f3db19

commit 146658672ac9fadfa9be2a0124853ac5d1f3db19
Author: Sam McNally <sammc@chromium.org>
Date: Thu Jul 20 07:16:10 2017

Remove the deprecated Channel creation API for content child processes.

Remove the deprecated ChildProcessHost::CreateChannelMojo overload
and migrate its final user (service utility process) to the other
overload. This requires the service process to directly connect to the
service_manager.mojom.Service interface to bind interfaces and claim to
be the browser service when binding interfaces so ChildThreadImpl allows
the IPC bootstrap request.

Change replay process to support the non-deprecated approach of using
the initial mojo handle as a service_manager::mojom::ServiceRequest.

Change chrome/utility/importer/firefox_importer_unittest_utils_mac.cc
to define its own constant for the channel token and remove the shared
content::switches::kMojoChannelToken.

Bug:  666605 
Change-Id: Ib0721eecae5f53373262d320ebeb23745b62c7c1
Reviewed-on: https://chromium-review.googlesource.com/564914
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488159}
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/chrome/service/DEPS
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/chrome/service/service_utility_process_host.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/chrome/service/service_utility_process_host.h
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/child/child_thread_impl.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/common/child_process_host_impl.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/common/child_process_host_impl.h
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/public/common/child_process_host.h
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/public/common/mojo_channel_switches.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/content/public/common/mojo_channel_switches.h
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/tools/ipc_fuzzer/message_replay/replay_process.cc
[modify] https://crrev.com/146658672ac9fadfa9be2a0124853ac5d1f3db19/tools/ipc_fuzzer/message_replay/replay_process.h

Comment 4 by sa...@chromium.org, Aug 15 2017

Status: Fixed (was: Started)
Service utility process isn't really connecting to service manager, but it's as close as it's likely to get. kMojoChannelToken and its legacy codepath is gone at least.

Sign in to add a comment