Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Window Placement: Implement Screens and ScreenAdvanced interfaces
This CL makes the following changes for a planned API redesign: docs.google.com/document/d/1lgCentReLlym6j9kBS_Qo3r2HHZ6Ov7cSGjSWyi8cYs 1) Add Screens interface to vend multi-screen info for windowing. - RuntimeEnabled and permission-gated; designed like window.screen. 2) Add ScreenAdvanced interface, to extend Screen with extra info. - Make Screen impl non-final; override functions in ScreenAdvanced. 3) Add WindowScreens supplement, to host Window.getScreens(). - Rename the previous API access point to getScreensDeprecated(). 4) Add ScreenInfo::is_primary & is_internal to expose in ScreenAdvanced. - Add ScreenInfo::display_id for internal logic, it is not web-exposed. 5) Propagate multi-screen VisualProperties from browser to renderers: - Replace the singular ScreenInfo member with a new ScreenInfos struct. - Encapsulates multi-screen information and a current screen id. - Add [mutable_]current() for easy/legacy access to the current screen. - Validate mojo struct traits in [de]serialization; add tests. 6) Update WidgetBase, ChromeClient, tests, and more code accordingly. - Update RenderWidgetHostViewMac's cached display::Display on changes. - Add CoreInitializer plumbing to fire Screens.change in modules/. FOLLOWUP: Refine Screens::ScreenInfosChanged implementation. FOLLOWUP: Propagate multi-screen info to RemoteFrames. FOLLOWUP: Update/add tests; remove old API and plumbing. FOLLOWUP: Add WindowScreens PermissionObserver & set_disconnect_handler? FOLLOWUP: Use WebContentsImpl's NativeView in RWHI::GetScreenInfo? Bug: 897300, 1116528, 1138596, 1169312, 1116528, 1179876, 1179945 Test: New API roughly WAI w/ --enable-blink-features=WindowPlacement Change-Id: I1d67cfabda62796274992e3e650d5209dd7bb857 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2669359 Commit-Queue: Michael Wasserman <msw@chromium.org> Reviewed-by: John Abd-El-Malek <jam@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#858379}
- Loading branch information