mirror of
https://github.com/servo/servo.git
synced 2025-09-27 23:30:08 +01:00
script: Chain up keyboard scrolling to parent <iframe>
s (#39469)
When an `<iframe>` cannot scroll because the size of the frame is greater than or equal to the size of page contents, chain up the keyboard scroll operation to the parent frame. Testing: A new Servo-only WPT tests is added, though needs to be manually run with `--product servodriver`. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Delan Azabani <dazabani@igalia.com>
This commit is contained in:
parent
75e32ba5a4
commit
ffdb7d3663
23 changed files with 406 additions and 132 deletions
|
@ -306,9 +306,11 @@ pub trait Layout {
|
|||
fn query_client_rect(&self, node: TrustedNodeAddress) -> Rect<i32>;
|
||||
fn query_element_inner_outer_text(&self, node: TrustedNodeAddress) -> String;
|
||||
fn query_offset_parent(&self, node: TrustedNodeAddress) -> OffsetParentResponse;
|
||||
/// Query the scroll container for the given node. If node is `None`, the scroll container for
|
||||
/// the viewport is returned.
|
||||
fn query_scroll_container(
|
||||
&self,
|
||||
node: TrustedNodeAddress,
|
||||
node: Option<TrustedNodeAddress>,
|
||||
flags: ScrollContainerQueryFlags,
|
||||
) -> Option<ScrollContainerResponse>;
|
||||
fn query_resolved_style(
|
||||
|
@ -377,7 +379,7 @@ bitflags! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
#[derive(Clone, Copy, Debug, MallocSizeOf)]
|
||||
pub struct AxesOverflow {
|
||||
pub x: Overflow,
|
||||
pub y: Overflow,
|
||||
|
@ -401,9 +403,18 @@ impl From<&ComputedValues> for AxesOverflow {
|
|||
}
|
||||
}
|
||||
|
||||
impl AxesOverflow {
|
||||
pub fn to_scrollable(&self) -> Self {
|
||||
Self {
|
||||
x: self.x.to_scrollable(),
|
||||
y: self.y.to_scrollable(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub enum ScrollContainerResponse {
|
||||
Viewport,
|
||||
Viewport(AxesOverflow),
|
||||
Element(UntrustedNodeAddress, AxesOverflow),
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue