blob: 27ffa5ccab6b0627311687dbe0fbbcf5770d1a01 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/public/app/content_renderer_manifest.h"
#include "base/no_destructor.h"
#include "content/public/app/v8_snapshot_overlay_manifest.h"
#include "content/public/common/service_names.mojom.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
namespace content {
const service_manager::Manifest& GetContentRendererManifest() {
static base::NoDestructor<service_manager::Manifest> manifest{
service_manager::ManifestBuilder()
.WithServiceName(mojom::kRendererServiceName)
.WithDisplayName("Content (renderer process)")
.ExposeCapability(
"browser",
std::set<const char*>{
"blink.mojom.CodeCacheHost",
"blink.mojom.CrashMemoryMetricsReporter",
"blink.mojom.LeakDetector",
"blink.mojom.OomIntervention",
"blink.mojom.SharedWorkerFactory",
"blink.mojom.WebDatabase",
"content.mojom.Child",
"content.mojom.ChildControl",
"content.mojom.ChildHistogramFetcher",
"content.mojom.ChildHistogramFetcherFactory",
"content.mojom.FrameFactory",
"content.mojom.MhtmlFileWriter",
"content.mojom.RenderWidgetWindowTreeClientFactory",
"content.mojom.ResourceUsageReporter",
"IPC.mojom.ChannelBootstrap",
"visitedlink.mojom.VisitedLinkNotificationSink",
"web_cache.mojom.WebCache",
})
.RequireCapability("font_service", "font_service")
.RequireCapability("*", "app")
.RequireCapability("metrics", "url_keyed_metrics")
.RequireCapability("ui", "discardable_memory")
.RequireCapability("ui", "gpu_client")
.RequireCapability("device", "device:hid")
.RequireCapability("device", "device:power_monitor")
.RequireCapability("device", "device:screen_orientation")
.RequireCapability("device", "device:time_zone_monitor")
.RequireCapability(mojom::kBrowserServiceName, "dwrite_font_proxy")
.RequireCapability(mojom::kSystemServiceName, "dwrite_font_proxy")
.RequireCapability(mojom::kSystemServiceName, "field_trials")
.RequireCapability(mojom::kBrowserServiceName, "renderer")
.RequireCapability(mojom::kSystemServiceName, "renderer")
.RequireCapability(mojom::kSystemServiceName, "sandbox_support")
.RequireInterfaceFilterCapability_Deprecated(
mojom::kBrowserServiceName, "navigation:shared_worker",
"renderer")
.RequireInterfaceFilterCapability_Deprecated(
mojom::kBrowserServiceName, "navigation:dedicated_worker",
"renderer")
.RequireInterfaceFilterCapability_Deprecated(
mojom::kBrowserServiceName, "navigation:service_worker",
"renderer")
.ExposeInterfaceFilterCapability_Deprecated(
"navigation:frame", "browser",
std::set<const char*>{
"blink.mojom.AppBannerController",
"blink.mojom.EngagementClient",
"blink.mojom.InstallationService",
"blink.mojom.ManifestManager",
"blink.mojom.MediaDevicesListener",
"blink.mojom.MediaStreamDeviceObserver",
"blink.mojom.TextSuggestionBackend",
"content.mojom.ImageDownloader",
"content.mojom.FrameInputHandler",
"content.mojom.FullscreenVideoElementHandler",
"content.mojom.Widget", "viz.mojom.InputTargetClient"})
.RequireInterfaceFilterCapability_Deprecated(
mojom::kBrowserServiceName, "navigation:frame", "renderer")
.Build()
.Amend(GetV8SnapshotOverlayManifest())};
return *manifest;
}
} // namespace content