servo/components/script/dom
Mukilan Thiyagarajan 5305c507c2
Fix race condition and other issues related to Worker destruction. (#30066)
* Fix race condition in Worker destruction

During shutdown, the main script thread calls
JS_RequestInterruptCallback(cx) for each worker thread it owns
where cx is the JSContext* created for that worker.
Although JS_RequestInterruptCallback is safe to call
from threads other than the worker thread, it is possible
the JSContext* has already been destroyed

For example, as noted in #30022, since the main thread sets
the worker's `closing` flag to true to signal termination before it
calls JS_RequestInterruptCallback, we can have a race condition
where the worker exits its event loop when `closing` flags is set
and then it (worker thread) destroys its own JSContext and JSRuntime.
When the main thread resumes, it will call
JS_RequestInterruptCallback for the worker's context, leading to
a use-after-free bug.

This patch solves this issue by improving the existing
`ContextForRequestInterrupt` abstraction used for sharing the Worker's
associated JSContext* with the parent script thread.
Instead of simply wrapping a plain `*mut JSContext`, we now wrap the
`*mut JSContext` in a nullable mutex i.e Mutex<Option<*mut JSContext>>

The mutex lock needs to be held by the parent thread when it
calls JS_RequestInterruptCallback.
Similary, before the worker destroys its JSContext, it locks and
sets the Option to None, signaling that the JSContext can no longer
be used for interrupting the worker.

This patch also fixes the issue in #30052 by enforcing the use
of ContextForRequestInterrupt abstraction which ensures the correct
JSContext is used by the main thread when Worker.terminate is called.

Fixes #30022, #30052

* Fix Worker.importScripts to handle termination

Fixing #30052 uncovered this issue in the implementation
of `importScripts` method. After the fix for #30052,
the WPT test `/workers/Worker-terminate-forever-during-evaluation.html`
started to crash because when evaluation doesn't succeed
`importScripts` always returns Error::JSFailed code to the caller,
which indicates that there is a Dom/JS exception to be thrown. However,
this is not true when the script is terminated, which causes
the generated binding layer for 'importScript` to fail
the assertion that there is a pending exception.

This patch makes `importScripts` work similar to the [logic that
evaluates the top-level script][1] of the Worker - it simply prints
`evaluate_script failed - (terminated)' if the worker is terminating

[1]: 3fea90a231/components/script/dom/workerglobalscope.rs (L434)
2023-08-03 23:33:21 +00:00
..
bindings Auto merge of #29850 - servo:css-viewport-removal, r=mrobinson 2023-06-30 20:54:11 +02:00
servoparser Refactor ServoParser Tokenizer to return TokenizerResult 2023-06-22 13:45:20 +02:00
webgl_extensions revert: Introduce Untransplantable trait to indicate transplantability at the type level 2023-03-23 18:06:17 +08:00
webgl_validations Update nightly rustc. 2021-11-01 08:46:18 -04:00
webidls It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
abstractworker.rs continue messageport, transferable, postmessage options 2019-10-19 14:28:18 +08:00
abstractworkerglobalscope.rs Enter realms more consistently during the script event loop. 2023-05-20 14:30:22 -04:00
activation.rs Event dispatch rewritten to resemble spec more often, activate on clicks better 2020-02-12 15:57:37 -05:00
analysernode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
animationevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
attr.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
audiobuffer.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
audiobuffersourcenode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
audiocontext.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
audiodestinationnode.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
audiolistener.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
audionode.rs Update servo media to include global mute support 2019-07-05 11:01:19 +02:00
audioparam.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
audioscheduledsourcenode.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
audiotrack.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
audiotracklist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
baseaudiocontext.rs Update uuid 2023-06-26 16:27:12 +02:00
beforeunloadevent.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
biquadfilternode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
blob.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
bluetooth.rs Remove unused argument from AlreadyInRealm::assert. 2023-05-20 11:05:09 -04:00
bluetoothadvertisingevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
bluetoothcharacteristicproperties.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
bluetoothdevice.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
bluetoothpermissionresult.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
bluetoothremotegattcharacteristic.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
bluetoothremotegattdescriptor.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
bluetoothremotegattserver.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
bluetoothremotegattservice.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
bluetoothuuid.rs Modify script to prevent further violations of snake_case 2020-01-18 14:22:15 +05:30
broadcastchannel.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
canvasgradient.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
canvaspattern.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
canvasrenderingcontext2d.rs Enable textAlign, textBaseline and direction attributes for canvas 2020-06-10 22:34:20 +05:30
cdatasection.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
channelmergernode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
channelsplitternode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
characterdata.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
client.rs serviceworker: make job queue unique per origin 2020-05-21 13:21:21 +08:00
closeevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
comment.rs Formatting. 2023-05-28 23:54:02 -04:00
compositionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
console.rs Fix formatting. 2023-05-20 11:05:10 -04:00
constantsourcenode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
create.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
crypto.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
css.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
cssconditionrule.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
cssfontfacerule.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
cssgroupingrule.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
cssimportrule.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
csskeyframerule.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
csskeyframesrule.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
cssmediarule.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
cssnamespacerule.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
cssrule.rs It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
cssrulelist.rs Fix compiler warnings 2021-08-14 21:35:15 -07:00
cssstyledeclaration.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
cssstylerule.rs Further changes required by Servo 2023-06-09 10:22:18 +02:00
cssstylesheet.rs Implements StyleSheet.media 2020-10-16 10:55:00 +02:00
cssstylevalue.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
csssupportsrule.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
customelementregistry.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
customevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
dedicatedworkerglobalscope.rs Fix race condition and other issues related to Worker destruction. (#30066) 2023-08-03 23:33:21 +00:00
dissimilaroriginlocation.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
dissimilaroriginwindow.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
document.rs make the concept of has_listeners_for follow other implementations (#21044) 2023-07-19 15:27:32 +00:00
documentfragment.rs Formatting. 2023-05-28 23:54:02 -04:00
documentorshadowroot.rs It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
documenttype.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
domexception.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domimplementation.rs Formatting. 2023-05-28 23:54:02 -04:00
dommatrix.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
dommatrixreadonly.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domparser.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
dompoint.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
dompointreadonly.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domquad.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domrect.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domrectreadonly.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
domstringlist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
domstringmap.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
domtokenlist.rs Implement DOMTokenList.supports API 2020-10-05 09:26:36 +02:00
dynamicmoduleowner.rs Introduce DynamicModuleOwner dom struct 2020-07-18 00:43:32 +09:00
element.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
errorevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
event.rs make the concept of has_listeners_for follow other implementations (#21044) 2023-07-19 15:27:32 +00:00
eventsource.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
eventtarget.rs make the concept of has_listeners_for follow other implementations (#21044) 2023-07-19 15:27:32 +00:00
extendableevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
extendablemessageevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
fakexrdevice.rs Update webxr 2020-04-27 08:02:41 -07:00
fakexrinputcontroller.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
file.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
filelist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
filereader.rs bump base64 from 0.10 to 0.21 (#29804) 2023-08-02 21:25:37 +00:00
filereadersync.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
focusevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
formdata.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
formdataevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
gainnode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
gamepad.rs Remove WebVR 2020-04-08 20:23:41 -05:00
gamepadbutton.rs Remove WebVR 2020-04-08 20:23:41 -05:00
gamepadbuttonlist.rs Remove WebVR 2020-04-08 20:23:41 -05:00
gamepadevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
gamepadlist.rs Remove WebVR 2020-04-08 20:23:41 -05:00
gamepadpose.rs Remove WebVR 2020-04-08 20:23:41 -05:00
globalscope.rs Remove unused argument from AlreadyInRealm::assert. 2023-05-20 11:05:09 -04:00
gpu.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
gpuadapter.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
gpubindgroup.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpubindgrouplayout.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpubuffer.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
gpubufferusage.rs Initial implementation of GPUBuffer for WebGPU 2019-12-17 11:00:08 +01:00
gpucanvascontext.rs Try to use WebRender types more 2023-07-10 17:35:50 +02:00
gpucolorwrite.rs Implement GPURenderPipeline 2020-05-30 11:38:32 +05:30
gpucommandbuffer.rs Remove entries from error_command_buffers on drop 2020-08-08 20:20:07 +05:30
gpucommandencoder.rs defer encoding errors to finish() 2020-08-22 17:43:10 +05:30
gpucomputepassencoder.rs defer encoding errors to finish() 2020-08-22 17:43:10 +05:30
gpucomputepipeline.rs address review and disable test 2020-09-23 21:32:25 +05:30
gpudevice.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
gpudevicelostinfo.rs Implement Async Error reporting for WebGPU and update wgpu-core 2020-07-16 23:21:09 +05:30
gpumapmode.rs Implement GPUBuffer.mapAsync and update wgpu-core 2020-06-27 20:27:17 +05:30
gpuoutofmemoryerror.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
gpupipelinelayout.rs Implement GPUPipelineBase for implicit pipeline layouts 2020-08-19 16:44:26 +05:30
gpuqueue.rs Use Device limits and features provided by user 2020-09-23 11:37:03 +05:30
gpurenderbundle.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpurenderbundleencoder.rs update wgpu and some cleanup 2020-08-17 13:33:54 +05:30
gpurenderpassencoder.rs defer encoding errors to finish() 2020-08-22 17:43:10 +05:30
gpurenderpipeline.rs address review and disable test 2020-09-23 21:32:25 +05:30
gpusampler.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpushadermodule.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpushaderstage.rs Initial implementation of GPUBindGroupLayout for WebGPU 2020-01-16 10:53:51 +01:00
gpuswapchain.rs Try to use WebRender types more 2023-07-10 17:35:50 +02:00
gputexture.rs Prevent redundant texture and buffer destroy calls 2020-08-25 11:07:25 +05:30
gputextureusage.rs Implement GPUTexture and GPUTextureView 2020-06-01 23:28:12 +05:30
gputextureview.rs Implement GPURenderBundleEncoder and GPURenderBundle 2020-07-24 12:45:23 +05:30
gpuuncapturederrorevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
gpuvalidationerror.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
hashchangeevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
headers.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
history.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
htmlanchorelement.rs Formatting. 2023-05-28 23:54:02 -04:00
htmlareaelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlaudioelement.rs Formatting. 2023-05-28 23:54:02 -04:00
htmlbaseelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlbodyelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlbrelement.rs Formatting. 2023-05-28 23:54:02 -04:00
htmlbuttonelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmlcanvaselement.rs bump base64 from 0.10 to 0.21 (#29804) 2023-08-02 21:25:37 +00:00
htmlcollection.rs Fix checking for empty set for getElementsByClassName 2023-04-21 15:21:53 +09:00
htmldataelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldatalistelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldetailselement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldialogelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldirectoryelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldivelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmldlistelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlembedelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlfieldsetelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmlfontelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlformcontrolscollection.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
htmlformelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmlframeelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlframesetelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlheadelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlheadingelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlhrelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlhtmlelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmliframeelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlimageelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlinputelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmllabelelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmllegendelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmllielement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmllinkelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlmapelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlmediaelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlmenuelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlmetaelement.rs It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
htmlmeterelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlmodelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlobjectelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlolistelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmloptgroupelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmloptionelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmloptionscollection.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmloutputelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlparagraphelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlparamelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlpictureelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlpreelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlprogresselement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlquoteelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlscriptelement.rs Formatting. 2023-05-28 23:54:02 -04:00
htmlselectelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmlsourceelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlspanelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlstyleelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltablecaptionelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltablecellelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltablecolelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltableelement.rs Formatting. 2023-05-28 23:54:02 -04:00
htmltablerowelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltablesectionelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltemplateelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltextareaelement.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
htmltimeelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltitleelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmltrackelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlulistelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlunknownelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
htmlvideoelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
identityhub.rs Update rustc. 2021-12-02 17:05:19 -05:00
imagebitmap.rs implemented CreateImageBitmap function for Canvas image source 2020-04-29 21:51:10 -04:00
imagedata.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
inputevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
keyboardevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
location.rs Make Location operate on the correct objects 2023-05-18 15:41:08 +02:00
macros.rs Fix compiler warnings 2021-08-14 21:35:15 -07:00
mediadeviceinfo.rs Implement MediaDevices.enumerateDevices() 2020-07-10 13:18:26 +02:00
mediadevices.rs Remove unused argument from AlreadyInRealm::assert. 2023-05-20 11:05:09 -04:00
mediaelementaudiosourcenode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediaerror.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
mediafragmentparser.rs Changed DOMString usages to string in MediaFragmentParser 2019-07-25 13:34:18 -04:00
medialist.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
mediametadata.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediaquerylist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
mediaquerylistevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediasession.rs Enter a realm when handling mediasession commands. 2020-08-06 14:09:38 -04:00
mediastream.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediastreamaudiodestinationnode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediastreamaudiosourcenode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mediastreamtrack.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
mediastreamtrackaudiosourcenode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
messagechannel.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
messageevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
messageport.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
mimetype.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
mimetypearray.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
mod.rs It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
mouseevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mutationobserver.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
mutationrecord.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
namednodemap.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
navigationpreloadmanager.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
navigator.rs dom: Implement Navigator.languages. 2020-07-14 11:50:59 -04:00
navigatorinfo.rs Modify script to prevent further violations of snake_case 2020-01-18 14:22:15 +05:30
node.rs It was removed from the spec and it's disabled everywhere. 2023-06-30 16:28:21 +02:00
nodeiterator.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
nodelist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
offlineaudiocompletionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
offlineaudiocontext.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
offscreencanvas.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
offscreencanvasrenderingcontext2d.rs Enable textAlign, textBaseline and direction attributes for canvas 2020-06-10 22:34:20 +05:30
oscillatornode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
pagetransitionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
paintrenderingcontext2d.rs Update euclid 2020-04-07 08:51:08 -07:00
paintsize.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
paintworkletglobalscope.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
pannernode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
performance.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performanceentry.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performancemark.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
performancemeasure.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
performancenavigation.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performancenavigationtiming.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performanceobserver.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
performanceobserverentrylist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performancepainttiming.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performanceresourcetiming.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
performancetiming.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
permissions.rs Remove unused argument from AlreadyInRealm::assert. 2023-05-20 11:05:09 -04:00
permissionstatus.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
plugin.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
pluginarray.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
popstateevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
processinginstruction.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
progressevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
promise.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
promisenativehandler.rs integrate readablestream with fetch and blob 2020-06-04 11:38:35 +08:00
promiserejectionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
radionodelist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
range.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
raredata.rs Cache the result of retrieving an element's client rectangle from layout. 2020-03-31 17:15:44 -04:00
readablestream.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
request.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
response.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcdatachannel.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
rtcdatachannelevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcerror.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcerrorevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcicecandidate.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcpeerconnection.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcpeerconnectioniceevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtcrtpsender.rs dom: Add WebRTC transceiver stubs. 2020-07-14 12:48:45 -04:00
rtcrtptransceiver.rs dom: Add WebRTC transceiver stubs. 2020-07-14 12:48:45 -04:00
rtcsessiondescription.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
rtctrackevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
screen.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
selection.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
serviceworker.rs serviceworker: make job queue unique per origin 2020-05-21 13:21:21 +08:00
serviceworkercontainer.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
serviceworkerglobalscope.rs Fix race condition and other issues related to Worker destruction. (#30066) 2023-08-03 23:33:21 +00:00
serviceworkerregistration.rs serviceworker: make job queue unique per origin 2020-05-21 13:21:21 +08:00
shadowroot.rs Further changes required by Servo 2023-05-16 13:00:18 +02:00
stereopannernode.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
storage.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
storageevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
stylepropertymapreadonly.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
stylesheet.rs Implements StyleSheet.media 2020-10-16 10:55:00 +02:00
stylesheetlist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
submitevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
svgelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
svggraphicselement.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
svgsvgelement.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
test_mapping.json
testbinding.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
testbindingiterable.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
testbindingpairiterable.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
testbindingproxy.rs Inherit TestBinding from TestBindingProxy. 2019-04-20 22:39:39 +02:00
testrunner.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
testworklet.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
testworkletglobalscope.rs Revert "feat(script): add {DissimilarOriginWindow, PaintWorkletGlobalScope, TestWorkletGlobalScope}::origin" 2021-07-13 21:12:44 +09:00
text.rs Formatting. 2023-05-28 23:54:02 -04:00
textcontrol.rs ISSUE-20455: introduce stronger types for textinput indexing 2019-05-16 15:33:24 -04:00
textdecoder.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
textencoder.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
textmetrics.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
texttrack.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
texttrackcue.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
texttrackcuelist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
texttracklist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
timeranges.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
touch.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
touchevent.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
touchlist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
trackevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
transitionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
treewalker.rs Update nightly rustc. 2021-11-01 08:46:18 -04:00
uievent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
url.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
urlhelper.rs make is_origin_trustworthy a method of ServoUrl + fix localhost handling 2020-05-19 20:06:59 +03:00
urlsearchparams.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
userscripts.rs Added off thread compilation 2020-07-21 16:20:51 -04:00
validation.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
validitystate.rs Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
values.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
vertexarrayobject.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
videotrack.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
videotracklist.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
virtualmethods.rs Introduce ElementCSSInlineStyle for SVGElement 2020-06-05 00:10:19 +09:00
vttcue.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
vttregion.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
webgl2renderingcontext.rs Update mozjs. 2021-02-18 09:35:45 -05:00
webglactiveinfo.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
webglbuffer.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglcontextevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
webglframebuffer.rs Make textures that come from webxr invalid outside an rAF 2020-08-06 17:51:58 -05:00
webglobject.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
webglprogram.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglquery.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglrenderbuffer.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglrenderingcontext.rs Try to use WebRender types more 2023-07-10 17:35:50 +02:00
webglsampler.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglshader.rs Implement EXT_frag_depth 2020-05-11 11:51:04 +03:00
webglshaderprecisionformat.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
webglsync.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webgltexture.rs Remove the DOMToTexture feature 2023-06-27 11:39:52 +02:00
webgltransformfeedback.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webgluniformlocation.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
webglvertexarrayobject.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
webglvertexarrayobjectoes.rs Replaced failible boolean with an enum 2020-04-23 18:23:01 +02:00
websocket.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
wheelevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
window.rs bump base64 from 0.10 to 0.21 (#29804) 2023-08-02 21:25:37 +00:00
windowproxy.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
worker.rs Fix race condition and other issues related to Worker destruction. (#30066) 2023-08-03 23:33:21 +00:00
workerglobalscope.rs Fix race condition and other issues related to Worker destruction. (#30066) 2023-08-03 23:33:21 +00:00
workerlocation.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
workernavigator.rs dom: Implement Navigator.languages. 2020-07-14 11:50:59 -04:00
worklet.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
workletglobalscope.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
xmldocument.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
xmlhttprequest.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xmlhttprequesteventtarget.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
xmlhttprequestupload.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
xmlserializer.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrcompositionlayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrcubelayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrcylinderlayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrequirectlayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrframe.rs Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
xrhand.rs Add XRHand[index] 2020-04-27 17:35:48 -07:00
xrhittestresult.rs Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
xrhittestsource.rs Add XRFrame::getHitTestResults() 2020-04-19 20:29:14 -07:00
xrinputsource.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
xrinputsourcearray.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
xrinputsourceevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrinputsourceschangeevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrjointpose.rs Add XRJointPose 2020-04-27 17:35:48 -07:00
xrjointspace.rs Add XRJointSpace 2020-04-27 17:35:48 -07:00
xrlayer.rs Update WebXR Layer IDL, and matching changes to the Rust code. 2020-08-03 12:37:01 -05:00
xrlayerevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrmediabinding.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrpose.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
xrprojectionlayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrquadlayer.rs Add a dummy implementation of all the XR Layer types 2020-08-04 15:10:01 -05:00
xrray.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrreferencespace.rs Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
xrrenderstate.rs Update WebXR Layer IDL, and matching changes to the Rust code. 2020-08-03 12:37:01 -05:00
xrrigidtransform.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrsession.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
xrsessionevent.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrspace.rs Add XRJointSpace 2020-04-27 17:35:48 -07:00
xrsubimage.rs Added first-cut implementation of XR layers 2020-04-13 13:57:58 -05:00
xrsystem.rs Remove global argument from Promise::new_in_current_realm. 2023-05-20 11:05:09 -04:00
xrtest.rs Support .supportedModes to enable newer tests 2020-04-19 20:29:14 -07:00
xrview.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
xrviewerpose.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
xrviewport.rs Add trait DomObjectWrap to provide WRAP function 2020-03-20 22:16:56 -04:00
xrwebglbinding.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrwebgllayer.rs Rename reflect_dom_object2. 2023-05-31 23:03:32 -04:00
xrwebglsubimage.rs Support for webxr layer management 2020-06-28 16:37:45 -05:00