Closed Bug 1692053 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 27581 - Window Placement: Implement Screens and ScreenAdvanced interfaces

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox88 fixed)

RESOLVED FIXED
88 Branch
Tracking Status
firefox88 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 27581 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/27581
Details from upstream follow.

b'Mike Wasserman <msw@chromium.org>' wrote:

Window Placement: Implement Screens and ScreenAdvanced interfaces

Add RuntimeEnabled Screens interface exposed via a Window supplement.
Add RuntimeEnabled ScreenAdvanced interface that inherits from Screen.
Make Screen class non-final with virtual functions for ScreenAdvanced.

Plumb multiple blink::ScreenInfo structs from browser to renderers.
(via [Update]VisualProperties; like the existing singular ScreenInfo)
Add ScreenInfo::display_id to distinguish screens internally.

Add callback plumbing to notify Screens on ScreenInfo array changes.

Rename the old API to Window.getScreensDeprecated (avoid name collision).
TODO(crbug.com/879300): Remove the old API and plumbing in a followup.

TODO: Fix IDL ([measure] decorations; etc.)
TODO: Only fire Screens.change on array membership & currentScreen changes.
TODO: Update Screens::screens_ in OnScreenInfosChanged...
TODO: Add WindowScreens PermissionObserver & set_disconnect_handler?
TODO: Update automated tests for the new API.

Bug: 897300, 1116528
Change-Id: I1d67cfabda62796274992e3e650d5209dd7bb857
Reviewed-on: https://chromium-review.googlesource.com/2669359
WPT-Export-Revision: dfe7cfe83cd3049a3aa33176fcc5a7d81f2493a1

CI Results

Ran 15 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 2 tests and 4 subtests

Status Summary

Firefox

OK : 1
FAIL : 9
ERROR: 1

Chrome

OK : 2
PASS : 1
FAIL : 8

Safari

OK : 1
FAIL : 9
ERROR: 1

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/screen_enumeration/getScreens.tentative.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
getScreens() is present: FAIL (Chrome: PASS, Safari: FAIL)
getScreens() returns at least 1 Screen with permission granted: FAIL (Chrome: FAIL, Safari: FAIL)
getScreens() rejects the promise with permission denied: FAIL (Chrome: FAIL, Safari: FAIL)
getScreens() resolves for attached iframe; rejects for detached iframe: FAIL (Chrome: FAIL, Safari: FAIL)
Cached Screens interface from detached iframe doesn't crash, behaves okay: FAIL (Chrome: FAIL, Safari: FAIL)
/screen_enumeration/getScreens.values.https.html: ERROR [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: ERROR)
getScreensDeprecated() supports an empty set of mocked screens: FAIL (Chrome: FAIL, Safari: FAIL)
getScreensDeprecated() supports a single mocked screen: FAIL (Chrome: FAIL, Safari: FAIL)
getScreensDeprecated() supports multiple mocked screens: FAIL (Chrome: FAIL, Safari: FAIL)
getScreensDeprecated() rejects when the mock success value is set false: FAIL (Chrome: FAIL, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

/screen_enumeration/getScreens.tentative.https.window.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
/screen_enumeration/getScreens.values.https.html: ERROR [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-linux1804-64-tsan-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: ERROR)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/20700f956146
[wpt PR 27581] - Window Placement: Implement Screens and ScreenAdvanced interfaces, a=testonly
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.