diff --git a/components/layout_2020/flow/construct.rs b/components/layout_2020/flow/construct.rs index 00bcfdd2586..5cb1fe51e73 100644 --- a/components/layout_2020/flow/construct.rs +++ b/components/layout_2020/flow/construct.rs @@ -20,6 +20,7 @@ use rayon_croissant::ParallelIteratorExt; use servo_arc::Arc; use std::borrow::Cow; use std::convert::{TryFrom, TryInto}; +use style::computed_values::white_space::T as WhiteSpace; use style::properties::longhands::list_style_position::computed_value::T as ListStylePosition; use style::properties::ComputedValues; use style::selector_parser::PseudoElement; @@ -293,60 +294,96 @@ where } fn handle_text(&mut self, info: &NodeAndStyleInfo, input: Cow<'dom, str>) { - let (leading_whitespace, mut input) = self.handle_leading_whitespace(&input); - if leading_whitespace || !input.is_empty() { - // This text node should be pushed either to the next ongoing - // inline level box with the parent style of that inline level box - // that will be ended, or directly to the ongoing inline formatting - // context with the parent style of that builder. - let inlines = self.current_inline_level_boxes(); + // Skip any leading whitespace as dictated by the node's style. + let white_space = info.style.get_inherited_text().white_space; + let (preserved_leading_whitespace, mut input) = + self.handle_leading_whitespace(&input, white_space); - let mut new_text_run_contents; - let output; + if !preserved_leading_whitespace && input.is_empty() { + return; + } - { - let mut last_box = inlines.last_mut().map(|last| last.borrow_mut()); - let last_text = last_box.as_mut().and_then(|last| match &mut **last { - InlineLevelBox::TextRun(last) => Some(&mut last.text), - _ => None, - }); + // This text node should be pushed either to the next ongoing + // inline level box with the parent style of that inline level box + // that will be ended, or directly to the ongoing inline formatting + // context with the parent style of that builder. + let inlines = self.current_inline_level_boxes(); - if let Some(text) = last_text { - // Append to the existing text run - new_text_run_contents = None; - output = text; - } else { - new_text_run_contents = Some(String::new()); - output = new_text_run_contents.as_mut().unwrap(); - } + let mut new_text_run_contents; + let output; - if leading_whitespace { - output.push(' ') - } - loop { - if let Some(i) = input.bytes().position(|b| b.is_ascii_whitespace()) { + { + let mut last_box = inlines.last_mut().map(|last| last.borrow_mut()); + let last_text = last_box.as_mut().and_then(|last| match &mut **last { + InlineLevelBox::TextRun(last) => Some(&mut last.text), + _ => None, + }); + + if let Some(text) = last_text { + // Append to the existing text run + new_text_run_contents = None; + output = text; + } else { + new_text_run_contents = Some(String::new()); + output = new_text_run_contents.as_mut().unwrap(); + } + + if preserved_leading_whitespace { + output.push(' ') + } + + match ( + white_space.preserve_spaces(), + white_space.preserve_newlines(), + ) { + // All whitespace is significant, so we don't need to transform + // the input at all. + (true, true) => { + output.push_str(input); + }, + + // There are no cases in CSS where where need to preserve spaces + // but not newlines. + (true, false) => unreachable!(), + + // Spaces are not significant, but newlines might be. We need + // to collapse non-significant whitespace as appropriate. + (false, preserve_newlines) => loop { + // If there are any spaces that need preserving, split the string + // that precedes them, collapse them into a single whitespace, + // then process the remainder of the string independently. + if let Some(i) = input + .bytes() + .position(|b| b.is_ascii_whitespace() && (!preserve_newlines || b != b'\n')) + { let (non_whitespace, rest) = input.split_at(i); output.push_str(non_whitespace); output.push(' '); - if let Some(i) = rest.bytes().position(|b| !b.is_ascii_whitespace()) { + + // Find the first byte that is either significant whitespace or + // non-whitespace to continue processing it. + if let Some(i) = rest.bytes().position(|b| { + !b.is_ascii_whitespace() || (preserve_newlines && b == b'\n') + }) { input = &rest[i..]; } else { break; } } else { + // No whitespace found, so no transformation is required. output.push_str(input); break; } - } + }, } + } - if let Some(text) = new_text_run_contents { - inlines.push(ArcRefCell::new(InlineLevelBox::TextRun(TextRun { - tag: Tag::from_node_and_style_info(info), - parent_style: Arc::clone(&info.style), - text, - }))) - } + if let Some(text) = new_text_run_contents { + inlines.push(ArcRefCell::new(InlineLevelBox::TextRun(TextRun { + tag: Tag::from_node_and_style_info(info), + parent_style: Arc::clone(&info.style), + text, + }))) } } } @@ -359,10 +396,14 @@ where /// /// * Whether this text run has preserved (non-collapsible) leading whitespace /// * The contents starting at the first non-whitespace character (or the empty string) - fn handle_leading_whitespace<'text>(&mut self, text: &'text str) -> (bool, &'text str) { + fn handle_leading_whitespace<'text>( + &mut self, + text: &'text str, + white_space: WhiteSpace, + ) -> (bool, &'text str) { // FIXME: this is only an approximation of // https://drafts.csswg.org/css2/text.html#white-space-model - if !text.starts_with(|c: char| c.is_ascii_whitespace()) { + if !text.starts_with(|c: char| c.is_ascii_whitespace()) || white_space.preserve_spaces() { return (false, text); } diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs index f0d0f51ba50..fa79264db5a 100644 --- a/components/layout_2020/flow/inline.rs +++ b/components/layout_2020/flow/inline.rs @@ -756,13 +756,21 @@ impl TextRun { let mut glyphs = vec![]; let mut advance_width = Length::zero(); let mut last_break_opportunity = None; + let mut force_line_break = false; + // Fit as many glyphs within a single line as possible. loop { let next = runs.next(); + // If there are no more text runs we still need to check if the last + // run was a forced line break if next .as_ref() .map_or(true, |run| run.glyph_store.is_whitespace()) { + // If this run exceeds the bounds of the containing block, then + // we need to attempt to break the line. if advance_width > ifc.containing_block.inline_size - ifc.inline_position { + // Reset the text run iterator to the last whitespace if possible, + // to attempt to re-layout the most recent glyphs on a new line. if let Some((len, width, iter)) = last_break_opportunity.take() { glyphs.truncate(len); advance_width = width; @@ -774,10 +782,24 @@ impl TextRun { if let Some(run) = next { if run.glyph_store.is_whitespace() { last_break_opportunity = Some((glyphs.len(), advance_width, runs.clone())); + // If this whitespace ends with a newline, we need to check if + // it's meaningful within the current style. If so, we force + // a line break immediately. + let last_byte = self.text.as_bytes().get(run.range.end().to_usize() - 1); + if last_byte == Some(&b'\n') && + self.parent_style + .get_inherited_text() + .white_space + .preserve_newlines() + { + force_line_break = true; + break; + } } glyphs.push(run.glyph_store.clone()); advance_width += Length::from(run.glyph_store.total_advance()); } else { + // No more runs, so we can end the line. break; } } @@ -812,7 +834,8 @@ impl TextRun { glyphs, text_decoration_line: ifc.current_nesting_level.text_decoration_line, })); - if runs.as_slice().is_empty() { + // If this line is being broken because of a trailing newline, we can't ignore it. + if runs.as_slice().is_empty() && !force_line_break { break; } else { // New line diff --git a/components/style/properties/longhands/inherited_text.mako.rs b/components/style/properties/longhands/inherited_text.mako.rs index 41614a04d92..6587627a58f 100644 --- a/components/style/properties/longhands/inherited_text.mako.rs +++ b/components/style/properties/longhands/inherited_text.mako.rs @@ -186,7 +186,6 @@ ${helpers.predefined_type( name="white-space" values="normal pre nowrap pre-wrap pre-line" engines="gecko servo-2013 servo-2020", - servo_2020_pref="layout.2020.unimplemented", extra_gecko_values="break-spaces -moz-pre-space" gecko_enum_prefix="StyleWhiteSpace" needs_conversion="True" diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini new file mode 100644 index 00000000000..a9005e45d6e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini @@ -0,0 +1,8 @@ +[url-charset.window.html] + expected: TIMEOUT + [Blob charset should override any auto-detected charset.] + expected: TIMEOUT + + [Blob charset should override .] + expected: TIMEOUT + diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini deleted file mode 100644 index df17fc5f182..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[hypothetical-inline-alone-on-second-line.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini deleted file mode 100644 index 09b26767921..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[color-applies-to-008.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini deleted file mode 100644 index c5be6b4fcad..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[color-applies-to-015.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini deleted file mode 100644 index f256b9fa665..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c562-white-sp-000.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini deleted file mode 100644 index d7b0c2ca89d..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[float-003.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-no-content-beside-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-no-content-beside-001.html.ini new file mode 100644 index 00000000000..7b131324eca --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-no-content-beside-001.html.ini @@ -0,0 +1,2 @@ +[float-no-content-beside-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004.xht.ini new file mode 100644 index 00000000000..6036454a24a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004.xht.ini @@ -0,0 +1,2 @@ +[floats-placement-vertical-004.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini similarity index 67% rename from tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini rename to tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini index f29da48a2a0..4bfb0c2053a 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini @@ -1,4 +1,4 @@ -[hit-test-floats-003.html] +[hit-test-floats-004.html] [Miss float below something else] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini deleted file mode 100644 index baa9f1a7541..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-005.html] - [Miss clipped float] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-171.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-171.xht.ini deleted file mode 100644 index 17841b6e37d..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-171.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-171.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-173.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-173.xht.ini new file mode 100644 index 00000000000..27d146b4f76 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-173.xht.ini @@ -0,0 +1,2 @@ +[content-173.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-newline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-newline-001.xht.ini deleted file mode 100644 index 898b224f106..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-newline-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-newline-001.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-white-space-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-white-space-002.xht.ini new file mode 100644 index 00000000000..d9895725434 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/generated-content/content-white-space-002.xht.ini @@ -0,0 +1,2 @@ +[content-white-space-002.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini index 5643f1a8367..5e4d523cef9 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -11,36 +11,9 @@ [[data-expected-height\] 2] expected: FAIL - [[data-expected-height\] 4] - expected: FAIL - [[data-expected-height\] 1] expected: FAIL - [[data-expected-height\] 10] - expected: FAIL - [[data-expected-height\] 2] expected: FAIL - [[data-expected-height\] 5] - expected: FAIL - - [[data-expected-height\] 6] - expected: FAIL - - [[data-expected-height\] 9] - expected: FAIL - - [[data-expected-height\] 8] - expected: FAIL - - [[data-expected-height\] 13] - expected: FAIL - - [[data-expected-height\] 12] - expected: FAIL - - [[data-expected-height\] 11] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini deleted file mode 100644 index f3c8ca13fcc..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-percentage-inherit-001.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini deleted file mode 100644 index 6b28c0a7732..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-replaced-width-006.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini deleted file mode 100644 index f90e509741a..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[inline-replaced-width-001.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini deleted file mode 100644 index 3b1738d27e4..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[inline-replaced-width-006.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini deleted file mode 100644 index 08323ae34d3..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[inlines-016.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini deleted file mode 100644 index a8181f873e1..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[absolute-non-replaced-height-008.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini deleted file mode 100644 index b8665fc1939..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[position-static-001.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-009.xht.ini new file mode 100644 index 00000000000..91d95f9df47 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-009.xht.ini @@ -0,0 +1,2 @@ +[table-anonymous-objects-009.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-010.xht.ini new file mode 100644 index 00000000000..12c3a9c74b3 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-010.xht.ini @@ -0,0 +1,2 @@ +[table-anonymous-objects-010.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini deleted file mode 100644 index d2813834d88..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-004.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini deleted file mode 100644 index a577c292396..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-applies-to-003.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini deleted file mode 100644 index d4163fc0bd8..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-013.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini deleted file mode 100644 index 8ce343d746f..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-016.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini deleted file mode 100644 index df0a0b0c0a4..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-017.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini deleted file mode 100644 index f6ed836f1da..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-018.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini deleted file mode 100644 index a4fb2e4fe18..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-046.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini deleted file mode 100644 index 8046ab670c7..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-047.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini deleted file mode 100644 index f981ec7b5d5..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-processing-052.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini deleted file mode 100644 index 67b06807a43..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[anonymous-boxes-001b.xht] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-attachment-353.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-attachment-353.html.ini new file mode 100644 index 00000000000..d1af9d7d555 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-attachment-353.html.ini @@ -0,0 +1,2 @@ +[background-attachment-353.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-027.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-027.html.ini deleted file mode 100644 index 5c1f927e20e..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-027.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-size-027.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-028.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-028.html.ini deleted file mode 100644 index baa377e6a97..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-028.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-size-028.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-030.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-030.html.ini deleted file mode 100644 index 8f67471d49f..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-030.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-size-030.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-031.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-031.html.ini deleted file mode 100644 index 227740a1cbb..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-backgrounds/background-size-031.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-size-031.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-004.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-004.html.ini new file mode 100644 index 00000000000..7df62ee8875 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-004.html.ini @@ -0,0 +1,2 @@ +[anonymous-flex-item-004.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-005.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-005.html.ini new file mode 100644 index 00000000000..f5db1aa1610 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-005.html.ini @@ -0,0 +1,2 @@ +[anonymous-flex-item-005.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-006.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-006.html.ini new file mode 100644 index 00000000000..5865ea15bc8 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/anonymous-flex-item-006.html.ini @@ -0,0 +1,2 @@ +[anonymous-flex-item-006.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/grid-flex-item-005.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/grid-flex-item-005.html.ini new file mode 100644 index 00000000000..3fe332060a7 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/grid-flex-item-005.html.ini @@ -0,0 +1,2 @@ +[grid-flex-item-005.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-text-decor/text-decoration-subelements-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-text-decor/text-decoration-subelements-001.html.ini deleted file mode 100644 index e1bbdb7fc9d..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-text-decor/text-decoration-subelements-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-decoration-subelements-001.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini index f8e7e539aae..4a1e8110f6f 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini @@ -2,6 +2,3 @@ [Hit test intersecting scaled box] expected: FAIL - [Hit test within unscaled box] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini deleted file mode 100644 index 4c79907309b..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[CaretPosition-001.html] - [Element at (400, 100)] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/client-props-root.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/client-props-root.html.ini new file mode 100644 index 00000000000..cbdf6bf109c --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/client-props-root.html.ini @@ -0,0 +1,4 @@ +[client-props-root.html] + [client* properties on the root element] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini new file mode 100644 index 00000000000..e6e1f29e274 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini @@ -0,0 +1,2 @@ +[matchMedia-display-none-iframe.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/css/cssom/serialize-values.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/serialize-values.html.ini index ad982b96cf8..94ee12598be 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom/serialize-values.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom/serialize-values.html.ini @@ -23,15 +23,9 @@ [page-break-before: always] expected: FAIL - [white-space: inherit] - expected: FAIL - [page-break-after: inherit] expected: FAIL - [white-space: nowrap] - expected: FAIL - [page-break-before: left] expected: FAIL @@ -215,9 +209,6 @@ [display: table-cell] expected: FAIL - [white-space: pre] - expected: FAIL - [text-indent: 5%] expected: FAIL @@ -257,9 +248,6 @@ [clear: both] expected: FAIL - [white-space: pre-wrap] - expected: FAIL - [outline-width: 0px] expected: FAIL @@ -326,9 +314,6 @@ [vertical-align: 1px] expected: FAIL - [white-space: pre-line] - expected: FAIL - [display: table-column] expected: FAIL @@ -386,9 +371,6 @@ [float: none] expected: FAIL - [white-space: normal] - expected: FAIL - [list-style-type: lower-roman] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini b/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini deleted file mode 100644 index 2ca05f57bb0..00000000000 --- a/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[HTMLMediaElement.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index a3f0e3742dd..665e9b4f334 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini @@ -312,24 +312,24 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [