From 5eb2125a124bc60c233ce92a636f3cdf0302194d Mon Sep 17 00:00:00 2001 From: Marcos Caceres Date: Fri, 28 Apr 2023 12:07:58 -0700 Subject: [PATCH] [ iOS ] 2x imported/w3c/web-platform-tests/screen-orientation are near-constant text failures. https://bugs.webkit.org/show_bug.cgi?id=255931 rdar://108508861 Reviewed by Chris Dumez. The cleanup function was accidentally calling "document.screen". Fixing that revealed a bunch of smaller bugs in the tests. * LayoutTests/TestExpectations: * LayoutTests/imported/w3c/web-platform-tests/page-visibility/resources/window_state_context.js: (window_state_context.async restore): (window_state_context): * LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js: (async if): (window.test_driver_internal.set_window_rect): * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock.html: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/event-before-promise-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document.html: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/lock-basic-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents.html: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe.html: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/unlock-expected.txt: * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/263509@main --- LayoutTests/TestExpectations | 3 +++ .../resources/window_state_context.js | 9 +++++---- .../resources/testdriver-vendor.js | 2 +- .../screen-orientation/active-lock-expected.txt | 6 ++---- .../screen-orientation/active-lock.html | 4 ++-- .../event-before-promise-expected.txt | 2 -- .../hidden_document-expected.txt | 6 ++---- .../screen-orientation/hidden_document.html | 12 +++++++++--- .../screen-orientation/lock-basic-expected.txt | 6 ++---- .../nested-documents-expected.txt | 7 +++++-- .../screen-orientation/nested-documents.html | 14 ++++---------- .../screen-orientation/onchange-event-expected.txt | 4 +--- .../onchange-event-subframe-expected.txt | 4 ++-- .../onchange-event-subframe.html | 9 ++++++++- .../orientation-reading-expected.txt | 6 ++---- .../resources/orientation-utils.js | 6 ++---- .../screen-orientation/unlock-expected.txt | 5 ++--- LayoutTests/platform/ios/TestExpectations | 4 ---- 18 files changed, 52 insertions(+), 57 deletions(-) diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations index e5cac58314f1..ccf7c1c3624f 100644 --- a/LayoutTests/TestExpectations +++ b/LayoutTests/TestExpectations @@ -6262,3 +6262,6 @@ webkit.org/b/255101 imported/w3c/web-platform-tests/css/css-backgrounds/box-shad webkit.org/b/255101 imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001.html [ ImageOnlyFailure ] webkit.org/b/255101 imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002.html [ ImageOnlyFailure ] webkit.org/b/255101 imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003.html [ ImageOnlyFailure ] + +# Flaky test that sometimes passes and sometimes fails. +imported/w3c/web-platform-tests/screen-orientation/nested-documents.html [ Pass Failure ] diff --git a/LayoutTests/imported/w3c/web-platform-tests/page-visibility/resources/window_state_context.js b/LayoutTests/imported/w3c/web-platform-tests/page-visibility/resources/window_state_context.js index 40f10a564484..5ff4837328d2 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/page-visibility/resources/window_state_context.js +++ b/LayoutTests/imported/w3c/web-platform-tests/page-visibility/resources/window_state_context.js @@ -2,12 +2,13 @@ function window_state_context(t) { let rect = null; let state = "restored"; t.add_cleanup(async () => { - if (state === "minimized") - await restore(); + if (state === "minimized") await restore(); }); async function restore() { - state = "restored"; + if (state !== "minimized") return; + state = "restoring"; await test_driver.set_window_rect(rect); + state = "restored"; } async function minimize() { @@ -15,5 +16,5 @@ function window_state_context(t) { rect = await test_driver.minimize_window(); } - return {minimize, restore}; + return { minimize, restore }; } diff --git a/LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js b/LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js index 32fb0861770b..c89d2641261f 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js +++ b/LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js @@ -467,7 +467,7 @@ window.test_driver_internal.minimize_window = async function (context=null) */ window.test_driver_internal.set_window_rect = async function (rect, context=null) { - if (typeof rect !== "object" || typeof rect.width !== "number" || typeof rect.height !== "number") + if (!rect || typeof rect !== "object" || typeof rect.width !== "number" || typeof rect.height !== "number") throw new Error("Invalid rect"); context = context ?? window; diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock-expected.txt index 9267deed770a..dc00dcf26096 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock-expected.txt @@ -1,8 +1,6 @@ fragment -Harness Error (FAIL), message = Test named 'Performing a fragment navigation must not abort the screen orientation change' specified 1 'cleanup' function, and 1 failed. - FAIL Performing a fragment navigation must not abort the screen orientation change promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" -NOTRUN Performing a fragment navigation within an iframe must not abort the lock promise -NOTRUN Unloading an iframe by navigating it must abort the lock promise +FAIL Performing a fragment navigation within an iframe must not abort the lock promise promise_test: Unhandled rejection with value: object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" +FAIL Unloading an iframe by navigating it must abort the lock promise promise_rejects_dom: function "function () { throw e }" threw object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" that is not a DOMException AbortError: property "code" is equal to 18, expected 20 diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock.html b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock.html index 6dcbe4a8ffab..583664f4d872 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock.html +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/active-lock.html @@ -31,7 +31,7 @@

fragment `; - await test_driver.bless("request full screen"); + await test_driver.bless("request full screen", null, iframe.contentWindow); await document.documentElement.requestFullscreen(); const orientation = getOppositeOrientation(); const p = iframe.contentWindow.screen.orientation.lock(orientation); @@ -43,7 +43,7 @@ promise_test(async (t) => { t.add_cleanup(makeCleanup()); const iframe = await attachIframe(); - await test_driver.bless("request full screen"); + await test_driver.bless("request full screen", null, iframe.contentWindow); await document.documentElement.requestFullscreen(); const orientation = getOppositeOrientation(); const p = iframe.contentWindow.screen.orientation.lock(orientation); diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/event-before-promise-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/event-before-promise-expected.txt index 6ee492846f9a..73728b85b30d 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/event-before-promise-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/event-before-promise-expected.txt @@ -1,5 +1,3 @@ -Harness Error (FAIL), message = Test named 'The 'change' event must fire before the [[orientationPendingPromise]] is resolved.' specified 1 'cleanup' function, and 1 failed. - FAIL The 'change' event must fire before the [[orientationPendingPromise]] is resolved. promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document-expected.txt index a0d63582591d..ad95b2bd5ff3 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document-expected.txt @@ -1,8 +1,6 @@ -Harness Error (FAIL), message = Test named 'hidden documents must not unlock the screen orientation' specified 3 'cleanup' functions, and 2 failed. - PASS hidden documents must reject went trying to call lock or unlock PASS hidden documents must reject went trying to call unlock -FAIL hidden documents must not unlock the screen orientation promise_test: Unhandled rejection with value: object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" -NOTRUN Once maximized, a minimized window can lock or unlock the screen orientation again +FAIL hidden documents must not unlock the screen orientation promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" +FAIL Once maximized, a minimized window can lock or unlock the screen orientation again promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document.html b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document.html index 4d018a882a11..6ff78ea866ac 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document.html +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/hidden_document.html @@ -19,7 +19,7 @@ await minimize(); assert_equals(document.visibilityState, "hidden", "Document must be hidden"); - await promise_rejects_dom(t, "SecurityError", screen.orientation.lock("landscape") ); + await promise_rejects_dom(t, "SecurityError", screen.orientation.lock(getOppositeOrientation())); }, "hidden documents must reject went trying to call lock or unlock"); promise_test(async (t) => { @@ -34,8 +34,10 @@ promise_test(async (t) => { const { minimize, restore } = window_state_context(t); - t.add_cleanup(restore); t.add_cleanup(makeCleanup()); + + await test_driver.bless("request full screen"); + await document.documentElement.requestFullscreen(); await screen.orientation.lock(getOppositeOrientation()); await minimize(); @@ -46,8 +48,9 @@ promise_test(async (t) => { const { minimize, restore } = window_state_context(t); - t.add_cleanup(restore); t.add_cleanup(makeCleanup()); + await test_driver.bless("request full screen"); + await document.documentElement.requestFullscreen(); await screen.orientation.lock(getOppositeOrientation()); await minimize(); @@ -59,6 +62,9 @@ await restore(); assert_equals(document.visibilityState, "visible"); + + await test_driver.bless("request full screen"); + await document.documentElement.requestFullscreen(); await screen.orientation.lock(getOppositeOrientation()); screen.orientation.unlock(); }, "Once maximized, a minimized window can lock or unlock the screen orientation again"); diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/lock-basic-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/lock-basic-expected.txt index 8ac3b31f2df8..348f0ff0bf28 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/lock-basic-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/lock-basic-expected.txt @@ -1,7 +1,5 @@ -Harness Error (FAIL), message = Test named 'Test that screen.orientation.lock returns a promise which will be fulfilled with a void value.' specified 1 'cleanup' function, and 1 failed. - FAIL Test that screen.orientation.lock returns a promise which will be fulfilled with a void value. promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" -NOTRUN Test that screen.orientation.lock returns a pending promise. -NOTRUN Test that screen.orientation.lock() is actually async +PASS Test that screen.orientation.lock returns a pending promise. +FAIL Test that screen.orientation.lock() is actually async promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents-expected.txt index 897ec78d9e52..cc437dc6ef42 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents-expected.txt @@ -1,7 +1,10 @@ +CONSOLE MESSAGE: Unhandled Promise Rejection: NotSupportedError: Screen orientation locking is not supported +CONSOLE MESSAGE: Unhandled Promise Rejection: SecurityError: Locking the screen orientation is only allowed when in fullscreen +CONSOLE MESSAGE: Unhandled Promise Rejection: NotSupportedError: Screen orientation locking is not supported -Harness Error (FAIL), message = Test named 'Requesting orientation lock from one document cancels the lock request from another document' specified 1 'cleanup' function, and 1 failed. +Harness Error (FAIL), message = Unhandled rejection: Screen orientation locking is not supported FAIL Requesting orientation lock from one document cancels the lock request from another document promise_rejects_dom: function "function () { throw e }" threw object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" that is not a DOMException AbortError: property "code" is equal to 18, expected 20 -NOTRUN The orientation lock from one document affects lock requests from other documents +FAIL The orientation lock from one document affects lock requests from other documents promise_rejects_dom: Expected request to lock orientation from iframe 0 to abort function "function () { throw e }" threw object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" that is not a DOMException AbortError: property "code" is equal to 18, expected 20 diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents.html b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents.html index 7c128eb9856b..ec3c0b480971 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents.html +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/nested-documents.html @@ -37,7 +37,7 @@ promise_test(async (t) => { t.add_cleanup(makeCleanup()); - // Create 3 nested iframes + // Create 2 nested iframes const src = "/screen-orientation/resources/empty.html"; const outerIframe = await attachIframe({ src: `${src}#1` }); const innerIframe = await attachIframe({ @@ -49,11 +49,9 @@ // Go full screen await test_driver.bless( - "request full screen", - null, - innerIframe.contentWindow + "request full screen" ); - await innerIframe.contentDocument.documentElement.requestFullscreen(); + await document.documentElement.requestFullscreen(); const opposite = getOppositeOrientation(); // Each iframe tries to lock the orientation @@ -68,20 +66,16 @@ const topPromise = window.screen.orientation.lock(opposite); // Check that all promises are rejected with AbortError - const abortedPromises = []; for (let i = 0; i < requestToLock.length; i++) { const { promise, context } = requestToLock[i]; - const p = promise_rejects_dom( + await promise_rejects_dom( t, "AbortError", context.DOMException, promise, `Expected request to lock orientation from iframe ${i} to abort` ); - abortedPromises.push(p); } - await Promise.all(abortedPromises); - // Finally, top-level promise resolves await topPromise; }, "The orientation lock from one document affects lock requests from other documents"); diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-expected.txt index 89aa235ef4e6..0486f7d2d54d 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-expected.txt @@ -1,6 +1,4 @@ -Harness Error (FAIL), message = Test named 'Test that orientationchange event is not fired when the orientation does not change.' specified 1 'cleanup' function, and 1 failed. - FAIL Test that orientationchange event is not fired when the orientation does not change. promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" -NOTRUN Test that orientationchange event is fired when the orientation changes. +FAIL Test that orientationchange event is fired when the orientation changes. promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe-expected.txt index aacefcd1ff69..27048d74d8f4 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe-expected.txt @@ -1,7 +1,7 @@ -Harness Error (FAIL), message = Test named 'Test subframes receive orientation change events' specified 1 'cleanup' function, and 1 failed. +Harness Error (FAIL), message = Timeout while running cleanup for test named "Check directly that events are fired in right order (from top to bottom)". FAIL Test subframes receive orientation change events promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" -NOTRUN Check directly that events are fired in right order (from top to bottom) +FAIL Check directly that events are fired in right order (from top to bottom) promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe.html b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe.html index d8ded0147ccf..6eb986b43804 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe.html +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/onchange-event-subframe.html @@ -44,7 +44,14 @@ promise_test(async (t) => { t.add_cleanup(makeCleanup()); const iframe = await attachIframe(); - const opposite = getOppositeOrientation(); + let opposite = getOppositeOrientation(); + + // Fail fast in case the API is not supported + await test_driver.bless("request fullscreen", null, iframe.contentWindow); + await iframe.contentDocument.documentElement.requestFullscreen(); + await iframe.contentWindow.screen.orientation.lock(opposite); + iframe.contentWindow.screen.orientation.unlock(); + opposite = getOppositeOrientation(); const topEventPromise = new EventWatcher( t, diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt index eede8b054bdd..37cd97645537 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt @@ -1,10 +1,8 @@ -Harness Error (FAIL), message = Test named 'Test the orientations and associated angles when the natural orientation is 'portrait'' specified 1 'cleanup' function, and 1 failed. - PASS screen.orientation attributes are present PASS Test the orientations and associated angles when the natural orientation is 'portrait' -NOTRUN Test the orientations and associated angles when the natural orientation is 'landscape' +PASS Test the orientations and associated angles when the natural orientation is 'landscape' PASS Test that ScreenOrientation properties are not writable PASS Test that ScreenOrientation is always the same object -NOTRUN Test that ScreenOrientation's attribute values change after 'change' event fires +FAIL Test that ScreenOrientation's attribute values change after 'change' event fires promise_test: Unhandled rejection with value: object "NotSupportedError: Screen orientation locking is not supported" diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js index 6374f91db297..c3786fa00c00 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js @@ -35,11 +35,9 @@ export function getOppositeOrientation() { export function makeCleanup() { return async () => { - document.screen.orientation.unlock(); + screen.orientation.unlock(); if (document.fullscreenElement) { - try { - await document.exitFullscreen(); - } catch {} + await document.fullscreenElement.ownerDocument.exitFullscreen(); } }; } diff --git a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/unlock-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/unlock-expected.txt index 9d38184a5f94..0c9fc904e266 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/unlock-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/screen-orientation/unlock-expected.txt @@ -1,9 +1,8 @@ -Harness Error (FAIL), message = Test named 'unlock() doesn't throw when there is no lock with fullscreen' specified 1 'cleanup' function, and 1 failed. PASS unlock() doesn't throw when there is no lock PASS unlock() returns a void value PASS unlock() doesn't throw when there is no lock with fullscreen -NOTRUN unlock() aborts a pending lock request -NOTRUN unlock() aborts a pending lock request across documents +FAIL unlock() aborts a pending lock request promise_rejects_dom: function "function () { throw e }" threw object "NotSupportedError: Screen orientation locking is not supported" that is not a DOMException AbortError: property "code" is equal to 9, expected 20 +FAIL unlock() aborts a pending lock request across documents promise_rejects_dom: function "function () { throw e }" threw object "SecurityError: Locking the screen orientation is only allowed when in fullscreen" that is not a DOMException AbortError: property "code" is equal to 18, expected 20 diff --git a/LayoutTests/platform/ios/TestExpectations b/LayoutTests/platform/ios/TestExpectations index 8d5bbc7b853a..14dad1726662 100644 --- a/LayoutTests/platform/ios/TestExpectations +++ b/LayoutTests/platform/ios/TestExpectations @@ -2990,10 +2990,6 @@ webkit.org/b/173041 http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec webkit.org/b/230968 http/tests/websocket/tests/hybi/bad-handshake-crash.html [ Skip ] -# webkit.org/b/255931 2x imported/w3c/web-platform-tests/screen-orientation are near constant failures -imported/w3c/web-platform-tests/screen-orientation/nested-documents.html [ Failure ] -imported/w3c/web-platform-tests/screen-orientation/unlock.html [ Failure ] - # WK2 spelling dot test infrastructure isn't hooked up on iOS webkit.org/b/190764 editing/spelling/spelling-dots-repaint.html [ Skip ] webkit.org/b/190764 editing/spelling/spelling-dots-position.html [ Skip ]