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
|
@ -333,11 +333,17 @@ impl Layout for LayoutThread {
|
|||
#[servo_tracing::instrument(skip_all)]
|
||||
fn query_scroll_container(
|
||||
&self,
|
||||
node: TrustedNodeAddress,
|
||||
node: Option<TrustedNodeAddress>,
|
||||
flags: ScrollContainerQueryFlags,
|
||||
) -> Option<ScrollContainerResponse> {
|
||||
let node = unsafe { ServoLayoutNode::new(&node) };
|
||||
process_scroll_container_query(node, flags)
|
||||
let node = unsafe { node.as_ref().map(|node| ServoLayoutNode::new(node)) };
|
||||
let viewport_overflow = self
|
||||
.box_tree
|
||||
.borrow()
|
||||
.as_ref()
|
||||
.expect("Should have a BoxTree for all scroll container queries.")
|
||||
.viewport_overflow;
|
||||
process_scroll_container_query(node, flags, viewport_overflow)
|
||||
}
|
||||
|
||||
#[servo_tracing::instrument(skip_all)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue