mirror of
https://github.com/servo/servo.git
synced 2025-10-17 16:59:27 +01:00
* add basic interface for writable stream Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add stubs for pipeTo and pipeThrough methods Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add stubs for writable stream defautl writer Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add stubs for writable stream controller Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add underlying source dict Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add underlying source dict Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement constructor Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement init writable stream Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * impl setup default controller Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller setup Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller advance queue if neededd Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream finish erroring Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream reject close and closed promise if needed Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * finish implementation of stream finish erroring Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * call into controller setup from stream constructor Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream mark first write request in flight Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller process write Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * call into advance queue if needed at various points Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream deal with rejection, use from_safe_context Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller clear algorithms Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unused todo Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream start erroring Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * finish writer ensure ready promise rejected Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream finish in flight write request Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement write constructor and setup Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller error Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary unsafe code Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * finish implementing process write Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement close sentinel Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement public locked Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream abort Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix use of crown Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary options around writer promises Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer get desired size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer ready Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer abort Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer release lock Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer public write Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement private writer write Uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement writer release. Uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * impl controller process close Uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * finish controller process close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * root promise handlers Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * handler errors in stream and writer constructor finish implementation of stream finish in flight close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix warnings Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement controller get chunk size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * tidy the webidls Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * implement stream get writer Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix assertion of stream state when advancing queue if needed Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add docs for value with size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * use reject_error in abort Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary allowances of unsafe code Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * turn writable-streams test suite on Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update encodings test expectations Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * properly check if type is set on sink in stream constructor Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix double borrow in controller advance queue if needed Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * make the queue aware of the close sentinel when dequeuing a value Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix assertion of no backpressure in update backpressure Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * also clear strategy size when clearing algorithms Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove this object arg when calling into strategy size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix has operations marked in flight Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix typo in has in flight write request Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * turn error into no-op when aborting a stream, if the stream is closed or errored. Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix error handling of calling into abort algorithm Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix error handling of calling into close and write algorithms Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix double borrow on queue fix logic in update_backpressure fix logic in get_desired_size fix logic in writer setup Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update test expectations for aborting suite Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix controller get_backpressure Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix clippy Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update test expectations to expect errors in tests using unsupported apis Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix error handling of calling into start algo in controller setup Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update test expectations for test checking for undefined this in strategy size call Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update test expectation to timeout for response-stream-with-broken-then.any.worker Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * update interfaces Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix use of global() and error to_jsval Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix use of crown for promise handlers Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove fail expectation from worker interface objects test Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove fail expectation for test expecting this to be undefined in callback Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix documentation link for writablestream state Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * refactor write_requests to use a vec deque uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary doc Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * refactor reject_close_and_closed_promise_if_needed to take a safe js context as argument uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * pass globals and contexts by ref where possible uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix doc link for controller Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary comment Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * change update_backpressure to be a method of the writablestream uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * rename writer method that resolve closed and ready promise for clarity uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * add comments for steps in peek queue value Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix doc link for the abort algorihtm fulfillment handler Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix step doc and variable name in abort algo rejection handler Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * Add must_root to pending abort request Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com> * limit visibility to crate for has_operations_marked_inflight Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com> * limit visibility to crate for get_stored_error Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com> * remove potention re-borrow risk in reject loop on write requests in finish_erroring Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove potential re-borrow risk when taking pending abort request in finish_erroring Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove potential re-borrow risk when taking close request in reject_close_and_closed_promise_if_needed Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove re-borrow risks in finish_in_flight_close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove re-borrow risk on in_flight_close_request in finish_in_flight_close_with_error Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary clone of of reason in abort Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix condition on backpressure and a writable state in close Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * limit visibility to crate for update_backpressure Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com> * remove mutability of reason in abort workflow Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove unnecessary use of ignore_malloc_size_of around Dom in controller Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix ignore malloc size of comment for strategy size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * reduce visibility of public methods to crate in controller Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * remove use of JS_GetPendingException in controller get_chunk_size Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * return early on error in write Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * use is_some_and in assertion that stream.witer is writer in release Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * root pending abort request uses ai Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> * fix mutable re-borrow risk in writer Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> --------- Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
653 lines
17 KiB
Text
653 lines
17 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'],
|
|
'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'],
|
|
},
|
|
|
|
'Blob': {
|
|
'weakReferenceable': True,
|
|
'canGc': ['Slice', 'Text', 'ArrayBuffer', 'Stream'],
|
|
},
|
|
|
|
'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'],
|
|
},
|
|
|
|
'CanvasGradient': {
|
|
'canGc': ['AddColorStop'],
|
|
},
|
|
|
|
'CanvasRenderingContext2D': {
|
|
'canGc': ['GetTransform','GetImageData', 'CreateImageData', 'CreateImageData_', 'SetFont', 'FillText', 'MeasureText', 'SetStrokeStyle', 'SetFillStyle', 'SetShadowColor'],
|
|
},
|
|
|
|
'CharacterData': {
|
|
'canGc': ['Before', 'After', 'ReplaceWith']
|
|
},
|
|
|
|
'CSSStyleDeclaration': {
|
|
'canGc': ['RemoveProperty', 'SetCssText', 'GetPropertyValue', 'SetProperty', 'CssFloat', 'SetCssFloat']
|
|
},
|
|
|
|
'CustomElementRegistry': {
|
|
'inRealms': ['WhenDefined'],
|
|
'canGc': ['WhenDefined'],
|
|
},
|
|
|
|
'DataTransfer': {
|
|
'canGc': ['Files']
|
|
},
|
|
|
|
'DataTransferItem': {
|
|
'canGc': ['GetAsFile']
|
|
},
|
|
|
|
'DataTransferItemList': {
|
|
'canGc': ['IndexedGetter', 'Add', 'Add_']
|
|
},
|
|
|
|
'Document': {
|
|
'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', 'ElementFromPoint', 'ElementsFromPoint', 'ExitFullscreen', 'CreateExpression', 'CreateNSResolver', 'Evaluate'],
|
|
},
|
|
|
|
'DocumentFragment': {
|
|
'canGc': ['Prepend', 'Append', 'ReplaceChildren']
|
|
},
|
|
|
|
'DocumentType': {
|
|
'canGc': ['Before', 'After', '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'],
|
|
},
|
|
|
|
'DOMParser': {
|
|
'canGc': ['ParseFromString'],
|
|
},
|
|
|
|
'DOMPoint': {
|
|
'canGc': ['FromPoint'],
|
|
},
|
|
|
|
'DOMPointReadOnly': {
|
|
'canGc': ['FromPoint'],
|
|
},
|
|
|
|
'DOMQuad': {
|
|
'canGc': ['FromRect', 'FromQuad', 'GetBounds'],
|
|
},
|
|
|
|
'DOMStringMap': {
|
|
'canGc': ['NamedSetter']
|
|
},
|
|
|
|
"DOMTokenList": {
|
|
'canGc': ['SetValue', 'Add', 'Remove', 'Toggle', 'Replace']
|
|
},
|
|
|
|
'DynamicModuleOwner': {
|
|
'inRealms': ['PromiseAttribute'],
|
|
},
|
|
|
|
'Element': {
|
|
'canGc': ['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', 'SetScrollTop', 'SetScrollLeft', 'Scroll', 'Scroll_', 'ScrollBy', 'ScrollBy_', 'ScrollWidth', 'ScrollHeight', 'ScrollTop', 'ScrollLeft', 'ClientTop', 'ClientLeft', 'ClientWidth', 'ClientHeight', 'RequestFullscreen'],
|
|
},
|
|
|
|
'ElementInternals': {
|
|
'canGc': ['CheckValidity', 'ReportValidity'],
|
|
},
|
|
|
|
'EventSource': {
|
|
'weakReferenceable': True,
|
|
},
|
|
|
|
'EventTarget': {
|
|
'canGc': ['DispatchEvent'],
|
|
},
|
|
|
|
'FakeXRDevice': {
|
|
'canGc': ['Disconnect'],
|
|
},
|
|
|
|
'File': {
|
|
'weakReferenceable': True,
|
|
},
|
|
|
|
'FileReader': {
|
|
'canGc': ['Abort'],
|
|
},
|
|
|
|
'FontFaceSet': {
|
|
'canGc': ['Load'],
|
|
},
|
|
|
|
'GamepadHapticActuator': {
|
|
'inRealms': ['PlayEffect', 'Reset'],
|
|
'canGc': ['PlayEffect', 'Reset'],
|
|
},
|
|
|
|
'GlobalScope': {
|
|
'additionalTraits': ['crate::dom::globalscope::GlobalScopeHelpers<Self>'],
|
|
},
|
|
|
|
'GPU': {
|
|
'inRealms': ['RequestAdapter'],
|
|
'canGc': ['RequestAdapter', 'WgslLanguageFeatures'],
|
|
},
|
|
|
|
'GPUAdapter': {
|
|
'inRealms': ['RequestAdapterInfo', 'RequestDevice'],
|
|
'canGc': ['RequestAdapterInfo', 'RequestDevice'],
|
|
},
|
|
|
|
'GPUBuffer': {
|
|
'inRealms': ['MapAsync'],
|
|
'canGc': ['MapAsync'],
|
|
},
|
|
|
|
'GPUCanvasContext': {
|
|
'weakReferenceable': True,
|
|
},
|
|
|
|
'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']
|
|
},
|
|
|
|
"HTMLAreaElement": {
|
|
"canGc": ['SetText', 'SetRel', 'SetHref', 'SetHash', 'SetHost', 'SetHostname', 'SetPassword', 'SetPathname', 'SetPort', 'SetProtocol', 'SetSearch', 'SetUsername']
|
|
},
|
|
|
|
"HTMLBodyElement": {
|
|
"canGc": ["SetBackground"]
|
|
},
|
|
|
|
'HTMLButtonElement': {
|
|
'canGc': ['CheckValidity', 'ReportValidity','SetBackground'],
|
|
},
|
|
|
|
'HTMLCanvasElement': {
|
|
'canGc': ['CaptureStream', 'GetContext'],
|
|
},
|
|
|
|
'HTMLDialogElement': {
|
|
'canGc': ['Show'],
|
|
},
|
|
|
|
'HTMLElement': {
|
|
'canGc': ['Focus', 'Blur', 'Click', 'SetInnerText', 'SetOuterText', "SetTranslate", 'SetAutofocus', 'GetOffsetParent', 'OffsetTop', 'OffsetLeft', 'OffsetWidth', 'OffsetHeight', 'InnerText', 'GetOuterText', 'GetOnerror', 'GetOnload', 'GetOnblur', 'GetOnfocus', 'GetOnresize', 'GetOnscroll'],
|
|
},
|
|
|
|
'HTMLFieldSetElement': {
|
|
'canGc': ['CheckValidity', 'ReportValidity'],
|
|
},
|
|
|
|
'HTMLFontElement': {
|
|
'canGc': ['SetSize']
|
|
},
|
|
|
|
'HTMLFormElement': {
|
|
'canGc': ['CheckValidity', 'RequestSubmit', 'ReportValidity', 'Submit', 'Reset', 'SetRel'],
|
|
},
|
|
|
|
'HTMLImageElement': {
|
|
'canGc': ['RequestSubmit', 'ReportValidity', 'Reset','SetRel', 'Width', 'Height', 'Decode', 'SetCrossOrigin', 'SetWidth', 'SetHeight', 'SetReferrerPolicy'],
|
|
},
|
|
|
|
'HTMLInputElement': {
|
|
'canGc': ['ReportValidity', 'SetValue', 'SetValueAsNumber', 'SetValueAsDate', 'StepUp', 'StepDown', 'CheckValidity', 'ReportValidity', 'SelectFiles'],
|
|
},
|
|
|
|
'HTMLLinkElement': {
|
|
'canGc': ['SetRel', 'SetCrossOrigin'],
|
|
},
|
|
|
|
'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']
|
|
},
|
|
|
|
'HTMLOutputElement': {
|
|
'canGc': ['ReportValidity', 'SetDefaultValue', 'SetValue', 'CheckValidity'],
|
|
},
|
|
|
|
'HTMLProgressElement': {
|
|
'canGc': ['SetValue', 'SetMax']
|
|
},
|
|
|
|
'HTMLScriptElement': {
|
|
'canGc': ['SetAsync', 'SetCrossOrigin', 'SetText']
|
|
},
|
|
|
|
'HTMLSelectElement': {
|
|
'canGc': ['ReportValidity', 'SetLength', 'IndexedSetter', 'CheckValidity'],
|
|
},
|
|
|
|
'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']
|
|
},
|
|
|
|
'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': ['GetOnmessage'],
|
|
},
|
|
|
|
'MouseEvent': {
|
|
'canGc': ['OffsetX', 'OffsetY'],
|
|
},
|
|
|
|
'NavigationPreloadManager': {
|
|
'inRealms': ['Disable', 'Enable', 'GetState', 'SetHeaderValue'],
|
|
'canGc': ['Disable', 'Enable', 'GetState', 'SetHeaderValue'],
|
|
},
|
|
|
|
'Navigator': {
|
|
'inRealms': ['GetVRDisplays'],
|
|
},
|
|
|
|
'Node': {
|
|
'canGc': ['CloneNode', 'SetTextContent'],
|
|
},
|
|
|
|
'Notification': {
|
|
'canGc': ['RequestPermission'],
|
|
},
|
|
|
|
'OfflineAudioContext': {
|
|
'inRealms': ['StartRendering'],
|
|
'canGc': ['StartRendering'],
|
|
},
|
|
|
|
'OffscreenCanvasRenderingContext2D': {
|
|
'canGc': ['CreateImageData', 'CreateImageData_', 'GetImageData', 'GetTransform', 'SetFont', 'FillText', 'MeasureText', 'SetStrokeStyle', 'SetFillStyle', 'SetShadowColor'],
|
|
},
|
|
|
|
'PaintRenderingContext2D': {
|
|
'canGc': ['GetTransform', 'SetStrokeStyle', 'SetFillStyle', 'SetShadowColor'],
|
|
},
|
|
|
|
'Performance': {
|
|
'canGc': ['Mark', 'Measure'],
|
|
},
|
|
|
|
'Permissions': {
|
|
'canGc': ['Query', 'Request', 'Revoke'],
|
|
},
|
|
|
|
'Promise': {
|
|
'spiderMonkeyInterface': True,
|
|
},
|
|
|
|
'Range': {
|
|
'canGc': ['CloneContents', 'CloneRange', 'CreateContextualFragment', 'ExtractContents', 'SurroundContents', 'InsertNode'],
|
|
'weakReferenceable': True,
|
|
},
|
|
|
|
'Request': {
|
|
'canGc': ['Headers', 'Text', 'Blob', 'FormData', 'Json', 'ArrayBuffer', 'Clone', 'Bytes'],
|
|
},
|
|
|
|
'Response': {
|
|
'canGc': ['Error', 'Redirect', 'Clone', 'Text', 'Blob', 'FormData', 'Json', 'ArrayBuffer', 'Headers', 'Bytes'],
|
|
},
|
|
|
|
'RTCPeerConnection': {
|
|
'inRealms': ['AddIceCandidate', 'CreateAnswer', 'CreateOffer', 'SetLocalDescription', 'SetRemoteDescription'],
|
|
'canGc': ['Close', 'AddIceCandidate', 'CreateAnswer', 'CreateOffer', 'SetLocalDescription', 'SetRemoteDescription'],
|
|
},
|
|
|
|
'RTCRtpSender': {
|
|
'canGc': ['SetParameters'],
|
|
},
|
|
|
|
'Selection': {
|
|
'canGc': ['Collapse', 'CollapseToEnd', 'CollapseToStart', 'Extend', 'SelectAllChildren', 'SetBaseAndExtent', 'SetPosition'],
|
|
},
|
|
|
|
'ServiceWorkerContainer': {
|
|
'inRealms': ['Register'],
|
|
'canGc': ['Register'],
|
|
},
|
|
|
|
'ShadowRoot': {
|
|
'canGc': ['ElementFromPoint', 'ElementsFromPoint', 'SetInnerHTML'],
|
|
},
|
|
|
|
'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'],
|
|
},
|
|
|
|
'TestWorklet': {
|
|
'inRealms': ['AddModule'],
|
|
'canGc': ['AddModule'],
|
|
},
|
|
|
|
'Text': {
|
|
'canGc': ['SplitText']
|
|
},
|
|
|
|
'URL': {
|
|
'weakReferenceable': True,
|
|
'canGc': ['Parse', 'SearchParams'],
|
|
},
|
|
|
|
'WebGLRenderingContext': {
|
|
'canGc': ['MakeXRCompatible'],
|
|
},
|
|
|
|
'WebGL2RenderingContext': {
|
|
'canGc': ['MakeXRCompatible'],
|
|
},
|
|
|
|
'Window': {
|
|
'canGc': ['Stop', 'Fetch', 'Scroll', 'Scroll_','ScrollBy', 'ScrollBy_', 'Stop', 'Fetch', 'Open', 'CreateImageBitmap'],
|
|
'inRealms': ['Fetch', 'GetOpener'],
|
|
},
|
|
|
|
'WindowProxy' : {
|
|
'path': 'crate::dom::windowproxy::WindowProxy',
|
|
'register': False,
|
|
},
|
|
|
|
'WorkerGlobalScope': {
|
|
'inRealms': ['Fetch'],
|
|
'canGc': ['Fetch', 'CreateImageBitmap', 'ImportScripts'],
|
|
},
|
|
|
|
'Worklet': {
|
|
'inRealms': ['AddModule'],
|
|
'canGc': ['AddModule'],
|
|
},
|
|
|
|
'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'],
|
|
},
|
|
|
|
'XRReferenceSpace': {
|
|
'canGc': ['GetOffsetReferenceSpace'],
|
|
},
|
|
|
|
'XRRigidTransform': {
|
|
'canGc': ['Position', 'Orientation', 'Inverse'],
|
|
},
|
|
|
|
'XRSession': {
|
|
'inRealms': ['RequestReferenceSpace', 'UpdateRenderState', 'UpdateTargetFrameRate'],
|
|
'canGc': ['End', 'RequestReferenceSpace', 'UpdateTargetFrameRate', 'RequestHitTestSource'],
|
|
},
|
|
|
|
'XRSystem': {
|
|
'inRealms': ['RequestSession'],
|
|
'canGc': ['RequestSession', 'IsSessionSupported'],
|
|
},
|
|
|
|
'XRTest': {
|
|
'canGc': ['SimulateDeviceConnection', 'DisconnectAllDevices'],
|
|
},
|
|
|
|
'ReadableStream': {
|
|
'canGc': ['GetReader', 'Cancel', 'Tee'],
|
|
},
|
|
|
|
"ReadableStreamDefaultController": {
|
|
"canGc": ["Enqueue"]
|
|
},
|
|
|
|
"ReadableStreamBYOBReader": {
|
|
"canGc": ["Read", "Cancel"]
|
|
},
|
|
|
|
"ReadableStreamDefaultReader": {
|
|
"canGc": ["Read", "Cancel"]
|
|
},
|
|
|
|
'WritableStream': {
|
|
'canGc': ['Abort', 'Close', 'GetWriter'],
|
|
'inRealms': ['Abort', 'Close', 'GetWriter'],
|
|
},
|
|
|
|
'WritableStreamDefaultController': {
|
|
'canGc': ['Error'],
|
|
'inRealms': ['Error'],
|
|
},
|
|
|
|
'WritableStreamDefaultWriter': {
|
|
'canGc': ['Abort', 'Close', 'Write', 'ReleaseLock'],
|
|
'inRealms': ['Abort', 'Close', 'Write'],
|
|
},
|
|
|
|
}
|
|
|
|
Dictionaries = {
|
|
'FontFaceDescriptors': {
|
|
'derives': ['Clone', 'MallocSizeOf']
|
|
},
|
|
|
|
'GPUCanvasConfiguration': {
|
|
'derives': ['Clone']
|
|
},
|
|
|
|
'GPUExtent3DDict': {
|
|
'derives': ["MallocSizeOf"],
|
|
},
|
|
|
|
'GPUObjectDescriptorBase': {
|
|
'derives': ['MallocSizeOf']
|
|
},
|
|
|
|
'GPUTextureDescriptor': {
|
|
'derives': ["MallocSizeOf"],
|
|
},
|
|
|
|
'HeadersInit': {
|
|
'derives': ["Clone"],
|
|
},
|
|
}
|
|
|
|
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'],
|
|
},
|
|
}
|