Skip to content

Commit

Permalink
Move Renderer processes off Service Manager
Browse files Browse the repository at this point in the history
Migrates Renderer processes to use the simpler ChildProcess IPC
interface in place of deprecated Service Manager IPC.

Support for preloaded files in service manifest definitions is
effectively removed in favor of explicit parameters on
BrowserChildProcessHost and ChildProcessLauncher. The only use case (V8
snapshot files) has been migrated from manifest data to a simple map
definition, and it's used during renderer and utility process launching.

After this CL, only utility processes remain to be moved off of Service
Manager IPC.

NOPRESUBMIT=true

Bug: 977637
Change-Id: I1d8205cb73ead904aa21b85d6cbee11cb3fc84f5
Tbr: boliu@chromium.org
Tbr: yucliu@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1918375
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#717920}
  • Loading branch information
krockot authored and Commit Bot committed Nov 22, 2019
1 parent 95c9acf commit 45cef59
Show file tree
Hide file tree
Showing 58 changed files with 231 additions and 913 deletions.
2 changes: 0 additions & 2 deletions android_webview/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ source_set("browser") {
"aw_content_browser_client.h",
"aw_content_browser_overlay_manifest.cc",
"aw_content_browser_overlay_manifest.h",
"aw_content_renderer_overlay_manifest.cc",
"aw_content_renderer_overlay_manifest.h",
"aw_contents.cc",
"aw_contents.h",
"aw_contents_client_bridge.cc",
Expand Down
4 changes: 0 additions & 4 deletions android_webview/browser/OWNERS
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
per-file aw_content_renderer_overlay_manifest.cc=set noparent
per-file aw_content_renderer_overlay_manifest.cc=file://ipc/SECURITY_OWNERS
per-file aw_content_browser_overlay_manifest.h=set noparent
per-file aw_content_browser_overlay_manifest.h=file://ipc/SECURITY_OWNERS
per-file aw_content_renderer_overlay_manifest.h=set noparent
per-file aw_content_renderer_overlay_manifest.h=file://ipc/SECURITY_OWNERS
per-file aw_content_browser_overlay_manifest.cc=set noparent
per-file aw_content_browser_overlay_manifest.cc=file://ipc/SECURITY_OWNERS
3 changes: 0 additions & 3 deletions android_webview/browser/aw_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include "android_webview/browser/aw_browser_context.h"
#include "android_webview/browser/aw_browser_main_parts.h"
#include "android_webview/browser/aw_content_browser_overlay_manifest.h"
#include "android_webview/browser/aw_content_renderer_overlay_manifest.h"
#include "android_webview/browser/aw_contents.h"
#include "android_webview/browser/aw_contents_client_bridge.h"
#include "android_webview/browser/aw_contents_io_thread_client.h"
Expand Down Expand Up @@ -697,8 +696,6 @@ base::Optional<service_manager::Manifest>
AwContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
if (name == content::mojom::kBrowserServiceName)
return GetAWContentBrowserOverlayManifest();
if (name == content::mojom::kRendererServiceName)
return GetAWContentRendererOverlayManifest();
return base::nullopt;
}

Expand Down
31 changes: 0 additions & 31 deletions android_webview/browser/aw_content_renderer_overlay_manifest.cc

This file was deleted.

19 changes: 0 additions & 19 deletions android_webview/browser/aw_content_renderer_overlay_manifest.h

This file was deleted.

42 changes: 0 additions & 42 deletions chrome/app/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -478,47 +478,6 @@ source_set("chrome_content_browser_overlay_manifest") {
}
}

source_set("chrome_content_renderer_overlay_manifest") {
sources = [
"chrome_content_renderer_overlay_manifest.cc",
"chrome_content_renderer_overlay_manifest.h",
]

deps = [
"//base",
"//base/allocator:buildflags",
"//chrome/common:mojo_bindings",
"//chrome/common:search_mojom",
"//components/autofill/content/common/mojom",
"//components/dom_distiller/content/common/mojom",
"//components/metrics/public/mojom:call_stack_mojo_bindings",
"//components/rappor/public/mojom",
"//components/safe_browsing:buildflags",
"//components/safe_browsing/common:interfaces",
"//components/services/heap_profiling/public/mojom",
"//components/subresource_filter/content/mojom",
"//extensions/buildflags",
"//services/service_manager/public/cpp",
"//third_party/blink/public/common",
]

if (is_linux) {
deps += [ "//chrome/common/performance_manager/mojom" ]
}

if (is_chromeos) {
deps += [ "//chromeos/services/network_config/public/mojom" ]
}

if (is_mac) {
deps += [ "//components/spellcheck/common:interfaces" ]
}

if (enable_extensions) {
deps += [ "//extensions/common:mojom" ]
}
}

source_set("builtin_service_manifests") {
sources = [
"builtin_service_manifests.cc",
Expand All @@ -545,6 +504,5 @@ source_set("chrome_service_manifests") {
public_deps = [
":builtin_service_manifests",
":chrome_content_browser_overlay_manifest",
":chrome_content_renderer_overlay_manifest",
]
}
12 changes: 0 additions & 12 deletions chrome/app/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,5 @@ specific_include_rules = {
"+services/resource_coordinator/public",
"+third_party/blink/public/mojom",
],
"chrome_content_renderer_overlay_manifest\.cc": [
"+base/allocator",
"+chrome/common/performance_manager/mojom",
"+chromeos/services/network_config/public",
"+components/autofill/content/common",
"+components/dom_distiller/content/common",
"+components/spellcheck/common",
"+components/subresource_filter/content/mojom",
"+extensions/buildflags",
"+extensions/common",
"+third_party/blink/public/mojom",
],
}

4 changes: 0 additions & 4 deletions chrome/app/OWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,3 @@ per-file chrome_content_browser_overlay_manifest.cc=set noparent
per-file chrome_content_browser_overlay_manifest.cc=file://ipc/SECURITY_OWNERS
per-file chrome_content_browser_overlay_manifest.h=set noparent
per-file chrome_content_browser_overlay_manifest.h=file://ipc/SECURITY_OWNERS
per-file chrome_content_renderer_overlay_manifest.cc=set noparent
per-file chrome_content_renderer_overlay_manifest.cc=file://ipc/SECURITY_OWNERS
per-file chrome_content_renderer_overlay_manifest.h=set noparent
per-file chrome_content_renderer_overlay_manifest.h=file://ipc/SECURITY_OWNERS
98 changes: 0 additions & 98 deletions chrome/app/chrome_content_renderer_overlay_manifest.cc

This file was deleted.

15 changes: 0 additions & 15 deletions chrome/app/chrome_content_renderer_overlay_manifest.h

This file was deleted.

3 changes: 0 additions & 3 deletions chrome/browser/chrome_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
#include "build/build_config.h"
#include "chrome/app/builtin_service_manifests.h"
#include "chrome/app/chrome_content_browser_overlay_manifest.h"
#include "chrome/app/chrome_content_renderer_overlay_manifest.h"
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/accessibility_labels_service_factory.h"
#include "chrome/browser/after_startup_task_utils.h"
Expand Down Expand Up @@ -3706,8 +3705,6 @@ base::Optional<service_manager::Manifest>
ChromeContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
if (name == content::mojom::kBrowserServiceName)
return GetChromeContentBrowserOverlayManifest();
if (name == content::mojom::kRendererServiceName)
return GetChromeContentRendererOverlayManifest();
return base::nullopt;
}

Expand Down
2 changes: 0 additions & 2 deletions chromecast/browser/cast_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -654,8 +654,6 @@ CastContentBrowserClient::GetServiceManifestOverlay(
base::StringPiece service_name) {
if (service_name == content::mojom::kBrowserServiceName)
return GetCastContentBrowserOverlayManifest();
if (service_name == content::mojom::kRendererServiceName)
return GetCastContentRendererOverlayManifest();

return base::nullopt;
}
Expand Down
20 changes: 0 additions & 20 deletions chromecast/browser/cast_overlay_manifests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,8 @@
#include "build/build_config.h"
#include "chromecast/chromecast_buildflags.h"
#include "chromecast/common/mojom/application_media_capabilities.mojom.h"
#include "chromecast/common/mojom/feature_manager.mojom.h"
#include "chromecast/common/mojom/media_caps.mojom.h"
#include "chromecast/common/mojom/media_playback_options.mojom.h"
#include "chromecast/common/mojom/memory_pressure.mojom.h"
#include "chromecast/common/mojom/queryable_data_store.mojom.h"
#include "media/mojo/services/media_manifest.h"
#include "services/service_manager/public/cpp/manifest_builder.h"

Expand All @@ -23,7 +20,6 @@
#if defined(USE_INTERNAL_OVERLAY_MANIFESTS)
#include "chromecast/internal/shell/browser/cast_content_browser_internal_manifest_overlay.h"
#include "chromecast/internal/shell/browser/cast_content_packaged_services_internal_manifest_overlay.h"
#include "chromecast/internal/shell/browser/cast_content_renderer_internal_manifest_overlay.h"
#endif

namespace chromecast {
Expand All @@ -48,22 +44,6 @@ const service_manager::Manifest& GetCastContentBrowserOverlayManifest() {
return *manifest;
}

const service_manager::Manifest& GetCastContentRendererOverlayManifest() {
static base::NoDestructor<service_manager::Manifest> manifest {
service_manager::ManifestBuilder()
.ExposeInterfaceFilterCapability_Deprecated(
"navigation:frame", "browser",
service_manager::Manifest::InterfaceList<
mojom::FeatureManager, mojom::MediaPlaybackOptions,
mojom::QueryableDataStore>())
.Build()
#if defined(USE_INTERNAL_OVERLAY_MANIFESTS)
.Amend(cast_content_renderer_internal_manifest_overlay::GetManifest())
#endif
};
return *manifest;
}

const service_manager::Manifest&
GetCastContentPackagedServicesOverlayManifest() {
static base::NoDestructor<service_manager::Manifest> manifest {
Expand Down
5 changes: 0 additions & 5 deletions chromecast/browser/cast_overlay_manifests.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@ namespace shell {
// required by content_browser service instances.
const service_manager::Manifest& GetCastContentBrowserOverlayManifest();

// Returns the manifest Cast amends to Content's content_renderer service
// manifest. This allows Cast to extend the capabilities exposed and/or
// required by content_renderer service instances.
const service_manager::Manifest& GetCastContentRendererOverlayManifest();

// Returns the manifest Cast amends to Content's content_packaged_services
// service manifest. This allows Cast to extend the set of in- and out-of-
// process services packaged by the browser.
Expand Down
3 changes: 3 additions & 0 deletions content/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ jumbo_source_set("browser") {
"//content/common:mojo_bindings",
"//content/public/app:service_manifests",
"//content/public/common:common_sources",
"//content/public/common:content_descriptor_keys",
"//crypto",
"//device/base",
"//device/bluetooth",
Expand Down Expand Up @@ -1809,6 +1810,8 @@ jumbo_source_set("browser") {
"utility_process_host.cc",
"utility_process_host.h",
"utility_process_host_receiver_bindings.cc",
"v8_snapshot_files.cc",
"v8_snapshot_files.h",
"video_capture_service.cc",
"wake_lock/wake_lock_context_host.cc",
"wake_lock/wake_lock_context_host.h",
Expand Down
Loading

0 comments on commit 45cef59

Please sign in to comment.