mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
script: Get the window rectangle from the WebViewDelegate
instead of via the compositor (#37960)
Previously, `screenX`, `screenY`, `outerHeight`, `outerWidth`, `moveBy`, `resizeBy` ask compositor for window rectangle, which then return "inner" rectangle after consulting Embedder. This PR 1. removes `GetClientWindowRect` from compositor, and directly let script ask embedder. 2. add `window_size` to `ScreenGeometry` 3. add a lot of docs to `ScreenGeometry` Testing: `tests\wpt\mozilla\tests\mozilla\window_resizeTo.html` can now pass for Headed Window. Fixes: #37824 --------- Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
d40e9f82a2
commit
c5aeac3cea
16 changed files with 59 additions and 104 deletions
|
@ -912,18 +912,6 @@ impl IOCompositor {
|
|||
.collect();
|
||||
let _ = result_sender.send((font_keys, font_instance_keys));
|
||||
},
|
||||
CompositorMsg::GetClientWindowRect(webview_id, response_sender) => {
|
||||
let client_window_rect = self
|
||||
.webview_renderers
|
||||
.get(webview_id)
|
||||
.map(|webview_renderer| {
|
||||
webview_renderer.client_window_rect(self.rendering_context.size2d())
|
||||
})
|
||||
.unwrap_or_default();
|
||||
if let Err(error) = response_sender.send(client_window_rect) {
|
||||
warn!("Sending response to get client window failed ({error:?}).");
|
||||
}
|
||||
},
|
||||
CompositorMsg::GetScreenSize(webview_id, response_sender) => {
|
||||
let screen_size = self
|
||||
.webview_renderers
|
||||
|
@ -993,11 +981,6 @@ impl IOCompositor {
|
|||
.collect();
|
||||
let _ = result_sender.send((font_keys, font_instance_keys));
|
||||
},
|
||||
CompositorMsg::GetClientWindowRect(_, response_sender) => {
|
||||
if let Err(error) = response_sender.send(Default::default()) {
|
||||
warn!("Sending response to get client window failed ({error:?}).");
|
||||
}
|
||||
},
|
||||
CompositorMsg::GetScreenSize(_, response_sender) => {
|
||||
if let Err(error) = response_sender.send(Default::default()) {
|
||||
warn!("Sending response to get client window failed ({error:?}).");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue