| // 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. |
| |
| // This shard includes the portion of the scene manager layer that is |
| // common across all production ui realms that include scene manager, but |
| // differs from test ui realms. |
| // |
| // Production ui realms should include this shard directly. |
| // |
| // This shard should include: |
| // |
| // (1) Scene manager's child declaration. Note that other shards assume the name |
| // "scene_manager". |
| // (2) Capability routes to scene manager that are the same for all production ui |
| // realms in which scene manager is present, but differ in test realms. |
| // |
| // This shard should **NOT** include: |
| // |
| // (1) Routes that are common to all production and test ui realms; these |
| // routes belong in scene_manager_base_routes.shard.cml. |
| // (2) Routes to scene manager that differ among production ui realms. |
| // (3) Routes **FROM** scene manager to other components in the ui realm; these |
| // routes belong in the target components' routing shards. |
| { |
| include: [ "//src/ui/meta/scene_manager_base_routes.shard.cml" ], |
| children: [ |
| { |
| name: "scene_manager", |
| url: "fuchsia-pkg://fuchsia.com/scene_manager#meta/scene_manager.cm", |
| }, |
| { |
| name: "sensor-config", |
| url: "fuchsia-pkg://fuchsia.com/sensor-config#meta/sensor-config.cm", |
| }, |
| ], |
| offer: [ |
| { |
| directory: "sensor-config", |
| from: "#sensor-config", |
| to: [ "#scene_manager" ], |
| rights: [ "r*" ], |
| }, |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#scene_manager" ], |
| subdir: "scene_manager", |
| }, |
| { |
| // TODO(https://fxbug.dev/324273348): Remove this capability once the clients have |
| // been migrated to services. The service capability has been added below. |
| directory: "dev-input-report", |
| from: "parent", |
| to: [ "#scene_manager" ], |
| }, |
| { |
| // This service replaces the directory capability above. |
| service: "fuchsia.input.report.Service", |
| from: "parent", |
| to: [ "#scene_manager" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.recovery.FactoryReset", |
| "fuchsia.settings.Keyboard", |
| ], |
| from: "parent", |
| to: [ "#scene_manager" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.accessibility.ColorTransform", |
| |
| // TODO(https://fxbug.dev/42050963) Magnifier is only used by gfx, not |
| // flatland. Remove when gfx is gone. |
| "fuchsia.accessibility.Magnifier", |
| "fuchsia.accessibility.scene.Provider", |
| ], |
| from: "#a11y_manager", |
| to: [ "#scene_manager" ], |
| dependency: "weak", |
| }, |
| { |
| dictionary: "diagnostics", |
| from: "parent", |
| to: [ |
| "#scene_manager", |
| "#sensor-config", |
| ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.metrics.MetricEventLoggerFactory", |
| "fuchsia.scheduler.RoleManager", |
| ], |
| from: "parent", |
| to: [ "#scene_manager" ], |
| }, |
| { |
| config: [ |
| "fuchsia.power.SuspendEnabled", |
| "fuchsia.scenic.DisplayRotation", |
| "fuchsia.ui.AttachA11yView", |
| "fuchsia.ui.DisplayPixelDensity", |
| "fuchsia.ui.EnableButtonBatonPassing", |
| "fuchsia.ui.EnableMouseBatonPassing", |
| "fuchsia.ui.EnableTouchBatonPassing", |
| "fuchsia.ui.IdleThresholdMs", |
| "fuchsia.ui.SupportedInputDevices", |
| "fuchsia.ui.ViewingDistance", |
| ], |
| from: "parent", |
| to: [ "#scene_manager" ], |
| }, |
| |
| // Routes below may only be present on certain products. |
| // We communicate this expectation to component framework |
| // with the `source_availability: "unknown"` attribute. |
| { |
| protocol: [ "fuchsia.power.system.ActivityGovernor" ], |
| from: "parent", |
| to: "#scene_manager", |
| source_availability: "unknown", |
| availability: "optional", |
| }, |
| ], |
| expose: [ |
| { |
| protocol: "fuchsia.element.GraphicalPresenter", |
| from: "#scene_manager", |
| }, |
| ], |
| } |