Source/WTF/ChangeLog

 12021-05-09 Dean Jackson <dino@apple.com>
 2
 3 [WebXR] Allow WebXR to be tested on PLATFORM(COCOA)
 4 https://bugs.webkit.org/show_bug.cgi?id=225578
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Compile-time enabled on all Cocoa platforms.
 9
 10 * wtf/PlatformEnableCocoa.h:
 11
1122021-05-08 Diego Pino Garcia <dpino@igalia.com>
213
314 [GLIB] REGRESSION(r277158) imported/w3c/web-platform-tests/xhr/FormData-append.html is crashing

Source/WebKit/ChangeLog

 12021-05-09 Dean Jackson <dino@apple.com>
 2
 3 [WebXR] Allow WebXR to be tested on PLATFORM(COCOA)
 4 https://bugs.webkit.org/show_bug.cgi?id=225578
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Remove checking for a WebXR feature flag.
 9
 10 * Shared/WebPreferencesDefaultValues.cpp:
 11 (WebKit::defaultWebXREnabled):
 12
1132021-05-08 Carlos Garcia Campos <cgarcia@igalia.com>
214
315 [SOUP] Use the new libsoup network metrics API

Source/WTF/wtf/PlatformEnableCocoa.h

599599#define ENABLE_WEBPROCESS_NSRUNLOOP 1
600600#endif
601601
602 #if !defined(ENABLE_WEBXR) && HAVE(WEBXR_INTERNALS)
 602#if !defined(ENABLE_WEBXR) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
603603#define ENABLE_WEBXR 1
604604#endif
605605

Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h

2727
2828#if ENABLE(WEBXR) && PLATFORM(COCOA)
2929#include "PlatformXR.h"
30 #include <WebKitAdditions/PlatformXRAdditions.h>
3130#endif

Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.mm

2828
2929#if ENABLE(WEBXR) && PLATFORM(COCOA)
3030
31 #import <WebKitAdditions/PlatformXRAdditions.mm>
 31#import <wtf/NeverDestroyed.h>
 32
 33using namespace WebCore;
 34
 35namespace PlatformXR {
 36
 37struct Instance::Impl {
 38 WTF_MAKE_FAST_ALLOCATED;
 39public:
 40 Impl() = default;
 41 ~Impl() = default;
 42};
 43
 44Instance& Instance::singleton()
 45{
 46 static LazyNeverDestroyed<Instance> s_instance;
 47 static std::once_flag s_onceFlag;
 48 std::call_once(s_onceFlag,
 49 [&] {
 50 s_instance.construct();
 51 });
 52 return s_instance.get();
 53}
 54
 55Instance::Instance()
 56 : m_impl(makeUniqueRef<Impl>())
 57{
 58}
 59
 60void Instance::enumerateImmersiveXRDevices(CompletionHandler<void(const DeviceList& devices)>&& callback)
 61{
 62 callback({ });
 63}
 64
 65}
3266
3367#endif

Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

@@bool defaultWebXREnabled()
267267{
268268#if HAVE(WEBXR_INTERNALS)
269269 return true;
270 #elif HAVE(SYSTEM_FEATURE_FLAGS)
271  return isFeatureFlagEnabled("WebXR");
272270#else
273271 return false;
274272#endif

LayoutTests/ChangeLog

 12021-05-09 Dean Jackson <dino@apple.com>
 2
 3 [WebXR] Allow WebXR to be tested on PLATFORM(COCOA)
 4 https://bugs.webkit.org/show_bug.cgi?id=225578
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Remove the skip rule for the WebXR directory, and add more
 9 specific expected results.
 10
 11 * TestExpectations:
 12
1132021-05-08 Ricky Mondello <rmondello@apple.com>
214
315 Fix a typo

LayoutTests/imported/w3c/ChangeLog

 12021-05-09 Dean Jackson <dino@apple.com>
 2
 3 [WebXR] Allow WebXR to be tested on PLATFORM(COCOA)
 4 https://bugs.webkit.org/show_bug.cgi?id=225578
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 New expected results.
 9
 10 * web-platform-tests/webxr/exclusive_requestFrame_nolayer.https-expected.txt: Added.
 11 * web-platform-tests/webxr/render_state_vertical_fov_inline.https-expected.txt: Added.
 12 * web-platform-tests/webxr/webxr-supported-by-feature-policy-expected.txt: Added.
 13 * web-platform-tests/webxr/webxr_availability.http.sub-expected.txt: Added.
 14 * web-platform-tests/webxr/webxr_feature_policy.https-expected.txt: Added.
 15 * web-platform-tests/webxr/xrFrame_lifetime.https-expected.txt: Added.
 16 * web-platform-tests/webxr/xrPose_transform_sameObject.https-expected.txt: Added.
 17 * web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt: Added.
 18 * web-platform-tests/webxr/xrSession_input_events_end.https-expected.txt: Added.
 19 * web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt: Added.
 20 * web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt: Added.
 21 * web-platform-tests/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt: Added.
 22 * web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt: Added.
 23
1242021-05-06 Tim Nguyen <ntim@apple.com>
225
326 Re-import css/mediaqueries/test_media_queries.html WPT

LayoutTests/TestExpectations

@@webkit.org/b/207260 imported/w3c/web-platform-tests/web-animations/timing-model/
35823582
35833583webkit.org/b/207262 imported/w3c/web-platform-tests/web-animations/timing-model/animations/sync-start-times.html [ Pass ImageOnlyFailure ]
35843584
3585 # WebXR is being implemented
3586 webkit.org/b/208988 http/wpt/webxr [ Skip ]
3587 webkit.org/b/208988 imported/w3c/web-platform-tests/webxr [ Skip ]
3588 
35893585webkit.org/b/210963 imported/w3c/web-platform-tests/css/css-animations/animation-important-002.html [ ImageOnlyFailure ]
35903586
35913587webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/central-baseline-alignment-003.xht [ ImageOnlyFailure Pass ]

@@webkit.org/b/225247 [ Debug ] fast/multicol/span/float-becomes-spanner-crash.htm
49484944imported/w3c/web-platform-tests/webstorage/storage_session_setitem_quotaexceedederr.window.html [ Skip ]
49494945# This webstorage test has timed out since it was imported.
49504946imported/w3c/web-platform-tests/webstorage/document-domain.html [ Skip ]
 4947
 4948# WebXR - Missing modules.
 4949webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/anchors [ Skip ]
 4950webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/ar-module [ Skip ]
 4951webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/dom-overlay [ Skip ]
 4952webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/gamepads-module [ Skip ]
 4953webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/hit-test [ Skip ]
 4954
 4955# WebXR - These currently timeout due to missing features.
 4956webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/events_referenceSpace_reset_immersive.https.html [ Skip ]
 4957webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/events_referenceSpace_reset_inline.https.html [ Skip ]
 4958webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/getInputPose_pointer.https.html [ Skip ]
 4959webkit.org/b/208988 imported/w3c/web-platform-tests/webxr/xrDevice_disconnect_ends.https.html [ Skip ]
 4960webkit.org/b/208988 http/wpt/webxr/xrSession_ended_by_system.https.html [ Skip ]

LayoutTests/imported/w3c/web-platform-tests/webxr/exclusive_requestFrame_nolayer.https-expected.txt

 1
 2FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive assert_equals: expected object "[object XRWebGLLayer]" but got object "[object XRWebGLLayer]"
 3FAIL XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive assert_equals: expected object "[object XRWebGLLayer]" but got object "[object XRWebGLLayer]"
 4

LayoutTests/imported/w3c/web-platform-tests/webxr/render_state_vertical_fov_inline.https-expected.txt

 1
 2FAIL inlineVerticalFieldOfView is set appropriately on inline sessions promise_test: Unhandled rejection with value: object "InvalidStateError: The object is in an invalid state."
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/webxr-supported-by-feature-policy-expected.txt

 1
 2FAIL document.featurePolicy.features should advertise xr-spatial-tracking. undefined is not an object (evaluating 'document.featurePolicy.features')
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/webxr_availability.http.sub-expected.txt

 1
 2FAIL Test webxr not available in insecure context assert_equals: navigator.xr was defined in insecure context. expected (undefined) undefined but got (object) object "[object XRSystem]"
 3FAIL Test webxr not available in secure context in insecure context assert_equals: Some objects were defined in insecure context: navigator.xr,XRSession,XRFrame,XRLayer,XRView,XRViewport,XRViewerPose,XRWebGLLayer,XRSessionEvent expected 0 but got 9
 4

LayoutTests/imported/w3c/web-platform-tests/webxr/webxr_feature_policy.https-expected.txt

 1
 2Harness Error (FAIL), message = Test named 'Validate devicechange event behavior without xr-spatial-tracking policy' specified 1 'cleanup' function, and 1 failed.
 3
 4FAIL Validate isSessionSupported behavior without xr-spatial-tracking policy assert_unreached: Should have rejected: Immersive isSessionSupported should reject Reached unreachable code
 5FAIL Validate requestSession behavior without xr-spatial-tracking policy assert_unreached: Should have rejected: Inline with features should reject without feature policy Reached unreachable code
 6PASS Validate devicechange event behavior without xr-spatial-tracking policy
 7

LayoutTests/imported/w3c/web-platform-tests/webxr/xrFrame_lifetime.https-expected.txt

 1
 2PASS XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions
 3PASS XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions
 4

LayoutTests/imported/w3c/web-platform-tests/webxr/xrPose_transform_sameObject.https-expected.txt

 1
 2PASS XRPose.transform meets [SameObject] requirement
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt

 1
 2FAIL Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. The object is in an invalid state.
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/xrSession_input_events_end.https-expected.txt

 1
 2FAIL Calling end during an input callback stops processing at the right time assert_equals: Expected end event, but got selectstart event instead expected "end" but got "selectstart"
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt

 1
 2FAIL Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. promise_test: Unhandled rejection with value: "Session with params \"immersive-vr\" was rejected on device {\"supportsImmersive\":true,\"supportedModes\":[\"inline\",\"immersive-vr\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"viewerOrigin\":{\"position\":[0,0,0],\"orientation\":[0,0,0,1]},\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\"]} with error: OperationError: Unable to allocate XRWebGLLayer GPU resources."
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt

 1
 2FAIL 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions promise_test: Unhandled rejection with value: "Session with params \"immersive-vr\" was rejected on device {\"supportsImmersive\":true,\"supportedModes\":[\"inline\",\"immersive-vr\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"viewerOrigin\":{\"position\":[0,0,0],\"orientation\":[0,0,0,1]},\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\"]} with error: OperationError: Unable to allocate XRWebGLLayer GPU resources."
 3PASS 'floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions
 4

LayoutTests/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_framebuffer_scale.https-expected.txt

 1
 2FAIL Ensure framebuffer scaling works as expected. undefined is not an object (evaluating 'fakeDeviceController.displayInfo_.webxrDefaultFramebufferScale')
 3

LayoutTests/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https-expected.txt

 1
 2FAIL Ensure that the framebuffer given by the WebGL layer works with stencil for immersive assert_equals: Should not initially have any errors expected 0 but got 1282
 3