Nothing is keeping the WebXRSystem held by navigator.xr alive during GC, so any custom properties on it will be destroyed on each collection. As Navigator object, it should use GenerateIsReachable=ReachableFromNavigator to maintain state.
Created attachment 431137 [details] Patch
Comment on attachment 431137 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431137&action=review r=me > Source/WebCore/ChangeLog:8 > + Test: webxr/gc.html I think test Test: line usually comes after the description? > LayoutTests/ChangeLog:15 > +2021-06-01 Sam Weinig <weinig@apple.com> Bad double changelog. > LayoutTests/webxr/gc.html:5 > +<script src="../resources/js-test-pre.js"></script> Can use js-test.js > LayoutTests/webxr/gc.html:32 > +<script src="../resources/js-test-post.js"></script> Not needed.
Created attachment 431145 [details] Patch
Committed r278750 (238711@main): <https://commits.webkit.org/238711@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431145 [details].
<rdar://problem/79175625>