blob: 0ccec1717be5c1ceebca7ba447ee5a3292cb2fc4 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
program: {
runner: "elf",
binary: "bin/test-ui-stack",
},
children: [
{
name: "realm_builder_server",
url: "#meta/realm_builder_server.cm",
},
],
collections: [
{
name: "realm_builder",
environment: "#realm_builder_env",
durability: "transient",
},
],
capabilities: [
{
protocol: [
"fuchsia.accessibility.semantics.SemanticsManager",
"fuchsia.element.GraphicalPresenter",
"fuchsia.input.interaction.Notifier",
"fuchsia.input.virtualkeyboard.ControllerCreator",
"fuchsia.input.virtualkeyboard.Manager",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.composition.Screenshot",
"fuchsia.ui.composition.TrustedFlatlandFactory",
"fuchsia.ui.display.singleton.DisplayPower",
"fuchsia.ui.display.singleton.Info",
"fuchsia.ui.display.singleton.VsyncSource",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.DeviceListenerRegistry",
"fuchsia.ui.test.input.Registry",
"fuchsia.ui.test.scene.Controller",
// Only available when is a11y is fake.
"test.accessibility.Magnifier",
],
},
],
use: [
{
protocol: "fuchsia.component.Realm",
from: "framework",
},
{
protocol: [
"fuchsia.inspect.InspectSink",
"fuchsia.logger.LogSink",
],
from: "parent/diagnostics",
},
],
offer: [
// [START collection_offers]
{
protocol: [
"fuchsia.diagnostics.ArchiveAccessor",
"fuchsia.inspect.InspectSink",
],
from: "parent",
to: [ "#realm_builder" ],
},
{
dictionary: "diagnostics",
from: "parent",
to: [
"#realm_builder",
"#realm_builder_server",
],
},
{
event_stream: [
"capability_requested",
"destroyed",
"started",
"stopped",
],
from: "parent",
to: "#realm_builder",
},
// These protocols are used by any nested component managers to
// proxy resolve and runner requests to realm builder
{
protocol: "fuchsia.component.runner.ComponentRunner",
from: "#realm_builder_server",
as: "fuchsia.component.runner.RealmBuilder",
to: [ "#realm_builder" ],
},
{
protocol: "fuchsia.component.resolution.Resolver",
from: "#realm_builder_server",
as: "fuchsia.component.resolver.RealmBuilder",
to: [ "#realm_builder" ],
},
{
protocol: [
"fuchsia.kernel.RootJobForInspect",
"fuchsia.kernel.Stats",
"fuchsia.scheduler.RoleManager",
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
"fuchsia.tracing.provider.Registry",
"fuchsia.ui.app.ViewProvider",
"fuchsia.ui.input.ImeService",
"fuchsia.vulkan.loader.Loader",
],
from: "parent",
to: "#realm_builder",
},
{
storage: "tmp",
from: "parent",
to: "#realm_builder",
},
],
expose: [
{
protocol: [
"fuchsia.accessibility.semantics.SemanticsManager",
// TODO(https://fxbug.dev/42064159): Dismiss() is only implemented for
// GFX; support is still needed for Flatland.
"fuchsia.element.GraphicalPresenter",
"fuchsia.input.interaction.Notifier",
"fuchsia.input.virtualkeyboard.ControllerCreator",
"fuchsia.input.virtualkeyboard.Manager",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.composition.ScreenCapture",
"fuchsia.ui.composition.Screenshot",
"fuchsia.ui.composition.TrustedFlatlandFactory",
"fuchsia.ui.display.singleton.DisplayPower",
"fuchsia.ui.display.singleton.Info",
"fuchsia.ui.display.singleton.VsyncSource",
"fuchsia.ui.focus.FocusChainListenerRegistry",
"fuchsia.ui.input.ImeService",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.input3.KeyEventInjector",
"fuchsia.ui.pointerinjector.Registry",
"fuchsia.ui.policy.DeviceListenerRegistry",
"fuchsia.ui.test.input.Registry",
"fuchsia.ui.test.scene.Controller",
// Only available when is a11y is fake.
"test.accessibility.Magnifier",
],
from: "self",
},
],
environments: [
{
name: "realm_builder_env",
extends: "realm",
runners: [
{
runner: "realm_builder",
from: "#realm_builder_server",
},
],
resolvers: [
{
resolver: "realm_builder_resolver",
from: "#realm_builder_server",
scheme: "realm-builder",
},
],
},
],
config: {
display_rotation: { type: "uint32" },
// If zero, uses component default configuration.
//
// `display_width_px` and `display_height_px` must be either both zero
// or both non-zero.
display_width_px: { type: "uint32" },
display_height_px: { type: "uint32" },
// If zero, uses component default configuration.
display_refresh_rate_millihertz: { type: "uint32" },
// If zero, uses component default configuration.
display_max_layer_count: { type: "uint32" },
// Structured configuration doesn't support floats.
device_pixel_ratio: {
type: "string",
max_size: 100,
},
suspend_enabled: { type: "bool" },
},
}