1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
fuchsia_web / webengine / web_instance.cml [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.
// 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",
"fuchsia.sysmem2.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/42050308): Migrate to `fuchsia.scheduler`.
"fuchsia.media.ProfileProvider",
"fuchsia.scheduler.RoleManager",
// Optionally used by the tracing service.
// TODO(crbug.com/42050521): 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/40875562): 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/40875562): 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/40875562): 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/42050280): Add ContextFeatureFlag and reference here.
"fuchsia.camera3.DeviceWatcher",
],
availability: "optional",
},
],
}