blob: 966fbbf4201610662f7c8e4d53fdd69dd4edc9f6 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
include: [
// CML shards intended for tests are used here because this component is
// launched as a test. While it doesn't fit the typical use-case for a test
// component, it's a useful way to be able to launch the component from a
// host tool and have it run somewhere it can get the capabilities it needs
// to function correctly.
// TODO(crbug.com/1410937): Run as a non-test component.
"//build/config/fuchsia/test/chromium_system_test_facet.shard.test-cml",
"//build/config/fuchsia/test/elf_test_runner.shard.test-cml",
"sys/component/realm_builder_absolute.shard.cml",
"syslog/client.shard.cml",
],
program: {
binary: "cast_streaming_shell_exe",
},
offer: [
{
// Required capabilities for WebInstanceHost in a child Component.
protocol: [
"fuchsia.feedback.ComponentDataRegister",
"fuchsia.feedback.CrashReportingProductRegister",
],
from: "parent",
to: "#realm_builder",
},
// Offered for use by the relaunched
// `fuchsia_web/shell/web_engine_shell_for_web_instance_host.cml`
// TODO(crbug.com/1410937): Remove when running as a non-test component and
// thus the relaunch is no longer needed.
{
protocol: [
// Required to display the View in Scene Manager unless running in
// `--headless` mode.
"fuchsia.element.GraphicalPresenter",
],
from: "parent",
to: "#realm_builder",
availability: "optional",
},
// The remaining are offered from the parent to `web_instance.cm` via
// `RealmBuilder` when not in `--use-context-provider` mode.
{
// The chromium test realm offers the system-wide config-data dir to test
// components. Route the web_engine sub-directory of this as required by
// WebInstanceHost.
directory: "config-data",
from: "parent",
as: "config-data-for-web-instance",
to: "#realm_builder",
subdir: "web_engine",
availability: "optional",
},
{
// Holds ICU time zone data files.
// See:
// https://fuchsia.dev/fuchsia-src/concepts/process/namespaces?typical_directory_structure
directory: "tzdata-icu",
from: "parent",
to: "#realm_builder",
},
{
// Required by `fuchsia.web/ContextFeatureFlags.NETWORK`.
directory: "root-ssl-certificates",
from: "parent",
to: "#realm_builder",
},
{
// Required capabilities for all WebInstance configurations.
protocol: [
"fuchsia.buildinfo.Provider",
"fuchsia.device.NameProvider",
"fuchsia.fonts.Provider",
"fuchsia.hwinfo.Product",
"fuchsia.intl.PropertyProvider",
// "fuchsia.logger/LogSink", is included by the shard above.
"fuchsia.memorypressure.Provider",
"fuchsia.process.Launcher",
"fuchsia.sysmem.Allocator",
],
from: "parent",
to: "#realm_builder",
},
{
protocol: [
// Allows CPU scheduling profiles to be applied to threads to
// tune their performance, especially for media rendering.
// TODO(crbug.com/1224707): Migrate to `fuchsia.scheduler`.
"fuchsia.media.ProfileProvider",
// Optionally used by the tracing service.
// TODO(crbug.com/1364196): Offer only when enabled.
"fuchsia.tracing.perfetto.ProducerConnector",
],
from: "parent",
to: "#realm_builder",
availability: "optional",
},
{
protocol: [
// Required by `fuchsia.web/ContextFeatureFlags.NETWORK`.
"fuchsia.net.interfaces.State",
"fuchsia.net.name.Lookup",
"fuchsia.posix.socket.Provider",
// Required by `fuchsia.web/ContextFeatureFlags.AUDIO`.
"fuchsia.media.Audio",
"fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.SessionAudioConsumerFactory",
// Required by `fuchsia.web/ContextFeatureFlags.VULKAN`.
// "fuchsia.tracing.provider.Registry" is optionally used by the
// tracing service.
"fuchsia.tracing.provider.Registry",
"fuchsia.vulkan.loader.Loader",
// Required by `fuchsia.web/ContextFeatureFlags.HARDWARE_VIDEO_DECODER`.
"fuchsia.mediacodec.CodecFactory",
],
from: "parent",
to: "#realm_builder",
},
{
protocol: [
// Required by the absence of
// `fuchsia.web/ContextFeatureFlags.HEADLESS`.
"fuchsia.accessibility.semantics.SemanticsManager",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
],
from: "parent",
to: "#realm_builder",
},
{
protocol: [
// Required by the absence of
// `fuchsia.web/ContextFeatureFlags.DISABLE_DYNAMIC_CODE_GENERATION`.
"fuchsia.kernel.VmexResource",
],
from: "parent",
to: "#realm_builder",
},
],
facets: {
// TODO(crbug.com/1410937): Remove when converting to a non-test component.
"fuchsia.test": {
"deprecated-allowed-packages": [ "web_engine" ],
},
},
}