| // 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. |
| |
| // A component manifest used by WebInstanceHost when creating a Context for |
| // which the caller does not provide a service_directory in its |
| // CreateContextParams. |
| { |
| include: [ |
| "//fuchsia_web/webengine/web_instance-common.shard.cml", |
| "inspect/client.shard.cml", |
| "syslog/client.shard.cml", |
| ], |
| |
| // These uses are based on https://fuchsia.dev/reference/fidl/fuchsia.web, |
| // especially |
| // https://fuchsia.dev/reference/fidl/fuchsia.web#CreateContextParams. |
| use: [ |
| { |
| // Required capabilities for all configurations. |
| protocol: [ |
| "fuchsia.buildinfo.Provider", |
| "fuchsia.device.NameProvider", |
| "fuchsia.fonts.Provider", |
| "fuchsia.hwinfo.Product", |
| "fuchsia.intl.PropertyProvider", |
| // "fuchsia.kernel.VmexResource" is optional below. |
| // "fuchsia.logger/LogSink", is included by the shard above. |
| "fuchsia.memorypressure.Provider", |
| "fuchsia.process.Launcher", |
| "fuchsia.sysmem.Allocator", |
| ], |
| }, |
| { |
| // Optional capabilities, dependent on `ContextFeatureFlags` and other |
| // optional functionality. Protocols for `ContextFeatureFlags` are listed |
| // in the order in which they are defined. after those for other |
| // functionality. |
| 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): Provide conditionally when enabled. |
| "fuchsia.tracing.perfetto.ProducerConnector", |
| |
| // Required for `Frame.SetPreferredTheme(DEFAULT)`. |
| "fuchsia.settings.Display", |
| |
| // Required by `ContextFeatureFlags.NETWORK`. |
| "fuchsia.net.interfaces.State", |
| "fuchsia.net.name.Lookup", |
| "fuchsia.posix.socket.Provider", |
| |
| // Required by `ContextFeatureFlags.AUDIO`. |
| "fuchsia.media.Audio", |
| "fuchsia.media.AudioDeviceEnumerator", |
| "fuchsia.media.SessionAudioConsumerFactory", |
| |
| // Required by `ContextFeatureFlags.VULKAN`. |
| // These are the protocols not already required that |
| //`vulkan/client.shard.cml` provides. That shard cannot be used because |
| // it *requires* the Loader protocol. |
| // "fuchsia.tracing.provider.Registry" is optionally used by the |
| // tracing service. |
| "fuchsia.vulkan.loader.Loader", |
| "fuchsia.tracing.provider.Registry", |
| |
| // Required by `ContextFeatureFlags.HARDWARE_VIDEO_DECODER`. |
| "fuchsia.mediacodec.CodecFactory", |
| |
| // Required by `ContextFeatureFlags.WIDEVINE_CDM`. |
| // Only needed in builds with enable_widevine=true. |
| // TODO(crbug.com/1379411): Move to a shard. |
| "fuchsia.media.drm.Widevine", |
| |
| // Required by CreateContextParams.playready_key_system. |
| // Only needed in builds with enable_widevine && enable_cast_receiver. |
| // TODO(crbug.com/1379411): Move to a shard. |
| "fuchsia.media.drm.PlayReady", |
| |
| // When `ContextFeatureFlags.HEADLESS` is not set, required to use |
| // `Frame.CreateView*()`. |
| "fuchsia.accessibility.semantics.SemanticsManager", |
| "fuchsia.ui.composition.Allocator", |
| "fuchsia.ui.composition.Flatland", |
| |
| // Required by `ContextFeatureFlags.LEGACY_METRICS`. |
| // Only needed in enable_cast_receiver=true builds. |
| // TODO(crbug.com/1379411): Move to a shard. |
| "fuchsia.legacymetrics.MetricsRecorder", |
| |
| // Required by `ContextFeatureFlags.KEYBOARD`. |
| "fuchsia.ui.input3.Keyboard", |
| |
| // Required by `ContextFeatureFlags.VIRTUAL_KEYBOARD`. |
| "fuchsia.input.virtualkeyboard.ControllerCreator", |
| |
| // When `ContextFeatureFlags.DISABLE_DYNAMIC_CODE_GENERATION` is not |
| // set, required for JavaScript & WebAssembly. |
| "fuchsia.kernel.VmexResource", |
| |
| // Required for camera access. |
| // TODO(crbug.com/1209031): Add ContextFeatureFlag and reference here. |
| "fuchsia.camera3.DeviceWatcher", |
| ], |
| availability: "optional", |
| }, |
| ], |
| } |