css/css-page

edit

WPT coverage of the tests of css/css-page at the revision 5602b0f210e3. The tests link to their results in the browsers on wpt.fyi. The tentative tests (experimental features) and the reftests are listed separately from the stable tests.

GroupPassingTestsDisabledPass rate
Stable1820090%
Tentative23067%
Reftests225229098%
All245252097%

Failure reasons

The tests that do not pass (failing or disabled), by kind of reason. A test with several reasons counts once per kind.

  • BUG: 1
  • TEST BUG: 6

Stable tests

TestResultSubtestsKindDescription
cssom/margin-001.htmlPass4 / 4
cssom/margin-002.htmlPass2 / 2
cssom/margin-003.htmlPass2 / 2
cssom/page-001.htmlPass4 / 4
cssom/page-002.htmlPass2 / 2
inheritance.htmlPass2 / 2
page-rule-declarations-000.htmlPass21 / 21
page-rule-declarations-001.htmlPass5 / 5
page-rule-declarations-002.htmlPass7 / 7
page-rule-declarations-003.htmlPass11 / 11
page-rule-declarations-004.htmlFail6 / 8TEST BUGa dashed ident (--a) is accepted as an @page selector, as in Chrome, Firefox and Safari: it is an <ident-token>, which the grammar of the page selectors (<page-selector> = [ <ident-token>? <pseudo-page>* ]!) accepts
parsing/margin-rules-001.htmlPass33 / 33
parsing/margin-rules-002.htmlFail1 / 4TEST BUGthe last three subtests read pagerule.style.paddingLeft: CSSPageRule.style is a CSSPageDescriptors (https://drafts.csswg.org/cssom/#csspagedescriptors), a CSSStyleDeclaration whose only attributes are the page descriptors (margin*, size, pageOrientation, marks, bleed), so paddingLeft is undefined (the declaration is kept: getPropertyValue("padding-left") returns 10px); Blink exposes every property there, Gecko fails these subtests
parsing/nested-rules-001.htmlPass1 / 1
parsing/page-computed.htmlPass6 / 6
parsing/page-invalid.htmlPass5 / 5
parsing/page-rules-001.htmlPass9 / 9
parsing/page-valid.htmlPass3 / 3
parsing/size-invalid.htmlPass6 / 6
parsing/size-valid.htmlPass15 / 15

Tentative tests

TestResultSubtestsKindDescription
page-orientation.tentative.htmlPass11 / 11
parsing/page-orientation-computed.tentative.htmlFail0 / 1TEST BUGthe test expects getComputedStyle(elm).pageOrientation to be the empty string, but page-orientation is only a descriptor of @page (https://drafts.csswg.org/css-page-3/#page-orientation-prop), and a CSSStyleProperties only has the camel-cased attributes of the supported CSS properties (https://drafts.csswg.org/cssom/#dom-cssstyleproperties-camel_cased_attribute): the attribute is undefined, as in Gecko (Blink implements the descriptor as an internal property)
parsing/page-orientation-invalid.tentative.htmlPass4 / 4

Reftests

TestResultVariantsKindDescription
background-image-only-for-print.htmlPass1 / 1
basic-pagination-001-print.htmlPass1 / 1
basic-pagination-002-print.htmlPass1 / 1
basic-pagination-003-print.htmlPass1 / 1
basic-pagination-004-print.htmlPass1 / 1
basic-pagination-005-print.htmlPass1 / 1
body-background-slr-print.htmlPass1 / 1
body-background-srl-print.htmlFail0 / 1TEST BUGthe canvas background of a sideways-rl root element stitched across two pages: the first page shows the right half of the gradient (lightgray), as the text of the test says, but the reference shows a white first page (Chrome and Firefox fail the test)
body-background-vlr-print.htmlPass1 / 1
body-background-vrl-print.htmlFail0 / 1TEST BUGthe background of the body (propagated to the canvas) is positioned in the root element stitched across the pages (box-decoration-break: slice, "as though the element were rendered with no breaks present, and then sliced by the breaks afterward", https://drafts.csswg.org/css-break-3/#valdef-box-decoration-break-slice): in vertical-rl the block-start side, which the first page contains, is the right side of the stitched box, the white half of the gradient (90deg: lightgray on the left, white on the right), but the reference expects the lightgray half on the first page and the white half on the second one (the layout of the boxes and of the absolutely positioned paragraph is as expected; the vertical-lr variant passes); fails in Chrome and Firefox (as the sideways-* variants)
cssom/dynamic-001-print.htmlPass1 / 1
fixedpos-001-print.htmlPass1 / 1
fixedpos-002-print.htmlPass1 / 1
fixedpos-003-print.htmlPass1 / 1
fixedpos-004-print.htmlPass1 / 1
fixedpos-005-print.htmlPass1 / 1
fixedpos-006-print.htmlPass1 / 1
fixedpos-007-print.htmlPass1 / 1
fixedpos-008-print.htmlPass1 / 1
fixedpos-009-print.htmlPass1 / 1
fixedpos-010-print.htmlPass1 / 1
fixedpos-011-print.htmlPass1 / 1
fixedpos-with-abspos-with-link-print.htmlPass1 / 1
fixedpos-with-iframe-print.htmlPass1 / 1
fixedpos-with-link-with-inline-child-print.htmlPass1 / 1
layers-001-print.htmlPass1 / 1
layers-002-print.htmlPass1 / 1
layers-003-print.htmlPass1 / 1
layers-004-print.htmlPass1 / 1
margin-boxes/alignment-001-print.htmlPass1 / 1
margin-boxes/auto-margins-001-print.htmlPass1 / 1
margin-boxes/auto-margins-002-print.htmlPass1 / 1
margin-boxes/auto-margins-003-print.htmlPass1 / 1
margin-boxes/background-001-print.htmlPass1 / 1
margin-boxes/content-001-print.htmlPass1 / 1
margin-boxes/content-002-print.htmlPass1 / 1
margin-boxes/content-003-print.htmlPass1 / 1
margin-boxes/content-004-print.htmlPass1 / 1
margin-boxes/content-005-print.htmlPass1 / 1
margin-boxes/content-006-print.htmlPass1 / 1
margin-boxes/content-007-print.htmlPass1 / 1
margin-boxes/content-008-print.htmlPass1 / 1
margin-boxes/content-009-print.htmlPass1 / 1
margin-boxes/content-010-print.htmlPass1 / 1
margin-boxes/content-011-print.htmlPass1 / 1
margin-boxes/content-012-print.htmlPass1 / 1
margin-boxes/content-013-print.htmlPass1 / 1
margin-boxes/dimensions-001-print.htmlPass1 / 1
margin-boxes/dimensions-002-print.htmlPass1 / 1
margin-boxes/dimensions-003-print.htmlPass1 / 1
margin-boxes/dimensions-004-print.htmlPass1 / 1
margin-boxes/dimensions-005-print.htmlPass1 / 1
margin-boxes/dimensions-006-print.htmlPass1 / 1
margin-boxes/dimensions-007-print.htmlPass1 / 1
margin-boxes/dimensions-008-print.htmlPass1 / 1
margin-boxes/dimensions-009-print.htmlPass1 / 1
margin-boxes/dimensions-010-print.htmlPass1 / 1
margin-boxes/dimensions-011-print.htmlPass1 / 1
margin-boxes/dimensions-012-print.htmlPass1 / 1
margin-boxes/dimensions-013-print.htmlPass1 / 1
margin-boxes/dimensions-014-print.htmlPass1 / 1
margin-boxes/dimensions-015-print.tentative.htmlPass1 / 1
margin-boxes/inapplicable-properties-print.htmlPass1 / 1
margin-boxes/overconstrained-001-print.htmlPass1 / 1
margin-boxes/paint-order-001-print.htmlPass1 / 1
margin-boxes/paint-order-002-print.htmlPass1 / 1
margin-boxes/paint-order-003-print.htmlPass1 / 1
media-queries-001-print.htmlPass1 / 1
media-queries-002-print.htmlPass1 / 1
media-queries-003-print.htmlPass1 / 1
monolithic-overflow-001-print.htmlPass1 / 1
monolithic-overflow-002-print.htmlPass1 / 1
monolithic-overflow-003-print.htmlPass1 / 1
monolithic-overflow-004-print.htmlPass1 / 1
monolithic-overflow-005-print.htmlPass1 / 1
monolithic-overflow-006-print.htmlPass1 / 1
monolithic-overflow-007-print.htmlPass1 / 1
monolithic-overflow-008-print.htmlPass1 / 1
monolithic-overflow-009-print.htmlPass1 / 1
monolithic-overflow-010-print.htmlPass1 / 1
monolithic-overflow-011-print.htmlPass1 / 1
monolithic-overflow-012-print.htmlPass1 / 1
monolithic-overflow-013-print.htmlPass1 / 1
monolithic-overflow-014-print.htmlPass1 / 1
monolithic-overflow-015-print.htmlPass1 / 1
monolithic-overflow-016-print.htmlPass1 / 1
monolithic-overflow-017-print.htmlFail0 / 1TEST BUGthe pagination is as expected (the monolithic content overflows the first three pages, a repeated footer at the bottom of each page, PASS on the fourth page above the last footer), but the reference expects the hotpink background of the repeated footer (and its text) painted over the black monolithic content that overflows the row of the body of the table: that is the painting order of Blink (each table section paints its backgrounds in its own turn, in tree order), whereas CSS 2 paints all the backgrounds of the table, its row groups included, before the in-flow content of its cells (https://drafts.csswg.org/css2/#painting-order, E.2 step 4: "Otherwise, for table: [...] row group backgrounds [...]", then the block-level descendants in tree order), so the black box covers the footer; Firefox fails it too
monolithic-overflow-018-print.htmlPass1 / 1
monolithic-overflow-019-print.htmlPass1 / 1
monolithic-overflow-020-print.htmlPass1 / 1
monolithic-overflow-021-print.htmlPass1 / 1
monolithic-overflow-022-print.htmlPass1 / 1
monolithic-overflow-023-print.htmlPass1 / 1
monolithic-overflow-024-print.htmlPass1 / 1
monolithic-overflow-025-print.htmlPass1 / 1
monolithic-overflow-026-print.htmlPass1 / 1
monolithic-overflow-027-print.htmlPass1 / 1
monolithic-overflow-028-print.htmlPass1 / 1
monolithic-overflow-029-print.htmlPass1 / 1
monolithic-overflow-030-print.htmlPass1 / 1
monolithic-overflow-031-print.htmlPass1 / 1
monolithic-overflow-032-print.tentative.htmlFail0 / 1BUGthe monolithic content that does not fit in an empty page is sliced, and a box with box-decoration-break: clone does not repeat its edges at the slices, but Blink and Gecko (as the comment of the test says; Gecko passes, Blink fails) also end the fragment of the box right after the monolithic content (with its block-end edges) and start a new fragment of the box after it in the same page (with its block-start edges): the content after the monolithic content is placed after the end of the monolithic content without these edges (the third and next pages differ). The fragmentation places one fragment of a box per page (FragmentSlicer, keyed by the fragmentainer index): two fragments of the same box in a page is not supported (it needs a fragmentainer that starts inside a page, after the end of the monolithic content, as Blink does by growing the page over it)
page-background-001-print.htmlPass1 / 1
page-background-002-print.htmlPass1 / 1
page-background-003-print.htmlPass1 / 1
page-background-004-print.htmlPass1 / 1
page-background-005-print.htmlPass1 / 1
page-background-image-print.htmlPass1 / 1
page-box-000-print.htmlPass1 / 1
page-box-001-print.htmlPass1 / 1
page-box-002-print.htmlPass1 / 1
page-box-003-print.htmlPass1 / 1
page-box-004-print.htmlPass1 / 1
page-box-005-print.htmlPass1 / 1
page-box-006-print.htmlPass1 / 1
page-box-007-print.htmlPass1 / 1
page-box-008-print.htmlPass1 / 1
page-box-009-print.htmlPass1 / 1
page-box-010-print.htmlPass1 / 1
page-box-011-print.htmlPass1 / 1
page-context-inherits-from-root-custom-property-print.htmlPass1 / 1
page-context-inherits-from-root-em-rem-print.htmlPass1 / 1
page-context-inherits-from-root-font-size-001-print.htmlPass1 / 1
page-context-inherits-from-root-font-size-002-print.htmlPass1 / 1
page-context-inherits-from-root-rem-print.htmlPass1 / 1
page-left-right-001-print.htmlPass1 / 1
page-left-right-002-print.htmlPass1 / 1
page-margin-001-print.htmlPass1 / 1
page-margin-002-print.htmlPass1 / 1
page-margin-003-print.htmlPass1 / 1
page-margin-004-print.htmlPass1 / 1
page-margin-005-print.htmlPass1 / 1
page-margin-006-print.htmlPass1 / 1
page-margin-007-print.htmlPass1 / 1
page-margin-auto-and-non-zero-print.htmlPass1 / 1
page-margin-auto-negative-print.tentative.htmlPass1 / 1
page-margin-auto-print.htmlPass1 / 1
page-margin-negative-print.tentative.htmlPass1 / 1
page-name-000-print.htmlPass1 / 1
page-name-001-print.htmlPass1 / 1
page-name-002-print.htmlPass1 / 1
page-name-003-print.htmlPass1 / 1
page-name-abspos-001-print.htmlPass1 / 1
page-name-abspos-002-print.htmlPass1 / 1
page-name-abspos-003-print.htmlPass1 / 1
page-name-and-break-001-print.htmlPass1 / 1
page-name-and-break-002-print.htmlPass1 / 1
page-name-and-break-003-print.htmlPass1 / 1
page-name-and-break-004-print.htmlPass1 / 1
page-name-canvas-001-print.htmlPass1 / 1
page-name-canvas-002-print.htmlPass1 / 1
page-name-canvas-003-print.htmlPass1 / 1
page-name-canvas-004-print.htmlPass1 / 1
page-name-display-none-child-print.htmlPass1 / 1
page-name-fixed-pos-001-print.htmlPass1 / 1
page-name-flex-001-print.htmlPass1 / 1
page-name-flex-002-print.htmlPass1 / 1
page-name-flex-003-print.htmlPass1 / 1
page-name-flex-004-print.htmlPass1 / 1
page-name-float-001-print.htmlPass1 / 1
page-name-float-002-print.htmlPass1 / 1
page-name-img-001-print.htmlPass1 / 1
page-name-img-002-print.htmlPass1 / 1
page-name-img-003-print.htmlPass1 / 1
page-name-img-004-print.htmlPass1 / 1
page-name-inline-block-001-print.htmlPass1 / 1
page-name-inline-block-002-print.htmlPass1 / 1
page-name-inline-block-003-print.htmlPass1 / 1
page-name-margin-001-print.htmlPass1 / 1
page-name-margin-002-print.htmlPass1 / 1
page-name-orthogonal-writing-001-print.htmlPass1 / 1
page-name-orthogonal-writing-002-print.htmlPass1 / 1
page-name-orthogonal-writing-003-print.htmlPass1 / 1
page-name-orthogonal-writing-004-print.htmlPass1 / 1
page-name-propagated-001-print.htmlPass1 / 1
page-name-propagated-002-print.htmlPass1 / 1
page-name-propagated-003-print.htmlPass1 / 1
page-name-propagated-004-print.htmlPass1 / 1
page-name-propagated-005-print.htmlPass1 / 1
page-name-propagated-006-print.htmlPass1 / 1
page-name-propagated-007-print.htmlPass1 / 1
page-name-propagated-008-print.htmlPass1 / 1
page-name-propagated-009-print.htmlPass1 / 1
page-name-siblings-001-print.htmlPass1 / 1
page-name-siblings-002-print.htmlPass1 / 1
page-name-siblings-003-print.htmlPass1 / 1
page-name-siblings-004-print.htmlPass1 / 1
page-name-siblings-005-print.htmlPass1 / 1
page-name-table-001-print.htmlPass1 / 1
page-name-unnamed-trailing-001-print.htmlPass1 / 1
page-name-zero-height-001-print.htmlPass1 / 1
page-orientation-on-landscape-001-print.htmlPass1 / 1
page-orientation-on-portrait-001-print.htmlPass1 / 1
page-orientation-on-portrait-002-print.htmlPass1 / 1
page-orientation-on-portrait-003-print.htmlPass1 / 1
page-orientation-on-square-001-print.htmlPass1 / 1
page-rule-specificity-001-print.htmlPass1 / 1
page-rule-specificity-002-print.htmlPass1 / 1
page-rule-specificity-003-print.htmlPass1 / 1
page-size-001-print.htmlPass1 / 1
page-size-002-print.htmlPass1 / 1
page-size-003-print.htmlPass1 / 1
page-size-004-print.htmlPass1 / 1
page-size-005-print.htmlPass1 / 1
page-size-006-print.htmlPass1 / 1
page-size-007-print.htmlPass1 / 1
page-size-008-print.htmlPass1 / 1
page-size-009-print.htmlPass1 / 1
page-size-010-print.htmlPass1 / 1
page-size-011-print.htmlPass1 / 1
page-size-012-print.htmlPass1 / 1
page-size-013-print.htmlPass1 / 1
page-size-014-print.htmlPass1 / 1
page-size-015-print.tentative.htmlPass1 / 1
page-size-016-print.tentative.htmlPass1 / 1
page-size-017-print.tentative.htmlPass1 / 1
page-visibility-hidden-001-print.htmlPass1 / 1
pseudo-first-margin-001-print.htmlPass1 / 1
pseudo-first-margin-002-print.htmlPass1 / 1
pseudo-first-margin-003-print.htmlPass1 / 1
pseudo-first-margin-004-print.htmlPass1 / 1
remote-origin-iframe-print.htmlPass1 / 1
root-element-display-none-print.htmlPass1 / 1
subpixel-page-size-001-print.htmlPass1 / 1
subpixel-page-size-002-print.htmlPass1 / 1
tentative/safe-printable-inset-001-print.htmlPass1 / 1
tentative/safe-printable-inset-002-print.htmlPass1 / 1
tentative/safe-printable-inset-003-print.htmlPass1 / 1
tentative/safe-printable-inset-large-crash-print.htmlPass1 / 1