# 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 = { 'MediaQueryList': { 'weakReferenceable': True, }, 'Promise': { 'spiderMonkeyInterface': True, }, 'Range': { 'weakReferenceable': True, }, 'EventSource': { 'weakReferenceable': True, }, #FIXME(jdm): This should be 'register': False, but then we don't generate enum types 'TestBinding': { 'inCompartments': ['PromiseAttribute', 'PromiseNativeHandler'], }, 'URL': { 'weakReferenceable': True, }, 'WindowProxy' : { 'path': 'crate::dom::windowproxy::WindowProxy', 'register': False, }, 'Window': { 'inCompartments': ['Fetch'], }, 'WorkerGlobalScope': { 'inCompartments': ['Fetch'], }, 'CustomElementRegistry': { 'inCompartments': ['WhenDefined'], }, 'AudioContext': { 'inCompartments': ['Suspend', 'Close'], }, 'NavigationPreloadManager': { 'inCompartments': ['Enable', 'Disable', 'SetHeaderValue', 'GetState'], }, 'HTMLMediaElement': { 'inCompartments': ['Play'], }, 'BluetoothRemoteGATTDescriptor': { 'inCompartments': ['ReadValue', 'WriteValue'], }, 'OfflineAudioContext': { 'inCompartments': ['StartRendering'], }, 'BluetoothRemoteGATTServer': { 'inCompartments': ['Connect'], }, 'ServiceWorkerContainer': { 'inCompartments': ['Register'], }, 'Navigator': { 'inCompartments': ['GetVRDisplays'], }, 'MediaDevices': { 'inCompartments': ['GetUserMedia'], }, 'XRSession': { 'inCompartments': ['UpdateRenderState', 'RequestReferenceSpace'], }, 'Bluetooth': { 'inCompartments': ['RequestDevice', 'GetAvailability'], }, 'BaseAudioContext': { 'inCompartments': ['Resume', 'DecodeAudioData'], }, 'RTCPeerConnection': { 'inCompartments': ['AddIceCandidate', 'CreateOffer', 'CreateAnswer', 'SetLocalDescription', 'SetRemoteDescription'], }, 'BluetoothRemoteGATTCharacteristic': { 'inCompartments': ['ReadValue', 'WriteValue', 'StartNotifications', 'StopNotifications'], }, 'VRDisplay': { 'inCompartments': ['RequestPresent', 'ExitPresent'], }, 'Worklet': { 'inCompartments': ['AddModule'], }, 'TestWorklet': { 'inCompartments': ['AddModule'], }, 'BluetoothDevice': { 'inCompartments': ['WatchAdvertisements'], }, 'XR': { 'inCompartments': ['SupportsSessionMode', 'RequestSession'], } }