servo/components/script/dom/bindings/codegen/Bindings.conf
Daniel Adams fc0d4d8157
crypto: Begin SubtleCrypto implementation (#33628)
* Update IDLs and Bindings conf

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

* Add AES crate

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

* Implement DOM interfaces

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

* IDL tidy

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

* Remove deriveKey from inRealms for now until implemented

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

* Fix CryptoKey rustdoc comments

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

* Move string constants to top of file

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

* Use properly rooted CryptoKey

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

* Code clarity

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

* Rework NormalizedAlgorithm to not hold a DOMString

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

* Add Rustdoc for CryptoKey interface

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

* Move ignore mallocsizeof to rand crate, remove from crypto

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

* Update cargo lock

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

* Fix key handling, implement exportKey with JWK TODO

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

* Add missing spec link

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

* Use create_buffer_source, remove aes dep from libservo

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

* Fix crash when running in worker

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

* Update expectations

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

* fmt

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

* Move CryptoKey and SubtleCrypto behind pref for now

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

* Update expectations

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

* Readd timeout expectation

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

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
2024-10-08 03:51:08 +00:00

225 lines
4.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 = {
'AbstractRange': {
'weakReferenceable': True,
},
'AudioContext': {
'inRealms': ['Close', 'Suspend'],
},
'BaseAudioContext': {
'inRealms': ['DecodeAudioData', 'Resume'],
},
'Blob': {
'weakReferenceable': True,
},
'Bluetooth': {
'inRealms': ['GetAvailability', 'RequestDevice'],
},
'BluetoothDevice': {
'inRealms': ['WatchAdvertisements'],
},
'BluetoothRemoteGATTCharacteristic': {
'inRealms': ['ReadValue', 'StartNotifications', 'StopNotifications', 'WriteValue'],
},
'BluetoothRemoteGATTDescriptor': {
'inRealms': ['ReadValue', 'WriteValue'],
},
'BluetoothRemoteGATTServer': {
'inRealms': ['Connect'],
},
'CustomElementRegistry': {
'inRealms': ['WhenDefined'],
},
'DOMImplementation': {
'canGc': ['CreateDocument', 'CreateHTMLDocument'],
},
'DOMParser': {
'canGc': ['ParseFromString'],
},
'Document': {
'canGc': ['Close', 'CreateElement', 'CreateElementNS', 'ImportNode', 'SetTitle', 'Write', 'Writeln'],
},
'DynamicModuleOwner': {
'inRealms': ['PromiseAttribute'],
},
'Element': {
'canGc': ['InsertAdjacentHTML', 'SetInnerHTML', 'SetOuterHTML'],
},
'EventSource': {
'weakReferenceable': True,
},
'File': {
'weakReferenceable': True,
},
'GPU': {
'inRealms': ['RequestAdapter'],
},
'GPUAdapter': {
'inRealms': ['RequestAdapterInfo', 'RequestDevice'],
},
'GPUBuffer': {
'inRealms': ['MapAsync'],
},
'GPUDevice': {
'inRealms': [
'CreateComputePipelineAsync',
'CreateRenderPipelineAsync',
'CreateShaderModule', # Creates promise for compilation info
'PopErrorScope'
],
'weakReferenceable': True, # for usage in GlobalScope https://github.com/servo/servo/issues/32519
},
'GamepadHapticActuator': {
'inRealms': ['PlayEffect', 'Reset']
},
'HTMLMediaElement': {
'canGc': ['Load', 'Pause', 'Play', 'SetSrcObject'],
'inRealms': ['Play'],
},
'HTMLTemplateElement': {
'canGc': ['Content'],
},
'MediaDevices': {
'inRealms': ['GetUserMedia'],
},
'MediaQueryList': {
'weakReferenceable': True,
},
'MessagePort': {
'weakReferenceable': True,
},
'NavigationPreloadManager': {
'inRealms': ['Disable', 'Enable', 'GetState', 'SetHeaderValue'],
},
'Navigator': {
'inRealms': ['GetVRDisplays'],
},
'Node': {
'canGc': ['CloneNode'],
},
'OfflineAudioContext': {
'inRealms': ['StartRendering'],
},
'Promise': {
'spiderMonkeyInterface': True,
},
'RTCPeerConnection': {
'inRealms': ['AddIceCandidate', 'CreateAnswer', 'CreateOffer', 'SetLocalDescription', 'SetRemoteDescription'],
},
'Range': {
'canGc': ['CloneContents', 'CloneRange', 'CreateContextualFragment', 'ExtractContents', 'SurroundContents'],
'weakReferenceable': True,
},
'Selection': {
'canGc': ['Collapse', 'CollapseToEnd', 'CollapseToStart', 'Extend', 'SelectAllChildren', 'SetBaseAndExtent', 'SetPosition'],
},
'ServiceWorkerContainer': {
'inRealms': ['Register'],
},
'StaticRange': {
'weakReferenceable': True,
},
#FIXME(jdm): This should be 'register': False, but then we don't generate enum types
'TestBinding': {
'inRealms': ['PromiseAttribute', 'PromiseNativeHandler'],
},
'TestWorklet': {
'inRealms': ['AddModule'],
},
'URL': {
'weakReferenceable': True,
},
'VRDisplay': {
'inRealms': ['ExitPresent', 'RequestPresent'],
},
'Window': {
'canGc': ['Stop'],
'inRealms': ['Fetch', 'GetOpener'],
},
'WindowProxy' : {
'path': 'crate::dom::windowproxy::WindowProxy',
'register': False,
},
'WorkerGlobalScope': {
'inRealms': ['Fetch'],
},
'Worklet': {
'inRealms': ['AddModule'],
},
'XMLHttpRequest': {
'canGc': ['GetResponseXML', 'Response'],
},
'XRSession': {
'inRealms': ['RequestReferenceSpace', 'UpdateRenderState', 'UpdateTargetFrameRate'],
},
'XRSystem': {
'inRealms': ['RequestSession', 'SupportsSessionMode'],
},
'SubtleCrypto': {
'inRealms': ['GenerateKey', 'ExportKey']
}
}