| // 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" }, |
| }, |
| } |