servo/components/script/dom/bindings/codegen/Bindings.conf
Daniel Adams 2c17de7fa7
Gamepad: Implement GamepadHapticActuator (#32046)
* Implement Servo side of GamepadHapticActuator

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Get build working

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Create effect handling on embedder side

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update tracing for GamepadHapticEffect

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update gilrs to point to commit with effect complete event

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Implement playing and preempting haptic effects

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update IDL to add trigger rumble

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update WPT expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Handle stopping haptic effects from reset()

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* ./mach fmt, fix test-tidy issues

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add extra validity checks for trigger rumble

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Retrieve supported haptic effects from embedder

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Fix test expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add missing spec link, pin gilrs commit

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* servoshell cargo formatting

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Fix Cargo.toml

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Additional comments, realm proof, naming

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* ./mach fmt

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update gilrs rev to gilrs-core 0.5.12 release

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Implement sequence ids for gamepad haptic promises

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Take playing effect promise instead of cloning

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Implement listener for reset function

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Fix Cargo.lock

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Restructure IPC listeners, add comments, handle visibility change

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Check that haptic effect still exists before handling ff completion event

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Visibility steps, add InRealm bindings for promises

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add Gamepad EmbedderMsg arms to egl servo_glue

Signed-off-by: Daniel Adams <msub2official@gmail.com>

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
2024-07-20 06:29:27 +00:00

185 lines
3.5 KiB
Text

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# DOM Bindings Configuration.
#
# The WebIDL interfaces are defined in dom/webidls. For each such interface,
# there is a corresponding entry in the configuration table below.
# The configuration table maps each interface name to a |descriptor|.
#
# Valid fields for all descriptors:
# * outerObjectHook: string to use in place of default value for outerObject and thisObject
# JS class hooks
DOMInterfaces = {
'Blob': {
'weakReferenceable': True,
},
'File': {
'weakReferenceable': True,
},
'MediaQueryList': {
'weakReferenceable': True,
},
'Promise': {
'spiderMonkeyInterface': True,
},
'AbstractRange': {
'weakReferenceable': True,
},
'StaticRange': {
'weakReferenceable': True,
},
'Range': {
'weakReferenceable': True,
},
'EventSource': {
'weakReferenceable': True,
},
'MessagePort': {
'weakReferenceable': True,
},
#FIXME(jdm): This should be 'register': False, but then we don't generate enum types
'TestBinding': {
'inRealms': ['PromiseAttribute', 'PromiseNativeHandler'],
},
'DynamicModuleOwner': {
'inRealms': ['PromiseAttribute'],
},
'URL': {
'weakReferenceable': True,
},
'WindowProxy' : {
'path': 'crate::dom::windowproxy::WindowProxy',
'register': False,
},
'Window': {
'inRealms': ['Fetch', 'Opener'],
},
'WorkerGlobalScope': {
'inRealms': ['Fetch'],
},
'CustomElementRegistry': {
'inRealms': ['WhenDefined'],
},
'AudioContext': {
'inRealms': ['Suspend', 'Close'],
},
'NavigationPreloadManager': {
'inRealms': ['Enable', 'Disable', 'SetHeaderValue', 'GetState'],
},
'HTMLMediaElement': {
'inRealms': ['Play'],
},
'BluetoothRemoteGATTDescriptor': {
'inRealms': ['ReadValue', 'WriteValue'],
},
'OfflineAudioContext': {
'inRealms': ['StartRendering'],
},
'BluetoothRemoteGATTServer': {
'inRealms': ['Connect'],
},
'ServiceWorkerContainer': {
'inRealms': ['Register'],
},
'Navigator': {
'inRealms': ['GetVRDisplays'],
},
'MediaDevices': {
'inRealms': ['GetUserMedia'],
},
'XRSession': {
'inRealms': ['UpdateRenderState', 'RequestReferenceSpace'],
},
'Bluetooth': {
'inRealms': ['RequestDevice', 'GetAvailability'],
},
'BaseAudioContext': {
'inRealms': ['Resume', 'DecodeAudioData'],
},
'RTCPeerConnection': {
'inRealms': ['AddIceCandidate', 'CreateOffer', 'CreateAnswer', 'SetLocalDescription', 'SetRemoteDescription'],
},
'BluetoothRemoteGATTCharacteristic': {
'inRealms': ['ReadValue', 'WriteValue', 'StartNotifications', 'StopNotifications'],
},
'VRDisplay': {
'inRealms': ['RequestPresent', 'ExitPresent'],
},
'Worklet': {
'inRealms': ['AddModule'],
},
'TestWorklet': {
'inRealms': ['AddModule'],
},
'BluetoothDevice': {
'inRealms': ['WatchAdvertisements'],
},
'XRSystem': {
'inRealms': ['SupportsSessionMode', 'RequestSession'],
},
'GPU': {
'inRealms': ['RequestAdapter'],
},
'GPUAdapter': {
'inRealms': ['RequestDevice', 'RequestAdapterInfo'],
},
'GPUBuffer': {
'inRealms': ['MapAsync'],
},
'GPUDevice': {
'weakReferenceable': True, # for usage in GlobalScope https://github.com/servo/servo/issues/32519
'inRealms': [
'PopErrorScope',
'CreateComputePipelineAsync',
'CreateRenderPipelineAsync',
'CreateShaderModule' # Creates promise for compilation info
],
},
'GamepadHapticActuator': {
'inRealms': ['PlayEffect', 'Reset']
}
}