| # 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 = { |
| |
| 'AbortController': { |
| 'canGc':['Abort'], |
| 'inRealms': ['Abort'], |
| }, |
| |
| 'AbortSignal': { |
| 'canGc':['Abort'], |
| }, |
| |
| 'AbstractRange': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'Attr': { |
| 'canGc':['SetValue'], |
| }, |
| |
| 'AudioBuffer': { |
| 'canGc':['CopyToChannel', 'GetChannelData'], |
| }, |
| |
| 'AudioContext': { |
| 'inRealms': ['Close', 'Suspend'], |
| 'canGc':['CreateMediaStreamDestination', 'CreateMediaElementSource', 'CreateMediaStreamSource', 'CreateMediaStreamTrackSource', 'Suspend', 'Close'], |
| }, |
| |
| 'BaseAudioContext': { |
| 'inRealms': ['DecodeAudioData', 'Resume', 'ParseFromString', 'GetBounds', 'GetClientRects'], |
| 'canGc': ['CreateChannelMerger', 'CreateOscillator', 'CreateStereoPanner', 'CreateGain', 'CreateIIRFilter', 'CreateBiquadFilter', 'CreateBufferSource', 'CreateAnalyser', 'CreatePanner', 'CreateChannelSplitter', 'CreateBuffer', 'CreateConstantSource', 'Resume', 'DecodeAudioData', 'Destination', 'Listener'], |
| }, |
| |
| 'Blob': { |
| 'weakReferenceable': True, |
| 'canGc': ['Slice', 'Text', 'ArrayBuffer', 'Stream', 'Bytes'], |
| 'inRealms': ['Bytes', 'ArrayBuffer'], |
| }, |
| |
| 'Bluetooth': { |
| 'inRealms': ['GetAvailability', 'RequestDevice'], |
| 'canGc': ['RequestDevice', 'GetAvailability'], |
| }, |
| |
| 'BluetoothDevice': { |
| 'inRealms': ['WatchAdvertisements'], |
| 'canGc': ['WatchAdvertisements'], |
| }, |
| |
| 'BluetoothRemoteGATTCharacteristic': { |
| 'inRealms': ['ReadValue', 'StartNotifications', 'StopNotifications', 'WriteValue'], |
| 'canGc': ['GetDescriptor', 'GetDescriptors', 'ReadValue', 'StartNotifications', 'StopNotifications', 'WriteValue'], |
| }, |
| |
| 'BluetoothRemoteGATTDescriptor': { |
| 'inRealms': ['ReadValue', 'WriteValue'], |
| 'canGc': ['ReadValue', 'WriteValue'], |
| }, |
| |
| 'BluetoothRemoteGATTServer': { |
| 'inRealms': ['Connect'], |
| 'canGc': ['GetPrimaryService', 'GetPrimaryServices', 'Connect', 'Disconnect'], |
| }, |
| |
| 'BluetoothRemoteGATTService': { |
| 'canGc': ['GetCharacteristic', 'GetCharacteristics', 'GetIncludedService', 'GetIncludedServices'], |
| }, |
| |
| 'ByteLengthQueuingStrategy': { |
| 'canGc': ['GetSize'], |
| }, |
| |
| 'CanvasRenderingContext2D': { |
| 'canGc': ['GetTransform','GetImageData', 'CreateImageData', 'CreateImageData_', 'MeasureText', 'CreateLinearGradient', 'CreatePattern', 'CreateRadialGradient'], |
| }, |
| |
| 'CharacterData': { |
| 'canGc': ['Before', 'After', 'Remove', 'ReplaceWith'] |
| }, |
| |
| 'Clipboard': { |
| 'canGc': ['ReadText', 'WriteText'] |
| }, |
| |
| 'ClipboardItem': { |
| 'canGc': ['Types'] |
| }, |
| |
| 'CookieStore': { |
| 'canGc': ['Set', 'Set_', 'Get', 'Get_', 'GetAll', 'GetAll_', 'Delete', 'Delete_'] |
| }, |
| |
| 'CountQueuingStrategy': { |
| 'canGc': ['GetSize'], |
| }, |
| |
| 'CSSGroupingRule': { |
| 'canGc': ['CssRules', 'DeleteRule', 'InsertRule'], |
| }, |
| |
| 'CSSKeyframeRule': { |
| 'canGc': ['Style'], |
| }, |
| |
| 'CSSKeyframesRule': { |
| 'canGc': ['AppendRule', 'CssRules', 'DeleteRule', 'FindRule'], |
| }, |
| |
| 'CSSLayerStatementRule': { |
| 'canGc': ['NameList'], |
| }, |
| |
| 'CSSMediaRule': { |
| 'canGc': ['Media'], |
| }, |
| |
| 'CSSNestedDeclarations': { |
| 'canGc': ['Style'], |
| }, |
| |
| 'CSSRuleList': { |
| 'canGc': ['Item', 'IndexedGetter'], |
| }, |
| |
| 'CSSStyleRule': { |
| 'canGc': ['Style'], |
| }, |
| |
| 'CSSStyleSheet': { |
| 'inRealms': ['Replace'], |
| 'canGc': ['AddRule', 'DeleteRule', 'GetCssRules', 'GetRules', 'InsertRule', 'RemoveRule', 'Replace'], |
| }, |
| |
| 'Crypto': { |
| 'canGc': ['Subtle'], |
| }, |
| |
| 'CSSStyleDeclaration': { |
| 'canGc': ['RemoveProperty', 'SetCssText', 'SetProperty', 'SetCssFloat'] |
| }, |
| |
| 'CustomElementRegistry': { |
| 'inRealms': ['WhenDefined'], |
| 'canGc': ['Define', 'WhenDefined'], |
| }, |
| |
| 'DataTransfer': { |
| 'canGc': ['Files', 'Types'] |
| }, |
| |
| 'DataTransferItem': { |
| 'canGc': ['GetAsFile'] |
| }, |
| |
| 'DataTransferItemList': { |
| 'canGc': ['IndexedGetter', 'Add', 'Add_'] |
| }, |
| |
| 'DebuggerGlobalScope': { |
| 'useSystemCompartment': True, |
| }, |
| |
| 'Document': { |
| 'additionalTraits': ["crate::interfaces::DocumentHelpers"], |
| 'canGc': ['Close', 'CreateElement', 'CreateElementNS', 'ImportNode', 'SetTitle', 'Write', 'Writeln', 'CreateEvent', 'CreateRange', 'Open', 'Open_', 'CreateComment', 'CreateAttribute', 'CreateAttributeNS', 'CreateDocumentFragment', 'CreateTextNode', 'CreateCDATASection', 'CreateProcessingInstruction', 'Prepend', 'Append', 'ReplaceChildren', 'SetBgColor', 'SetFgColor', 'Fonts', 'ExitFullscreen', 'CreateExpression', 'CreateNSResolver', 'Evaluate', 'StyleSheets', 'Implementation', 'GetElementsByTagName', 'GetElementsByTagNameNS', 'GetElementsByClassName', 'AdoptNode', 'CreateNodeIterator', 'SetBody', 'GetElementsByName', 'Images', 'Embeds', 'Plugins', 'Links', 'Forms', 'Scripts', 'Anchors', 'Applets', 'Children', 'GetSelection', 'NamedGetter', 'AdoptedStyleSheets'], |
| }, |
| |
| 'DissimilarOriginWindow': { |
| 'canGc': ['Location'] |
| }, |
| |
| 'DocumentFragment': { |
| 'canGc': ['Prepend', 'Append', 'ReplaceChildren', 'Children'] |
| }, |
| |
| 'DocumentType': { |
| 'canGc': ['Before', 'After', 'Remove', 'ReplaceWith'] |
| }, |
| |
| 'DOMImplementation': { |
| 'canGc': ['CreateDocument', 'CreateHTMLDocument', 'CreateDocumentType'], |
| }, |
| |
| 'DOMMatrix': { |
| 'canGc': ['FromMatrix', 'FromFloat32Array', 'FromFloat64Array'], |
| }, |
| |
| 'DOMMatrixReadOnly': { |
| 'canGc': ['Multiply', 'Inverse', 'Scale', 'Translate', 'Rotate', 'RotateFromVector','FlipY', 'ScaleNonUniform', 'Scale3d', 'RotateAxisAngle', 'SkewX', 'SkewY', 'FlipX', 'TransformPoint', 'FromFloat32Array', 'FromFloat64Array', 'FromMatrix', 'ToFloat32Array', 'ToFloat64Array'], |
| }, |
| |
| 'DOMParser': { |
| 'canGc': ['ParseFromString'], |
| }, |
| |
| 'DOMPoint': { |
| 'canGc': ['FromPoint'], |
| }, |
| |
| 'DOMPointReadOnly': { |
| 'canGc': ['FromPoint', 'MatrixTransform'], |
| }, |
| |
| 'DOMQuad': { |
| 'canGc': ['FromRect', 'FromQuad', 'GetBounds'], |
| }, |
| |
| 'DOMRect': { |
| 'canGc': ['FromRect'], |
| }, |
| |
| 'DOMRectReadOnly': { |
| 'canGc': ['FromRect'], |
| }, |
| |
| 'DOMStringMap': { |
| 'canGc': ['NamedDeleter', 'NamedSetter'] |
| }, |
| |
| "DOMTokenList": { |
| 'canGc': ['SetValue', 'Add', 'Remove', 'Toggle', 'Replace'] |
| }, |
| |
| 'DynamicModuleOwner': { |
| 'inRealms': ['PromiseAttribute'], |
| }, |
| |
| 'Element': { |
| 'canGc': ['SetHTMLUnsafe', 'SetInnerHTML', 'SetOuterHTML', 'InsertAdjacentHTML', 'GetClientRects', 'GetBoundingClientRect', 'InsertAdjacentText', 'ToggleAttribute', 'SetAttribute', 'SetAttributeNS', 'SetId','SetClassName','Prepend','Append','ReplaceChildren','Before','After','ReplaceWith', 'SetRole', 'SetAriaAtomic', 'SetAriaAutoComplete', 'SetAriaBrailleLabel', 'SetAriaBrailleRoleDescription', 'SetAriaBusy', 'SetAriaChecked', 'SetAriaColCount', 'SetAriaColIndex', 'SetAriaColIndexText', 'SetAriaColSpan', 'SetAriaCurrent', 'SetAriaDescription', 'SetAriaDisabled', 'SetAriaExpanded', 'SetAriaHasPopup', 'SetAriaHidden', 'SetAriaInvalid', 'SetAriaKeyShortcuts', 'SetAriaLabel', 'SetAriaLevel', 'SetAriaLive', 'SetAriaModal', 'SetAriaMultiLine', 'SetAriaMultiSelectable', 'SetAriaOrientation', 'SetAriaPlaceholder', 'SetAriaPosInSet', 'SetAriaPressed','SetAriaReadOnly', 'SetAriaRelevant', 'SetAriaRequired', 'SetAriaRoleDescription', 'SetAriaRowCount', 'SetAriaRowIndex', 'SetAriaRowIndexText', 'SetAriaRowSpan', 'SetAriaSelected', 'SetAriaSetSize','SetAriaSort', 'SetAriaValueMax', 'SetAriaValueMin', 'SetAriaValueNow', 'SetAriaValueText', 'RequestFullscreen', 'GetHTML', 'GetInnerHTML', 'GetOuterHTML', 'ClassList', 'Attributes', 'SetAttributeNode', 'SetAttributeNodeNS', 'RemoveAttribute', 'RemoveAttributeNS', 'RemoveAttributeNode', 'GetElementsByTagName', 'GetElementsByTagNameNS', 'GetElementsByClassName', 'Children', 'Remove', 'InsertAdjacentElement', 'AttachShadow'], |
| }, |
| |
| 'ElementInternals': { |
| 'canGc': ['CheckValidity', 'GetLabels', 'SetValidity', 'ReportValidity', 'States'], |
| }, |
| |
| 'EventSource': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'EventTarget': { |
| 'canGc': ['DispatchEvent'], |
| }, |
| |
| 'ExtendableMessageEvent': { |
| 'canGc': ['Ports'], |
| }, |
| |
| 'FakeXRDevice': { |
| 'canGc': ['Disconnect'], |
| }, |
| |
| 'File': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'FileReader': { |
| 'canGc': ['Abort', 'ReadAsArrayBuffer', 'ReadAsDataURL', 'ReadAsText'], |
| 'inRealms': ['ReadAsArrayBuffer', 'ReadAsDataURL', 'ReadAsText'], |
| }, |
| |
| 'FileReaderSync': { |
| 'canGc': ['ReadAsArrayBuffer'], |
| }, |
| |
| 'FontFaceSet': { |
| 'canGc': ['Load'], |
| }, |
| |
| 'GamepadHapticActuator': { |
| 'inRealms': ['PlayEffect', 'Reset'], |
| 'canGc': ['PlayEffect', 'Reset', 'Effects'], |
| }, |
| |
| 'GlobalScope': { |
| 'additionalTraits': ['crate::interfaces::GlobalScopeHelpers<Self>'], |
| }, |
| |
| 'GPU': { |
| 'inRealms': ['RequestAdapter'], |
| 'canGc': ['RequestAdapter', 'WgslLanguageFeatures'], |
| }, |
| |
| 'GPUAdapter': { |
| 'inRealms': ['RequestAdapterInfo', 'RequestDevice'], |
| 'canGc': ['RequestAdapterInfo', 'RequestDevice'], |
| }, |
| |
| 'GPUBuffer': { |
| 'inRealms': ['MapAsync'], |
| 'canGc': ['GetMappedRange', 'MapAsync'], |
| }, |
| |
| 'GPUCanvasContext': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'GPUCompilationInfo': { |
| 'canGc': ['Messages'], |
| }, |
| |
| 'GPUDevice': { |
| 'inRealms': [ |
| 'CreateComputePipelineAsync', |
| 'CreateRenderPipelineAsync', |
| 'CreateShaderModule', # Creates promise for compilation info |
| 'PopErrorScope' |
| ], |
| 'canGc': [ |
| 'CreateComputePipelineAsync', |
| 'CreateRenderPipelineAsync', |
| 'CreateShaderModule', |
| 'PopErrorScope' |
| ], |
| 'weakReferenceable': True, # for usage in GlobalScope https://github.com/servo/servo/issues/32519 |
| }, |
| |
| 'GPUQueue': { |
| 'canGc': ['OnSubmittedWorkDone'], |
| }, |
| |
| 'History': { |
| 'canGc': ['Go'], |
| }, |
| |
| "HTMLAnchorElement": { |
| "canGc": ["SetText","SetRel","SetHref", 'SetHash', 'SetHost', 'SetHostname', 'SetPassword', 'SetPathname', 'SetPort', 'SetProtocol', 'SetSearch', 'SetUsername', 'RelList'] |
| }, |
| |
| "HTMLAreaElement": { |
| "canGc": ['SetText', 'SetRel', 'SetHref', 'SetHash', 'SetHost', 'SetHostname', 'SetPassword', 'SetPathname', 'SetPort', 'SetProtocol', 'SetSearch', 'SetUsername', 'RelList'] |
| }, |
| |
| "HTMLBodyElement": { |
| "canGc": ["SetBackground"] |
| }, |
| |
| 'HTMLButtonElement': { |
| 'canGc': ['CheckValidity', 'ReportValidity','SetBackground'], |
| }, |
| |
| 'HTMLCanvasElement': { |
| 'canGc': ['CaptureStream', 'GetContext', 'SetHeight', 'SetWidth', 'TransferControlToOffscreen'], |
| 'weakReferenceable': True, |
| }, |
| |
| 'HTMLDataListElement': { |
| "canGc": ["Options"] |
| }, |
| |
| 'HTMLDialogElement': { |
| 'canGc': ['Close', 'Show'], |
| }, |
| |
| 'HTMLDocument': { |
| 'canGc': ['NamedGetter'], |
| }, |
| |
| 'HTMLElement': { |
| 'canGc': ['AttachInternals', 'Focus', 'Blur', 'Click', 'SetInnerText', 'SetOuterText', "SetTranslate", 'SetAutofocus', 'GetOnerror', 'GetOnload', 'GetOnblur', 'GetOnfocus', 'GetOnresize', 'GetOnscroll', 'Style', 'Dataset'], |
| }, |
| |
| 'HTMLFieldSetElement': { |
| 'canGc': ['CheckValidity', 'Elements', 'ReportValidity'], |
| }, |
| |
| 'HTMLFontElement': { |
| 'canGc': ['SetSize'] |
| }, |
| |
| 'HTMLFormControlsCollection': { |
| 'canGc': ['NamedGetter', 'NamedItem'], |
| }, |
| |
| 'HTMLFormElement': { |
| 'canGc': ['CheckValidity', 'Elements', 'IndexedGetter', 'NamedGetter', 'RequestSubmit', 'ReportValidity', 'Submit', 'Reset', 'SetRel', 'RelList'], |
| }, |
| |
| 'HTMLIFrameElement': { |
| 'canGc': ['Sandbox', 'SetSrcdoc'], |
| }, |
| |
| 'HTMLImageElement': { |
| 'canGc': ['RequestSubmit', 'ReportValidity', 'Reset','SetRel', 'Decode', 'SetCrossOrigin', 'SetWidth', 'SetHeight', 'SetReferrerPolicy'], |
| }, |
| |
| 'HTMLInputElement': { |
| 'canGc': ['ReportValidity', 'SetValue', 'SetValueAsNumber', 'SetValueAsDate', 'StepUp', 'StepDown', 'CheckValidity', 'ReportValidity', 'SelectFiles', 'GetLabels'], |
| }, |
| |
| 'HTMLLinkElement': { |
| 'canGc': ['GetSheet', 'SetRel', 'SetCrossOrigin', 'RelList'], |
| }, |
| |
| 'HTMLMediaElement': { |
| 'canGc': ['Load', 'Pause', 'Play', 'SetSrcObject', 'SetCrossOrigin'], |
| 'inRealms': ['Play'], |
| }, |
| |
| 'HTMLMeterElement': { |
| 'canGc': ['SetValue', 'SetMin', 'SetMax', 'SetLow', 'SetHigh', 'SetOptimum', 'CheckValidity', 'ReportValidity'] |
| }, |
| |
| 'HTMLObjectElement': { |
| 'canGc': ['CheckValidity', 'ReportValidity'], |
| }, |
| |
| 'HTMLOptionElement': { |
| 'canGc': ['SetText'] |
| }, |
| |
| 'HTMLOptionsCollection': { |
| 'canGc': ['IndexedSetter', 'SetLength', 'SetSelectedIndex'] |
| }, |
| |
| 'HTMLOutputElement': { |
| 'canGc': ['ReportValidity', 'SetDefaultValue', 'SetValue', 'CheckValidity'], |
| }, |
| |
| 'HTMLProgressElement': { |
| 'canGc': ['SetValue', 'SetMax'] |
| }, |
| |
| 'HTMLScriptElement': { |
| 'canGc': ['SetAsync', 'SetCrossOrigin', 'SetInnerText', 'SetSrc', 'SetText', 'SetTextContent'] |
| }, |
| |
| 'HTMLSelectElement': { |
| 'canGc': ['ReportValidity', 'SetLength', 'IndexedSetter', 'CheckValidity', 'SetSelectedIndex'], |
| }, |
| |
| 'HTMLTableElement': { |
| 'canGc': ['CreateCaption', 'CreateTBody', 'InsertRow', 'InsertCell', 'InsertRow', 'CreateTHead', 'CreateTFoot'] |
| }, |
| |
| 'HTMLTableRowElement': { |
| 'canGc': ['InsertCell'] |
| }, |
| |
| 'HTMLTableSectionElement': { |
| 'canGc': ['InsertRow'] |
| }, |
| |
| 'HTMLTemplateElement': { |
| 'canGc': ['Content'], |
| }, |
| |
| 'HTMLTextAreaElement': { |
| 'canGc': ['ReportValidity', 'SetDefaultValue', 'CheckValidity'], |
| }, |
| |
| 'HTMLTitleElement': { |
| 'canGc': ['SetText'] |
| }, |
| |
| 'IntersectionObserver': { |
| 'canGc': ['Thresholds'] |
| }, |
| |
| 'Location': { |
| 'canGc': ['Assign', 'Reload', 'Replace', 'SetHash', 'SetHost', 'SetHostname', 'SetHref', 'SetPathname', 'SetPort', 'SetProtocol', 'SetSearch'], |
| }, |
| |
| 'MediaDevices': { |
| 'canGc': ['GetUserMedia', 'EnumerateDevices'], |
| 'inRealms': ['GetUserMedia', 'GetClientRects', 'GetBoundingClientRect'], |
| }, |
| |
| 'MediaQueryList': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'MediaSession': { |
| 'canGc': ['GetMetadata'], |
| }, |
| |
| 'MediaStream': { |
| 'canGc': ['Clone'], |
| }, |
| |
| 'MessagePort': { |
| 'weakReferenceable': True, |
| 'canGc': ['Close', 'GetOnmessage', 'SetOnmessage', 'Start'], |
| }, |
| |
| 'MessageEvent': { |
| 'canGc': ['Ports'], |
| }, |
| |
| 'NavigationPreloadManager': { |
| 'inRealms': ['Disable', 'Enable', 'GetState', 'SetHeaderValue'], |
| 'canGc': ['Disable', 'Enable', 'GetState', 'SetHeaderValue'], |
| }, |
| |
| 'Navigator': { |
| 'inRealms': ['GetVRDisplays'], |
| 'canGc': ['Languages', 'SendBeacon'], |
| }, |
| |
| 'Node': { |
| 'canGc': ['AppendChild', 'ChildNodes', 'CloneNode', 'InsertBefore', 'Normalize', 'SetNodeValue', 'SetTextContent', 'RemoveChild', 'ReplaceChild'], |
| }, |
| |
| 'NodeIterator': { |
| 'canGc': ['NextNode', 'PreviousNode'], |
| }, |
| |
| 'Notification': { |
| 'canGc': ['RequestPermission', 'Actions', 'Vibrate'], |
| }, |
| |
| 'OfflineAudioContext': { |
| 'inRealms': ['StartRendering'], |
| 'canGc': ['StartRendering'], |
| }, |
| |
| 'OffscreenCanvas': { |
| 'canGc': ['ConvertToBlob', 'GetContext', 'SetHeight', 'SetWidth', 'TransferToImageBitmap'], |
| }, |
| |
| 'OffscreenCanvasRenderingContext2D': { |
| 'canGc': ['CreateImageData', 'CreateImageData_', 'GetImageData', 'GetTransform', 'MeasureText', 'CreateLinearGradient', 'CreatePattern', 'CreateRadialGradient'], |
| }, |
| |
| 'PaintRenderingContext2D': { |
| 'canGc': ['GetTransform'], |
| }, |
| |
| 'Performance': { |
| 'canGc': ['Mark', 'Measure'], |
| }, |
| |
| 'PerformanceObserver': { |
| 'canGc': ['SupportedEntryTypes'], |
| }, |
| |
| 'Permissions': { |
| 'canGc': ['Query', 'Request', 'Revoke'], |
| }, |
| |
| 'Promise': { |
| 'spiderMonkeyInterface': True, |
| 'additionalTraits': ["js::conversions::FromJSValConvertibleRc"] |
| }, |
| |
| 'Range': { |
| 'canGc': ['CloneContents', 'CloneRange', 'CreateContextualFragment', 'ExtractContents', 'SurroundContents', 'InsertNode', 'GetClientRects', 'GetBoundingClientRect'], |
| 'weakReferenceable': True, |
| }, |
| |
| 'Request': { |
| 'canGc': ['Headers', 'Text', 'Blob', 'FormData', 'Json', 'ArrayBuffer', 'Clone', 'Bytes'], |
| }, |
| |
| 'Response': { |
| 'canGc': ['Error', 'Redirect', 'Clone', 'CreateFromJson', 'Text', 'Blob', 'FormData', 'Json', 'ArrayBuffer', 'Headers', 'Bytes'], |
| }, |
| |
| 'RTCPeerConnection': { |
| 'inRealms': ['AddIceCandidate', 'CreateAnswer', 'CreateOffer', 'SetLocalDescription', 'SetRemoteDescription'], |
| 'canGc': ['Close', 'AddIceCandidate', 'CreateAnswer', 'CreateOffer', 'SetLocalDescription', 'SetRemoteDescription'], |
| 'weakReferenceable': True, |
| }, |
| |
| 'RTCRtpSender': { |
| 'canGc': ['SetParameters'], |
| }, |
| |
| 'Selection': { |
| 'canGc': ['Collapse', 'CollapseToEnd', 'CollapseToStart', 'Extend', 'SelectAllChildren', 'SetBaseAndExtent', 'SetPosition'], |
| }, |
| |
| 'ServiceWorkerContainer': { |
| 'inRealms': ['Register'], |
| 'canGc': ['Register'], |
| }, |
| |
| 'ServoInternals': { |
| 'inRealms': ['ReportMemory'], |
| 'canGc': ['ReportMemory'], |
| 'additionalTraits': ['crate::interfaces::ServoInternalsHelpers'], |
| }, |
| |
| 'ShadowRoot': { |
| 'canGc': ['SetHTMLUnsafe', 'SetInnerHTML', 'GetHTML', 'GetInnerHTML', 'AdoptedStyleSheets'], |
| }, |
| |
| 'StaticRange': { |
| 'weakReferenceable': True, |
| }, |
| |
| 'SubtleCrypto': { |
| 'inRealms': ['Encrypt', 'Decrypt', 'Sign', 'Verify', 'GenerateKey', 'DeriveKey', 'DeriveBits', 'Digest', 'ImportKey', 'ExportKey', 'WrapKey', 'UnwrapKey'], |
| 'canGc': ['Encrypt', 'Decrypt', 'Sign', 'Verify', 'GenerateKey', 'DeriveKey', 'DeriveBits', 'Digest', 'ImportKey', 'ExportKey', 'WrapKey', 'UnwrapKey'], |
| }, |
| |
| 'SVGElement': { |
| 'canGc': ['SetAutofocus'] |
| }, |
| |
| #FIXME(jdm): This should be 'register': False, but then we don't generate enum types |
| 'TestBinding': { |
| 'inRealms': ['PromiseAttribute', 'PromiseNativeHandler'], |
| 'canGc': ['InterfaceAttribute', 'GetInterfaceAttributeNullable', 'ReceiveInterface', 'ReceiveInterfaceSequence', 'ReceiveNullableInterface', 'PromiseAttribute', 'PromiseNativeHandler', 'PromiseResolveNative', 'PromiseRejectNative', 'PromiseRejectWithTypeError'], |
| 'additionalTraits': ['crate::interfaces::TestBindingHelpers'], |
| }, |
| |
| 'TestWorklet': { |
| 'inRealms': ['AddModule'], |
| 'canGc': ['AddModule'], |
| }, |
| |
| 'Text': { |
| 'canGc': ['SplitText'] |
| }, |
| |
| 'TextEncoder': { |
| 'canGc': ['Encode'] |
| }, |
| |
| 'TreeWalker': { |
| 'canGc': ['ParentNode', 'PreviousNode', 'NextNode', 'FirstChild', 'LastChild', 'PreviousSibling', 'NextSibling'] |
| }, |
| |
| 'TrustedTypePolicy': { |
| 'canGc': ['CreateHTML', 'CreateScript', 'CreateScriptURL'] |
| }, |
| |
| 'TrustedTypePolicyFactory': { |
| 'canGc': ['CreatePolicy', 'EmptyHTML', 'EmptyScript'] |
| }, |
| |
| 'URL': { |
| 'weakReferenceable': True, |
| 'canGc': ['Parse', 'SearchParams'], |
| }, |
| |
| 'WebGLRenderingContext': { |
| 'canGc': ['MakeXRCompatible'], |
| 'weakReferenceable': True, |
| }, |
| |
| 'WebGL2RenderingContext': { |
| 'canGc': ['MakeXRCompatible'], |
| 'additionalTraits': ['crate::interfaces::WebGL2RenderingContextHelpers'], |
| }, |
| |
| 'Window': { |
| 'canGc': ['CreateImageBitmap', 'CreateImageBitmap_', 'CookieStore', 'Fetch', 'Open', 'SetInterval', 'SetTimeout', 'Stop', 'TrustedTypes', 'WebdriverCallback', 'WebdriverException'], |
| 'inRealms': ['Fetch', 'GetOpener', 'WebdriverCallback', 'WebdriverException'], |
| 'additionalTraits': ['crate::interfaces::WindowHelpers'], |
| }, |
| |
| 'WindowProxy' : { |
| 'path': 'crate::dom::windowproxy::WindowProxy', |
| 'register': False, |
| }, |
| |
| 'WorkerGlobalScope': { |
| 'inRealms': ['Fetch'], |
| 'canGc': ['Fetch', 'CreateImageBitmap', 'CreateImageBitmap_', 'ImportScripts', 'SetInterval', 'SetTimeout', 'TrustedTypes'], |
| }, |
| |
| 'Worklet': { |
| 'inRealms': ['AddModule'], |
| 'canGc': ['AddModule'], |
| }, |
| |
| 'XMLDocument': { |
| 'canGc': ['NamedGetter'], |
| }, |
| |
| 'XMLHttpRequest': { |
| 'canGc': ['Abort', 'GetResponseXML', 'Response', 'Send'], |
| }, |
| |
| 'XPathEvaluator': { |
| 'canGc': ['CreateExpression', 'Evaluate'], |
| }, |
| |
| 'XPathExpression': { |
| 'canGc': ['Evaluate'], |
| }, |
| |
| 'XRBoundedReferenceSpace': { |
| 'canGc': ['BoundsGeometry'], |
| }, |
| |
| 'XRFrame': { |
| 'canGc': ['GetViewerPose', 'GetPose', 'GetJointPose'], |
| }, |
| |
| 'XRHitTestResult': { |
| 'canGc': ['GetPose'], |
| }, |
| |
| 'XRRay': { |
| 'canGc': ['Origin', 'Direction', 'Matrix'], |
| }, |
| |
| 'XRReferenceSpace': { |
| 'canGc': ['GetOffsetReferenceSpace'], |
| }, |
| |
| 'XRRenderState': { |
| 'canGc': ['Layers'], |
| }, |
| |
| 'XRRigidTransform': { |
| 'canGc': ['Position', 'Orientation', 'Inverse', 'Matrix'], |
| }, |
| |
| 'XRSession': { |
| 'inRealms': ['RequestReferenceSpace', 'UpdateRenderState', 'UpdateTargetFrameRate'], |
| 'canGc': ['End', 'RequestReferenceSpace', 'UpdateTargetFrameRate', 'RequestHitTestSource', 'GetSupportedFrameRates', 'EnabledFeatures'], |
| }, |
| |
| 'XRSystem': { |
| 'inRealms': ['RequestSession'], |
| 'canGc': ['RequestSession', 'IsSessionSupported'], |
| }, |
| |
| 'XRTest': { |
| 'canGc': ['SimulateDeviceConnection', 'DisconnectAllDevices', 'SimulateUserActivation'], |
| }, |
| |
| 'XRView': { |
| 'canGc': ['ProjectionMatrix'], |
| }, |
| |
| 'ReadableStream': { |
| 'canGc': ['GetReader', 'Cancel', 'PipeTo', 'PipeThrough', 'Tee'], |
| 'inRealms': ['PipeTo', 'PipeThrough'], |
| }, |
| |
| "ReadableStreamDefaultController": { |
| "canGc": ["Close", "Enqueue", "Error"] |
| }, |
| |
| "ReadableByteStreamController": { |
| "canGc": ["GetByobRequest", "Enqueue", "Close", "Error"] |
| }, |
| |
| "ReadableStreamBYOBRequest": { |
| "canGc": ["Respond", "RespondWithNewView"] |
| }, |
| |
| "ReadableStreamBYOBReader": { |
| "canGc": ["Cancel", "Read", "ReleaseLock"] |
| }, |
| |
| "ReadableStreamDefaultReader": { |
| "canGc": ["Cancel", "Read", "ReleaseLock"] |
| }, |
| |
| 'ResizeObserverEntry': { |
| 'canGc': ['BorderBoxSize', 'ContentBoxSize', 'DevicePixelContentBoxSize'], |
| }, |
| |
| 'WritableStream': { |
| 'canGc': ['Abort', 'Close', 'GetWriter'], |
| 'inRealms': ['Abort', 'Close', 'GetWriter'], |
| }, |
| |
| 'WritableStreamDefaultController': { |
| 'canGc': ['Error'], |
| 'inRealms': ['Error'], |
| }, |
| |
| 'WritableStreamDefaultWriter': { |
| 'canGc': ['Abort', 'Close', 'Write', 'ReleaseLock'], |
| 'inRealms': ['Abort', 'Close', 'Write'], |
| }, |
| |
| 'TransformStreamDefaultController': { |
| 'canGc': ['Enqueue', 'Error', 'Terminate'], |
| }, |
| |
| 'WorkerNavigator': { |
| 'canGc': ['Languages'], |
| }, |
| |
| } |
| |
| Dictionaries = { |
| 'AudioNodeOptions': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| |
| 'ChannelMergerOptions': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| |
| 'ConstantSourceOptions': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| |
| 'CSPViolationReportBody': { |
| 'derives': ['Clone', 'MallocSizeOf'], |
| }, |
| |
| 'FocusOptions': { |
| 'derives': ['Clone', 'MallocSizeOf'] |
| }, |
| |
| 'FontFaceDescriptors': { |
| 'derives': ['Clone', 'MallocSizeOf'] |
| }, |
| |
| 'GainOptions': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| |
| 'GPUCanvasConfiguration': { |
| 'derives': ['Clone'] |
| }, |
| |
| 'GPUExtent3DDict': { |
| 'derives': ["MallocSizeOf"], |
| }, |
| |
| 'GPUObjectDescriptorBase': { |
| 'derives': ['MallocSizeOf'] |
| }, |
| |
| 'GPUTextureDescriptor': { |
| 'derives': ["MallocSizeOf"], |
| }, |
| |
| 'HeadersInit': { |
| 'derives': ["Clone"], |
| }, |
| |
| 'IIRFilterOptions': { |
| 'derives': ['Clone'], |
| }, |
| |
| 'RecommendedBreakpointLocation': { |
| 'derives': ['Debug'], |
| }, |
| |
| 'Report': { |
| 'derives': ['Clone', 'MallocSizeOf'], |
| }, |
| |
| 'ReportBody': { |
| 'derives': ['Clone', 'MallocSizeOf'], |
| }, |
| |
| 'ScrollOptions': { |
| 'derives': ['Clone'], |
| }, |
| |
| 'ScrollToOptions': { |
| 'derives': ['Clone'], |
| }, |
| |
| 'StereoPannerOptions': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| |
| 'URLPatternInit': { |
| 'derives': ['Clone'], |
| }, |
| |
| 'XRWebGLLayerInit': { |
| 'derives': ['Clone', 'Copy'], |
| }, |
| } |
| |
| Enums = { |
| 'GPUFeatureName': { |
| 'derives': ['Eq', 'Hash', ] |
| }, |
| 'PermissionName': { |
| 'derives': ['Eq', 'Hash'] |
| } |
| } |
| |
| Unions = { |
| 'ByteStringSequenceSequenceOrByteStringByteStringRecord': { |
| 'derives': ['Clone'] |
| }, |
| |
| 'ElementOrDocument': { |
| 'derives': ['Clone', 'MallocSizeOf'] |
| }, |
| |
| 'HTMLCanvasElementOrOffscreenCanvas': { |
| 'derives': ['Clone', 'MallocSizeOf'] |
| }, |
| |
| 'RangeEnforcedUnsignedLongSequenceOrGPUExtent3DDict': { |
| 'derives': ['MallocSizeOf'] |
| }, |
| |
| 'StringOrUnsignedLong': { |
| 'derives': ['Clone'], |
| }, |
| } |