Auto merge of #25690 - mrobinson:queries, r=SimonSapin

Add support for some basic queries to layout_2020

These queries will make it easier to track progressions in the layout_2020 code.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This commit is contained in:
bors-servo 2020-02-11 13:43:26 -05:00 committed by GitHub
commit 6b2079e5b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
174 changed files with 2363 additions and 69 deletions

View file

@ -10,7 +10,7 @@ use crate::flow::{BlockContainer, BlockFormattingContext, BlockLevelBox};
use crate::formatting_contexts::IndependentFormattingContext;
use crate::fragments::Fragment;
use crate::geom::flow_relative::Vec2;
use crate::geom::PhysicalRect;
use crate::geom::{PhysicalPoint, PhysicalRect, PhysicalSize};
use crate::positioned::AbsolutelyPositionedBox;
use crate::positioned::PositioningContext;
use crate::replaced::ReplacedContent;
@ -22,6 +22,7 @@ use euclid::default::{Point2D, Rect, Size2D};
use gfx_traits::print_tree::PrintTree;
use script_layout_interface::wrapper_traits::LayoutNode;
use servo_arc::Arc;
use style::dom::OpaqueNode;
use style::properties::ComputedValues;
use style::values::computed::Length;
use style_traits::CSSPixel;
@ -35,8 +36,8 @@ pub struct FragmentTreeRoot {
/// The scrollable overflow of the root of the fragment tree.
scrollable_overflow: PhysicalRect<Length>,
/// The axis-aligned bounding box of the border box of all child fragments
bounding_box_of_border_boxes: PhysicalRect<Length>,
/// The containing block used in the layout of this fragment tree.
initial_containing_block: PhysicalRect<Length>,
}
impl BoxTreeRoot {
@ -117,13 +118,18 @@ impl BoxTreeRoot {
viewport: euclid::Size2D<f32, CSSPixel>,
) -> FragmentTreeRoot {
let style = ComputedValues::initial_values();
// FIXME: use the documents mode:
// https://drafts.csswg.org/css-writing-modes/#principal-flow
let physical_containing_block = PhysicalRect::new(
PhysicalPoint::zero(),
PhysicalSize::new(Length::new(viewport.width), Length::new(viewport.height)),
);
let initial_containing_block = DefiniteContainingBlock {
size: Vec2 {
inline: Length::new(viewport.width),
block: Length::new(viewport.height),
inline: physical_containing_block.size.width,
block: physical_containing_block.size.height,
},
// FIXME: use the documents mode:
// https://drafts.csswg.org/css-writing-modes/#principal-flow
style,
};
@ -142,8 +148,6 @@ impl BoxTreeRoot {
&mut independent_layout.fragments,
);
// FIXME(mrobinson, bug 25564): We should be using the containing block
// here to properly convert scrollable overflow to physical geometry.
let scrollable_overflow =
independent_layout
.fragments
@ -167,51 +171,18 @@ impl BoxTreeRoot {
acc.union(&child_overflow)
});
let containing_block = PhysicalRect::zero();
let bounding_box_of_border_boxes =
independent_layout
.fragments
.iter()
.fold(PhysicalRect::zero(), |acc, child| {
acc.union(&match child {
Fragment::Box(fragment) => fragment
.border_rect()
.to_physical(fragment.style.writing_mode, &containing_block),
Fragment::Anonymous(fragment) => {
fragment.rect.to_physical(fragment.mode, &containing_block)
},
Fragment::Text(fragment) => fragment
.rect
.to_physical(fragment.parent_style.writing_mode, &containing_block),
Fragment::Image(fragment) => fragment
.rect
.to_physical(fragment.style.writing_mode, &containing_block),
})
});
FragmentTreeRoot {
children: independent_layout.fragments,
scrollable_overflow,
bounding_box_of_border_boxes,
initial_containing_block: physical_containing_block,
}
}
}
impl FragmentTreeRoot {
pub fn build_display_list(
&self,
builder: &mut crate::display_list::DisplayListBuilder,
viewport_size: webrender_api::units::LayoutSize,
) {
let containing_block = PhysicalRect::new(
euclid::Point2D::zero(),
euclid::Size2D::new(
Length::new(viewport_size.width),
Length::new(viewport_size.height),
),
);
pub fn build_display_list(&self, builder: &mut crate::display_list::DisplayListBuilder) {
for fragment in &self.children {
fragment.build_display_list(builder, &containing_block)
fragment.build_display_list(builder, &self.initial_containing_block)
}
}
@ -229,15 +200,126 @@ impl FragmentTreeRoot {
))
}
pub fn bounding_box_of_border_boxes(&self) -> Rect<Au> {
let origin = Point2D::new(
Au::from_f32_px(self.bounding_box_of_border_boxes.origin.x.px()),
Au::from_f32_px(self.bounding_box_of_border_boxes.origin.y.px()),
);
let size = Size2D::new(
Au::from_f32_px(self.bounding_box_of_border_boxes.size.width.px()),
Au::from_f32_px(self.bounding_box_of_border_boxes.size.height.px()),
);
Rect::new(origin, size)
fn find<T>(
&self,
mut process_func: impl FnMut(&Fragment, &PhysicalRect<Length>) -> Option<T>,
) -> Option<T> {
fn recur<T>(
fragments: &[Fragment],
containing_block: &PhysicalRect<Length>,
process_func: &mut impl FnMut(&Fragment, &PhysicalRect<Length>) -> Option<T>,
) -> Option<T> {
for fragment in fragments {
if let Some(result) = process_func(fragment, containing_block) {
return Some(result);
}
match fragment {
Fragment::Box(fragment) => {
let new_containing_block = fragment
.content_rect
.to_physical(fragment.style.writing_mode, containing_block)
.translate(containing_block.origin.to_vector());
if let Some(result) =
recur(&fragment.children, &new_containing_block, process_func)
{
return Some(result);
}
},
Fragment::Anonymous(fragment) => {
let new_containing_block = fragment
.rect
.to_physical(fragment.mode, containing_block)
.translate(containing_block.origin.to_vector());
if let Some(result) =
recur(&fragment.children, &new_containing_block, process_func)
{
return Some(result);
}
},
_ => {},
}
}
None
}
recur(
&self.children,
&self.initial_containing_block,
&mut process_func,
)
}
pub fn get_content_box_for_node(&self, requested_node: OpaqueNode) -> Rect<Au> {
let mut bounding_box = PhysicalRect::zero();
self.find(|fragment, containing_block| {
let fragment_relative_rect = match fragment {
Fragment::Box(fragment) if fragment.tag == requested_node => fragment
.border_rect()
.to_physical(fragment.style.writing_mode, &containing_block),
Fragment::Text(fragment) if fragment.tag == requested_node => fragment
.rect
.to_physical(fragment.parent_style.writing_mode, &containing_block),
Fragment::Box(_) |
Fragment::Text(_) |
Fragment::Image(_) |
Fragment::Anonymous(_) => return None,
};
bounding_box = fragment_relative_rect
.translate(containing_block.origin.to_vector())
.union(&bounding_box);
None::<()>
});
Rect::new(
Point2D::new(
Au::from_f32_px(bounding_box.origin.x.px()),
Au::from_f32_px(bounding_box.origin.y.px()),
),
Size2D::new(
Au::from_f32_px(bounding_box.size.width.px()),
Au::from_f32_px(bounding_box.size.height.px()),
),
)
}
pub fn get_border_dimensions_for_node(&self, requested_node: OpaqueNode) -> Rect<i32> {
self.find(|fragment, containing_block| {
let (style, padding_rect) = match fragment {
Fragment::Box(fragment) if fragment.tag == requested_node => {
(&fragment.style, fragment.padding_rect())
},
Fragment::Box(_) |
Fragment::Text(_) |
Fragment::Image(_) |
Fragment::Anonymous(_) => return None,
};
// https://drafts.csswg.org/cssom-view/#dom-element-clienttop
// " If the element has no associated CSS layout box or if the
// CSS layout box is inline, return zero." For this check we
// also explicitly ignore the list item portion of the display
// style.
let display = &style.get_box().display;
if display.inside() == style::values::specified::box_::DisplayInside::Flow &&
display.outside() == style::values::specified::box_::DisplayOutside::Inline
{
return Some(Rect::zero());
}
let padding_rect = padding_rect.to_physical(style.writing_mode, &containing_block);
let border = style.get_border();
Some(Rect::new(
Point2D::new(
border.border_left_width.px() as i32,
border.border_top_width.px() as i32,
),
Size2D::new(
padding_rect.size.width.px() as i32,
padding_rect.size.height.px() as i32,
),
))
})
.unwrap_or_else(Rect::zero)
}
}

View file

@ -165,22 +165,31 @@ impl LayoutRPC for LayoutRPCImpl {
}
pub fn process_content_box_request(
_requested_node: OpaqueNode,
requested_node: OpaqueNode,
fragment_tree_root: Option<&FragmentTreeRoot>,
) -> Option<Rect<Au>> {
let fragment_tree_root = match fragment_tree_root {
Some(fragment_tree_root) => fragment_tree_root,
None => return None,
};
Some(fragment_tree_root.bounding_box_of_border_boxes())
Some(fragment_tree_root.get_content_box_for_node(requested_node))
}
pub fn process_content_boxes_request(_requested_node: OpaqueNode) -> Vec<Rect<Au>> {
vec![]
}
pub fn process_node_geometry_request(_requested_node: OpaqueNode) -> Rect<i32> {
Rect::zero()
pub fn process_node_geometry_request(
requested_node: OpaqueNode,
fragment_tree_root: Option<&FragmentTreeRoot>,
) -> Rect<i32> {
let fragment_tree_root = match fragment_tree_root {
Some(fragment_tree_root) => fragment_tree_root,
None => return Rect::zero(),
};
fragment_tree_root.get_border_dimensions_for_node(requested_node)
}
pub fn process_node_scroll_id_request<N: LayoutNode>(

View file

@ -1234,7 +1234,10 @@ impl LayoutThread {
rw_data.text_index_response = process_text_index_request(node, point_in_node);
},
&QueryMsg::ClientRectQuery(node) => {
rw_data.client_rect_response = process_node_geometry_request(node);
rw_data.client_rect_response = process_node_geometry_request(
node,
(&*self.fragment_tree_root.borrow()).as_ref(),
);
},
&QueryMsg::NodeScrollGeometryQuery(node) => {
rw_data.scroll_area_response = process_node_scroll_area_request(node);
@ -1383,11 +1386,7 @@ impl LayoutThread {
fragment_tree.scrollable_overflow(),
);
let viewport_size = webrender_api::units::LayoutSize::from_untyped(Size2D::new(
self.viewport_size.width.to_f32_px(),
self.viewport_size.height.to_f32_px(),
));
fragment_tree.build_display_list(&mut display_list, viewport_size);
fragment_tree.build_display_list(&mut display_list);
if self.dump_flow_tree {
fragment_tree.print();
@ -1408,6 +1407,10 @@ impl LayoutThread {
self.paint_time_metrics
.maybe_observe_paint_time(self, epoch, display_list.is_contentful);
let viewport_size = webrender_api::units::LayoutSize::from_untyped(Size2D::new(
self.viewport_size.width.to_f32_px(),
self.viewport_size.height.to_f32_px(),
));
self.webrender_api.send_display_list(
self.webrender_document,
epoch,

View file

@ -3,6 +3,8 @@ skip: true
skip: true
[css]
skip: false
[mozilla]
skip: false
[css]
skip: true
[CSS2]
@ -13,3 +15,5 @@ skip: true
skip: false
[css-backgrounds]
skip: false
[cssom-view]
skip: false

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -0,0 +1,7 @@
[DOMRectList.html]
[Range getClientRects()]
expected: FAIL
[Element getClientRects()]
expected: FAIL

View file

@ -0,0 +1,4 @@
[GetBoundingRect.html]
[getBoundingClientRect]
expected: FAIL

View file

@ -0,0 +1,13 @@
[HTMLBody-ScrollArea_quirksmode.html]
[document.scrollingElement should be body element in quirks.]
expected: FAIL
[scrollingElement in quirks should be null when body is potentially scrollable.]
expected: FAIL
[scrollingElement in quirks should be body if any of document and body has a visible overflow.]
expected: FAIL
[When body potentially scrollable, document.body.scrollHeight changes when changing the height of the body content in quirks.]
expected: FAIL

View file

@ -0,0 +1,19 @@
[MediaQueryList-addListener-handleEvent.html]
[throws if handleEvent is falsy and not callable]
expected: FAIL
[looks up handleEvent method on every event dispatch]
expected: FAIL
[calls handleEvent method of event listener]
expected: FAIL
[rethrows errors when getting handleEvent]
expected: FAIL
[doesn't look up handleEvent method on callable event listeners]
expected: FAIL
[throws if handleEvent is thruthy and not callable]
expected: FAIL

View file

@ -0,0 +1,19 @@
[MediaQueryList-addListener-removeListener.html]
[removing listener from one MQL doesn't remove it from all MQLs]
expected: FAIL
[listeners are called when <iframe> is resized]
expected: FAIL
[listeners are called in order they were added]
expected: FAIL
[listeners are called in order their MQLs were created]
expected: FAIL
[listener that was added twice is called only once]
expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -0,0 +1,16 @@
[MediaQueryList-extends-EventTarget-interop.html]
[removeEventListener (capture) doesn't remove listener added with addListener]
expected: FAIL
[listener added with addListener and addEventListener (capture) is called twice]
expected: FAIL
[listener added with addListener and addEventListener is called once]
expected: FAIL
[removeListener doesn't remove listener added with addEventListener (capture)]
expected: FAIL
[capturing event listener fires before non-capturing listener at target]
expected: FAIL

View file

@ -0,0 +1,13 @@
[MediaQueryList-extends-EventTarget.html]
[onchange removes listener]
expected: FAIL
[onchange adds listener]
expected: FAIL
[listeners for "change" type are called]
expected: FAIL
[addEventListener "once" option is respected]
expected: FAIL

View file

@ -0,0 +1,10 @@
[MediaQueryListEvent.html]
[argument of onchange]
expected: FAIL
[constructor of "change" event]
expected: FAIL
[argument of addListener]
expected: FAIL

View file

@ -0,0 +1,4 @@
[cssom-getBoxQuads-001.html]
[CSSOM View - getBoxQuads() returns proper border and margin boxes for block and flex]
expected: FAIL

View file

@ -0,0 +1,4 @@
[cssom-getClientRects-002.html]
[CSSOM View - GetClientRects().length is the same regardless source new lines]
expected: FAIL

View file

@ -0,0 +1,13 @@
[cssom-view-img-attributes-001.html]
[test x with display true]
expected: FAIL
[test y with display true]
expected: FAIL
[test y with display false]
expected: FAIL
[test x with display false]
expected: FAIL

View file

@ -0,0 +1,7 @@
[dom-element-scroll.html]
[Element test for having overflow]
expected: FAIL
[Element test for having scrolling box]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-002.html]
[Checking whether dynamic changes to visibility interact correctly with\n table anonymous boxes]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-003.html]
[Checking whether dynamic changes to visibility interact correctly with\n table anonymous boxes]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-dynamic-anon-box.html]
[Link should be clickable after hiding a scrollbox with an anonymous table inside]
expected: FAIL

View file

@ -0,0 +1,31 @@
[elementFromPoint-list-001.html]
[<li>Image Inside 2</li>]
expected: FAIL
[<li>Image Outside 2</li>]
expected: FAIL
[<li>Image Inside 1</li>]
expected: FAIL
[<li>Inside 1</li>]
expected: FAIL
[<li>Outside 2</li>]
expected: FAIL
[<li>Image Outside 1</li>]
expected: FAIL
[<li>Outside 3</li>]
expected: FAIL
[<li>Outside 1</li>]
expected: FAIL
[<li>Inside 2</li>]
expected: FAIL
[<li>Inside 3</li>]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-mixed-font-sizes.html]
[document.elementFromPoint finds container SPAN in the empty region above a child SPAN with a smaller font size]
expected: FAIL

View file

@ -0,0 +1,13 @@
[elementFromPoint-subpixel.html]
[Hit test top left corner of box]
expected: FAIL
[Hit test top right corner of box]
expected: FAIL
[Hit test lower left corner of box]
expected: FAIL
[Hit test bottom left corner of box]
expected: FAIL

View file

@ -0,0 +1,13 @@
[elementFromPoint.html]
[SVG element at x,y]
expected: FAIL
[no hit target at x,y]
expected: FAIL
[transformed element at x,y]
expected: FAIL
[Image Maps]
expected: FAIL

View file

@ -0,0 +1,22 @@
[elementFromPosition.html]
[test some point of the element: right line]
expected: FAIL
[test some point of the element: bottom left corner]
expected: FAIL
[test some point of the element: bottom line]
expected: FAIL
[test some point of the element: top right corner]
expected: FAIL
[test some point of the element: top left corner]
expected: FAIL
[test some point of the element: bottom right corner]
expected: FAIL
[test the top of layer]
expected: FAIL

View file

@ -0,0 +1,13 @@
[elementScroll-002.html]
[simple scroll with style: 'padding' and 'overflow: hidden']
expected: FAIL
[simple scroll with style: 'margin' and 'overflow: hidden']
expected: FAIL
[simple scroll with style: 'margin' and 'overflow: scroll']
expected: FAIL
[simple scroll with style: 'padding' and 'overflow: scroll']
expected: FAIL

View file

@ -0,0 +1,25 @@
[elementScroll.html]
[Element scrollTop/Left getter/setter test]
expected: FAIL
[Element scrollBy test (two arguments)]
expected: FAIL
[Element scrollTo test (two arguments)]
expected: FAIL
[Element scroll test (two arguments)]
expected: FAIL
[Element scroll maximum test]
expected: FAIL
[Element scrollTo test (one argument)]
expected: FAIL
[Element scrollBy test (one argument)]
expected: FAIL
[Element scroll test (one argument)]
expected: FAIL

View file

@ -0,0 +1,7 @@
[elementsFromPoint-iframes.html]
[elementsFromPoint on inner documents]
expected: FAIL
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-htb-ltr.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-htb-rtl.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-vlr-ltr.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-vlr-rtl.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-vrl-ltr.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-inline-vrl-rtl.html]
[elementsFromPoint should return all elements under a point]
expected: FAIL

View file

@ -0,0 +1,2 @@
[elementsFromPoint-shadowroot.html]
expected: ERROR

View file

@ -0,0 +1,19 @@
[elementsFromPoint-simple.html]
[elementsFromPoint for each corner of a simple div]
expected: FAIL
[elementsFromPoint for each corner of a div that is between another div and its pseudo-element]
expected: FAIL
[elementsFromPoint for each corner of a div with pointer-events:none]
expected: FAIL
[elementsFromPoint for each corner of a div that has a margin]
expected: FAIL
[elementsFromPoint for each corner of a div that has a pseudo-element]
expected: FAIL
[elementsFromPoint for each corner of a div with a 3d transform]
expected: FAIL

View file

@ -0,0 +1,13 @@
[elementsFromPoint-svg-text.html]
[elementsFromPoint for a point inside a <textPath> nested in a <text> without content]
expected: FAIL
[elementsFromPoint for a point inside a <tspan> nested in a <text> without content]
expected: FAIL
[elementsFromPoint for a point inside a <text>]
expected: FAIL
[elementsFromPoint for a point inside an overlapping <tspan> nested in a <text>]
expected: FAIL

View file

@ -0,0 +1,13 @@
[elementsFromPoint-svg.html]
[elementsFromPoint for a point inside two rects that are inside a <g>]
expected: FAIL
[elementsFromPoint for a point inside two rects]
expected: FAIL
[elementsFromPoint for a point inside two images]
expected: FAIL
[elementsFromPoint for a point inside transformed rects and <g>]
expected: FAIL

View file

@ -0,0 +1,8 @@
[elementsFromPoint-table.html]
expected: ERROR
[elementsFromPoint for points between table cells]
expected: FAIL
[elementsFromPoint for points inside table cells]
expected: FAIL

View file

@ -0,0 +1,10 @@
[elementsFromPoint.html]
[SVG element at x,y]
expected: FAIL
[no hit target at x,y]
expected: FAIL
[transformed element at x,y]
expected: FAIL

View file

@ -0,0 +1,2 @@
[getBoundingClientRect-empty-inline.html]
expected: ERROR

View file

@ -0,0 +1,4 @@
[getClientRects-br-htb-ltr.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[getClientRects-br-htb-rtl.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[getClientRects-br-vlr-ltr.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[getClientRects-br-vlr-rtl.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[getClientRects-br-vrl-ltr.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[getClientRects-br-vrl-rtl.html]
[Position of the BR element]
expected: FAIL

View file

@ -0,0 +1,10 @@
[getClientRects-inline-atomic-child.html]
[getClientRects-inline-atomic-child]
expected: FAIL
[getClientRects-inline-atomic-child 2]
expected: FAIL
[getClientRects-inline-atomic-child 1]
expected: FAIL

View file

@ -0,0 +1,2 @@
[getClientRects-inline.html]
expected: FAIL

View file

@ -0,0 +1,289 @@
[idlharness.html]
[Stringification of document.caretPositionFromPoint(5, 5)]
expected: FAIL
[Partial interface MouseEvent: member names are unique]
expected: FAIL
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type]
expected: FAIL
[Text interface: operation getBoxQuads(BoxQuadOptions)]
expected: FAIL
[CaretPosition interface: attribute offsetNode]
expected: FAIL
[Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElement("div") with too few arguments must throw TypeError]
expected: FAIL
[CaretPosition interface: existence and properties of interface object]
expected: FAIL
[Element interface: document.createElement("div") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
expected: FAIL
[Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type]
expected: FAIL
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type]
expected: FAIL
[Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Window interface: window must inherit property "screenTop" with the proper type]
expected: FAIL
[Document interface: attribute scrollingElement]
expected: FAIL
[CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[HTMLImageElement interface: attribute x]
expected: FAIL
[HTMLImageElement interface: attribute y]
expected: FAIL
[CaretPosition interface object length]
expected: FAIL
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
expected: FAIL
[CaretPosition interface: attribute offset]
expected: FAIL
[Range interface: operation getBoundingClientRect()]
expected: FAIL
[Partial dictionary MouseEventInit: member names are unique]
expected: FAIL
[HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type]
expected: FAIL
[Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
expected: FAIL
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: operation getBoxQuads(BoxQuadOptions)]
expected: FAIL
[Element interface: document.createElement("img") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
expected: FAIL
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
expected: FAIL
[Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError]
expected: FAIL
[CaretPosition interface: existence and properties of interface prototype object]
expected: FAIL
[Range interface: operation getClientRects()]
expected: FAIL
[Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[CaretPosition interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Document interface: document must inherit property "scrollingElement" with the proper type]
expected: FAIL
[CaretPosition interface object name]
expected: FAIL
[Window interface: attribute screenTop]
expected: FAIL
[Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: calling getBoxQuads(BoxQuadOptions) on document with too few arguments must throw TypeError]
expected: FAIL
[Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
expected: FAIL
[Text interface: document.createTextNode("x") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
expected: FAIL
[Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
expected: FAIL
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type]
expected: FAIL
[CaretPosition interface: operation getClientRect()]
expected: FAIL
[CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type]
expected: FAIL
[Element interface: operation scrollIntoView([object Object\],[object Object\])]
expected: FAIL
[Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[CSSPseudoElement interface: operation getBoxQuads(BoxQuadOptions)]
expected: FAIL
[Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElement("img") with too few arguments must throw TypeError]
expected: FAIL
[Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
expected: FAIL
[Document interface: document must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
expected: FAIL
[Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError]
expected: FAIL
[Window interface: attribute screenLeft]
expected: FAIL
[Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
expected: FAIL
[Element interface: operation getBoxQuads(BoxQuadOptions)]
expected: FAIL
[Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[CaretPosition interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
expected: FAIL
[Element interface: document.createElement("img") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
expected: FAIL
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
expected: FAIL
[Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
expected: FAIL
[Document interface: operation caretPositionFromPoint(double, double)]
expected: FAIL
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
expected: FAIL
[Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
expected: FAIL
[Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
expected: FAIL
[Text interface: calling getBoxQuads(BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
expected: FAIL
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type]
expected: FAIL
[Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
expected: FAIL
[Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
expected: FAIL
[Range interface: new Range() must inherit property "getClientRects()" with the proper type]
expected: FAIL
[Window interface: window must inherit property "screenLeft" with the proper type]
expected: FAIL
[CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5)]
expected: FAIL
[Element interface: document.createElement("div") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
expected: FAIL

View file

@ -0,0 +1,7 @@
[inheritance.html]
[Property scroll-behavior has initial value auto]
expected: FAIL
[Property scroll-behavior does not inherit]
expected: FAIL

View file

@ -0,0 +1,2 @@
[long_scroll_composited.html]
expected: FAIL

View file

@ -0,0 +1,10 @@
[matchMedia.html]
[iframe.matchMedia("(min-aspect-ratio: 1/1)") matches]
expected: FAIL
[iframe.matchMedia("(width: 200px)") matches]
expected: FAIL
[iframe.matchMedia("(min-width: 150px)") matches]
expected: FAIL

View file

@ -0,0 +1,4 @@
[negativeMargins.html]
[cssom-view - elementFromPoint and elementsFromPoint dealing with negative margins 1]
expected: FAIL

View file

@ -0,0 +1,4 @@
[offsetParent_element_test.html]
[Valid the algorithm rule of offsetParent check step 2]
expected: FAIL

View file

@ -0,0 +1,85 @@
[offsetTopLeft-border-box.html]
[container: 11]
expected: FAIL
[container: 10]
expected: FAIL
[container: 13]
expected: FAIL
[container: 12]
expected: FAIL
[container: 15]
expected: FAIL
[container: 14]
expected: FAIL
[container: 17]
expected: FAIL
[container: 16]
expected: FAIL
[container: 19]
expected: FAIL
[container: 18]
expected: FAIL
[container: 9]
expected: FAIL
[container: 8]
expected: FAIL
[container: 1]
expected: FAIL
[container: 0]
expected: FAIL
[container: 3]
expected: FAIL
[container: 2]
expected: FAIL
[container: 5]
expected: FAIL
[container: 4]
expected: FAIL
[container: 7]
expected: FAIL
[container: 6]
expected: FAIL
[container: 20]
expected: FAIL
[container: 21]
expected: FAIL
[container: 22]
expected: FAIL
[container: 23]
expected: FAIL
[container: 24]
expected: FAIL
[container: 25]
expected: FAIL
[container: 26]
expected: FAIL
[container: 27]
expected: FAIL

View file

@ -0,0 +1,2 @@
[offsetTopLeft-inline.html]
expected: FAIL

View file

@ -0,0 +1,25 @@
[offsetTopLeftInScrollableParent.html]
[Margins on child and parent, border on child]
expected: FAIL
[Margins on child and parent]
expected: FAIL
[Basic functionality]
expected: FAIL
[Margins on child and parent, border on child and parent, padding on child]
expected: FAIL
[Margins on child]
expected: FAIL
[Margins on child and parent, border on child and parent, padding on child and parent]
expected: FAIL
[Basic functionality in scrolled parent]
expected: FAIL
[Margins on child and parent, border on child and parent]
expected: FAIL

View file

@ -0,0 +1,7 @@
[outer-svg.html]
[scrollWidth, scrollHeight, scrollTop and scrollLeft work on outer svg element]
expected: FAIL
[clientWidth, clientHeight, clientTop and clientLeft work on outer svg element]
expected: FAIL

View file

@ -0,0 +1,7 @@
[scroll-behavior-computed.html]
[Property scroll-behavior value 'smooth']
expected: FAIL
[Property scroll-behavior value 'auto']
expected: FAIL

View file

@ -0,0 +1,7 @@
[scroll-behavior-valid.html]
[e.style['scroll-behavior'\] = "auto" should set the property value]
expected: FAIL
[e.style['scroll-behavior'\] = "smooth" should set the property value]
expected: FAIL

View file

@ -0,0 +1,4 @@
[position-sticky-root-scroller-with-scroll-behavior.html]
[Sticky elements work with the root (document) scroller]
expected: FAIL

View file

@ -0,0 +1,7 @@
[screenLeftTop.html]
[screenTop]
expected: FAIL
[screenLeft]
expected: FAIL

View file

@ -0,0 +1,2 @@
[scroll-behavior-default-css.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[scroll-behavior-element.html]
expected: ERROR

View file

@ -0,0 +1,4 @@
[scroll-behavior-main-frame-root.html]
[Page loaded]
expected: FAIL

View file

@ -0,0 +1,4 @@
[scroll-behavior-main-frame-window.html]
[Page loaded]
expected: FAIL

View file

@ -0,0 +1,4 @@
[scroll-behavior-scrollintoview-nested.html]
[scrollIntoView with nested elements with different scroll-behavior]
expected: FAIL

View file

@ -0,0 +1,67 @@
[scroll-behavior-smooth-positions.html]
[Scroll positions when performing smooth scrolling from (0, 500) to (500, 250) using scrollIntoView() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 500) to (500, 250) using scrollIntoView() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 500) to (500, 250) using scrollBy() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 500) to (500, 250) using scroll() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 500) to (500, 250) using scroll() ]
expected: FAIL
[Scroll positions when aborting a smooth scrolling with an instant scrolling]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 0) to (500, 250) using scrollIntoView() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from 500 to 250 by setting scrollTop ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 0) to (500, 250) using scrollIntoView() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 500) to (500, 250) using scrollBy() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 0) to (500, 250) using scrollTo() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 0) to (500, 250) using scroll() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 0) to (500, 250) using scroll() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 0) to (500, 250) using scrollBy() ]
expected: FAIL
[Scroll positions when aborting a smooth scrolling with another smooth scrolling]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 500) to (500, 250) using scrollTo() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from 1000 to 500 by setting scrollLeft ]
expected: FAIL
[Scroll positions when performing smooth scrolling from 0 to 500 by setting scrollLeft ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (1000, 0) to (500, 250) using scrollTo() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 500) to (500, 250) using scrollTo() ]
expected: FAIL
[Scroll positions when performing smooth scrolling from 0 to 250 by setting scrollTop ]
expected: FAIL
[Scroll positions when performing smooth scrolling from (0, 0) to (500, 250) using scrollBy() ]
expected: FAIL

View file

@ -0,0 +1,5 @@
[scroll-behavior-smooth.html]
expected: ERROR
[scroll-behavior: smooth on DIV element]
expected: FAIL

View file

@ -0,0 +1,5 @@
[scroll-behavior-subframe-root.html]
expected: ERROR
[iframe loaded]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[scroll-behavior-subframe-window.html]
expected: ERROR
[iframe loaded]
expected: NOTRUN

View file

@ -0,0 +1,4 @@
[scrollIntoView-horizontal-partially-visible.html]
[scrollIntoView scrolls partially-visible child in both axes]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-horizontal-tb-writing-mode.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,10 @@
[scrollIntoView-scrollMargin.html]
[scrollIntoView({block: "center", inline: "center"})]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"})]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"})]
expected: FAIL

View file

@ -0,0 +1,10 @@
[scrollIntoView-scrollPadding.html]
[scrollIntoView({block: "center", inline: "center"})]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"})]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"})]
expected: FAIL

View file

@ -0,0 +1,4 @@
[scrollIntoView-shadow.html]
[scrollIntoView should behave correctly if applies to shadow dom elements]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-sideways-lr-writing-mode-and-rtl-direction.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-sideways-lr-writing-mode.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-sideways-rl-writing-mode-and-rtl-direction.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-sideways-rl-writing-mode.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,13 @@
[scrollIntoView-smooth.html]
[Smooth scrollIntoView should scroll the element to the 'center' position]
expected: FAIL
[Smooth scrollIntoView should scroll the element to the 'end' position]
expected: FAIL
[Smooth scrollIntoView should scroll the element to the 'nearest' position]
expected: FAIL
[Smooth scrollIntoView should scroll the element to the 'start' position]
expected: FAIL

View file

@ -0,0 +1,10 @@
[scrollIntoView-svg-shape.html]
[scrollIntoView on an SVG shape element, rotated]
expected: FAIL
[scrollIntoView on an SVG shape element, geometry]
expected: FAIL
[scrollIntoView on an SVG shape element, translated]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-vertical-lr-writing-mode-and-rtl-direction.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-vertical-lr-writing-mode.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,28 @@
[scrollIntoView-vertical-rl-writing-mode.html]
[scrollIntoView({"block":"center","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"start"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"center"})]
expected: FAIL
[scrollIntoView({"block":"end","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"start","inline":"end"})]
expected: FAIL
[scrollIntoView({"block":"center","inline":"end"})]
expected: FAIL

View file

@ -0,0 +1,4 @@
[scrollLeft-of-scroller-with-wider-scrollbar.html]
[Test the maxmium value of scrollLeft]
expected: FAIL

View file

@ -0,0 +1,19 @@
[scrollLeftTop.html]
[writing-mode:vertical-lr; direction:ltr]
expected: FAIL
[writing-mode:vertical-rl; direction:rtl]
expected: FAIL
[writing-mode:vertical-lr; direction:rtl]
expected: FAIL
[writing-mode:vertical-rl; direction:ltr]
expected: FAIL
[writing-mode:horizontal-tb; direction:ltr]
expected: FAIL
[writing-mode:horizontal-tb; direction:rtl]
expected: FAIL

View file

@ -0,0 +1,16 @@
[scrollWidthHeight.xht]
[elemSimple.scrollWidth is its clientWidth]
expected: FAIL
[elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL
[elemSimple.scrollHeight is its clientHeight]
expected: FAIL
[elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL
[elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL

View file

@ -0,0 +1,19 @@
[scrollWidthHeightWhenNotScrollable.xht]
[elemSimple.scrollWidth is its clientWidth]
expected: FAIL
[elemSimple.scrollHeight is its clientHeight]
expected: FAIL
[elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL
[elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL
[elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL
[elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)]
expected: FAIL

View file

@ -0,0 +1,61 @@
[scrolling-quirks-vs-nonquirks.html]
[clientWidth/clientHeight on the root element in quirks mode]
expected: FAIL
[scrollLeft/scrollTop on the HTML body element in quirks mode]
expected: FAIL
[scrollBy() on the HTML body element in quirks mode]
expected: FAIL
[scrollingElement in non-quirks mode]
expected: FAIL
[clientWidth/clientHeight on the HTML body element in quirks mode]
expected: FAIL
[scrollBy() on the root element in non-quirks mode]
expected: FAIL
[scrollWidth/scrollHeight of the content in non-quirks mode]
expected: FAIL
[scrollLeft/scrollRight of the content in quirks mode]
expected: FAIL
[scrollWidth/scrollHeight of the content in quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the root element in non-quirks mode]
expected: FAIL
[scroll() on the HTML body element in quirks mode]
expected: FAIL
[scrollingElement in quirks mode]
expected: FAIL
[clientWidth/clientHeight on the HTML body element in non-quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the HTML body element in non-quirks mode]
expected: FAIL
[clientWidth/clientHeight on the root element in non-quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the root element in quirks mode]
expected: FAIL
[scrollLeft/scrollRight of the content in non-quirks mode]
expected: FAIL
[scroll() on the root element in non-quirks mode]
expected: FAIL
[scrollLeft/scrollTop on the root element in non-quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the HTML body element in quirks mode]
expected: FAIL

View file

@ -0,0 +1,7 @@
[scrollingElement.html]
[scrollingElement in quirks mode]
expected: FAIL
[scrollingElement in no-quirks mode]
expected: FAIL

View file

@ -0,0 +1,121 @@
[scrollintoview.html]
[scrollIntoView(null) starting at right,top]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"}) starting at right,top]
expected: FAIL
[scrollIntoView({block: "nearest", inline: "nearest"}) starting at left,top]
expected: FAIL
[scrollIntoView(false) starting at right,top]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"}) starting at right,top]
expected: FAIL
[scrollIntoView() starting at right,top]
expected: FAIL
[scrollIntoView(undefined) starting at left,bottom]
expected: FAIL
[scrollIntoView(false) starting at left,bottom]
expected: FAIL
[scrollIntoView({}) starting at right,top]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"}) starting at left,top]
expected: FAIL
[scrollIntoView() starting at right,bottom]
expected: FAIL
[scrollIntoView({block: "nearest", inline: "nearest"}) starting at right,top]
expected: FAIL
[scrollIntoView(undefined) starting at right,bottom]
expected: FAIL
[scrollIntoView(true) starting at left,top]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"}) starting at left,top]
expected: FAIL
[scrollIntoView({block: "center", inline: "center"}) starting at left,bottom]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"}) starting at left,bottom]
expected: FAIL
[scrollIntoView(true) starting at left,bottom]
expected: FAIL
[scrollIntoView({block: "center", inline: "center"}) starting at right,bottom]
expected: FAIL
[scrollIntoView(true) starting at right,bottom]
expected: FAIL
[scrollIntoView({block: "nearest", inline: "nearest"}) starting at right,bottom]
expected: FAIL
[scrollIntoView(false) starting at right,bottom]
expected: FAIL
[scrollIntoView({}) starting at right,bottom]
expected: FAIL
[scrollIntoView({block: "center", inline: "center"}) starting at right,top]
expected: FAIL
[scrollIntoView(false) starting at left,top]
expected: FAIL
[scrollIntoView() starting at left,top]
expected: FAIL
[scrollIntoView(undefined) starting at left,top]
expected: FAIL
[scrollIntoView({}) starting at left,top]
expected: FAIL
[scrollIntoView({block: "end", inline: "end"}) starting at right,bottom]
expected: FAIL
[scrollIntoView(null) starting at right,bottom]
expected: FAIL
[scrollIntoView(null) starting at left,top]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"}) starting at right,bottom]
expected: FAIL
[scrollIntoView({block: "center", inline: "center"}) starting at left,top]
expected: FAIL
[scrollIntoView({block: "nearest", inline: "nearest"}) starting at left,bottom]
expected: FAIL
[scrollIntoView(null) starting at left,bottom]
expected: FAIL
[scrollIntoView({block: "start", inline: "start"}) starting at left,bottom]
expected: FAIL
[scrollIntoView(true) starting at right,top]
expected: FAIL
[scrollIntoView(undefined) starting at right,top]
expected: FAIL
[scrollIntoView() starting at left,bottom]
expected: FAIL
[scrollIntoView({}) starting at left,bottom]
expected: FAIL

View file

@ -0,0 +1,37 @@
[table-client-props.html]
[Caption with margin]
expected: FAIL
[Basic table]
expected: FAIL
[Table with padding and content-box sizing]
expected: FAIL
[Table with separated border]
expected: FAIL
[Bottom caption]
expected: FAIL
[Table with padding]
expected: FAIL
[Basic caption]
expected: FAIL
[Table with collapsed border]
expected: FAIL
[Table and wider caption]
expected: FAIL
[Table and narrower caption]
expected: FAIL
[Caption with padding]
expected: FAIL
[Caption with border]
expected: FAIL

View file

@ -0,0 +1,37 @@
[table-offset-props.html]
[Caption with margin]
expected: FAIL
[Basic table]
expected: FAIL
[Table with padding and content-box sizing]
expected: FAIL
[Table with separated border]
expected: FAIL
[Bottom caption]
expected: FAIL
[Table with padding]
expected: FAIL
[Basic caption]
expected: FAIL
[Table with collapsed border]
expected: FAIL
[Table and wider caption]
expected: FAIL
[Table and narrower caption]
expected: FAIL
[Caption with padding]
expected: FAIL
[Caption with border]
expected: FAIL

View file

@ -0,0 +1,37 @@
[table-scroll-props.html]
[Caption with margin]
expected: FAIL
[Basic table]
expected: FAIL
[Table with padding and content-box sizing]
expected: FAIL
[Table with separated border]
expected: FAIL
[Bottom caption]
expected: FAIL
[Table with padding]
expected: FAIL
[Basic caption]
expected: FAIL
[Table with collapsed border]
expected: FAIL
[Table and wider caption]
expected: FAIL
[Table and narrower caption]
expected: FAIL
[Caption with padding]
expected: FAIL
[Caption with border]
expected: FAIL

View file

@ -0,0 +1,10 @@
[ttwf-js-cssomview-getclientrects-length.html]
[assert_length_of_getClientRects_from_Link]
expected: FAIL
[assert_length_of_getClientRects_from_Parent]
expected: FAIL
[assert_length_of_getClientRects_from_Button]
expected: FAIL

View file

@ -1,4 +0,0 @@
[flex-item-assign-inline-size.html]
[Test inline size against percentage]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-keep-all-008.htm]
expected: FAIL

Some files were not shown because too many files have changed in this diff Show more