Import css/css-position WPT
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 27 Oct 2019 16:52:32 +0000 (16:52 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 27 Oct 2019 16:52:32 +0000 (16:52 +0000)
https://bugs.webkit.org/show_bug.cgi?id=203446

Reviewed by Antti Koivisto.

Import css/css-position from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/css/css-position/META.yml: Added.
* web-platform-tests/css/css-position/animation/position-interpolation.html: Added.
* web-platform-tests/css/css-position/animation/w3c-import.log: Added.
* web-platform-tests/css/css-position/animations/bottom-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/left-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/right-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/top-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/w3c-import.log: Added.
* web-platform-tests/css/css-position/fixed-z-index-blend-expected.html: Added.
* web-platform-tests/css/css-position/fixed-z-index-blend.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html: Added.
* web-platform-tests/css/css-position/inheritance.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-computed.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-valid.html: Added.
* web-platform-tests/css/css-position/parsing/left-computed.html: Added.
* web-platform-tests/css/css-position/parsing/left-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/left-valid.html: Added.
* web-platform-tests/css/css-position/parsing/position-computed.html: Added.
* web-platform-tests/css/css-position/parsing/position-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/position-valid.html: Added.
* web-platform-tests/css/css-position/parsing/right-computed.html: Added.
* web-platform-tests/css/css-position/parsing/right-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/right-valid.html: Added.
* web-platform-tests/css/css-position/parsing/top-computed.html: Added.
* web-platform-tests/css/css-position/parsing/top-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/top-valid.html: Added.
* web-platform-tests/css/css-position/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-position/parsing/z-index-computed.html: Added.
* web-platform-tests/css/css-position/parsing/z-index-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/z-index-valid.html: Added.
* web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html: Added.
* web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-container-dynamic.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html: Added.
* web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht: Added.
* web-platform-tests/css/css-position/position-absolute-fieldset.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-crash.html: Added.
* web-platform-tests/css/css-position/position-absolute-percentage-height.html: Added.
* web-platform-tests/css/css-position/position-absolute-replaced-minmax.html: Added.
* web-platform-tests/css/css-position/position-fixed-at-bottom-right-on-viewport.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-change-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-change-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-child-multicolumn-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-child-multicolumn.html: Added.
* web-platform-tests/css/css-position/position-sticky-flexbox-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-flexbox.html: Added.
* web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect.html: Added.
* web-platform-tests/css/css-position/position-sticky-grid-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-grid.html: Added.
* web-platform-tests/css/css-position/position-sticky-hyperlink-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-hyperlink.html: Added.
* web-platform-tests/css/css-position/position-sticky-inflow-position.html: Added.
* web-platform-tests/css/css-position/position-sticky-inline-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-inline.html: Added.
* web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll.html: Added.
* web-platform-tests/css/css-position/position-sticky-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-margins.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-inline-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-inline.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-table-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-table.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-offset-overflow.html: Added.
* web-platform-tests/css/css-position/position-sticky-offset-top-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-overflow-hidden.html: Added.
* web-platform-tests/css/css-position/position-sticky-overflow-padding.html: Added.
* web-platform-tests/css/css-position/position-sticky-parsing.html: Added.
* web-platform-tests/css/css-position/position-sticky-rendering-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-rendering.html: Added.
* web-platform-tests/css/css-position/position-sticky-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-root-scroller.html: Added.
* web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos.html: Added.
* web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling.html: Added.
* web-platform-tests/css/css-position/position-sticky-stacking-context-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-stacking-context.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-parts-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-parts.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-left-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-right-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-thead-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-thead-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-transforms-translate.html: Added.
* web-platform-tests/css/css-position/position-sticky-transforms.html: Added.
* web-platform-tests/css/css-position/position-sticky-writing-modes-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-writing-modes.html: Added.
* web-platform-tests/css/css-position/resources/sticky-util.js: Added.
(setupStickyTest):
(setupNestedStickyTest):
* web-platform-tests/css/css-position/resources/w3c-import.log: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013-expected.xht: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014-expected.xht: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/w3c-import.log: Added.
* web-platform-tests/css/css-position/w3c-import.log: Added.
* web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers-expected.html: Added.
* web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers.html: Added.

LayoutTests:

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251641 268f45cc-cd09-0410-ab3c-d52691b4dbfc

346 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/resources/import-expectations.json
LayoutTests/imported/w3c/web-platform-tests/css/css-position/META.yml [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-fixed-at-bottom-right-on-viewport-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-fixed-at-bottom-right-on-viewport.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-td-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-td-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-td-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-td-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-bottom-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-bottom.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-change-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-change-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-child-multicolumn-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-child-multicolumn.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-flexbox-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-flexbox.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-grid-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-grid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-hyperlink-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-hyperlink.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inflow-position-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inflow-position.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inline-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-inline.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-left-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-margins-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-margins.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-bottom-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-bottom.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-inline-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-inline.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-left-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-right-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-right.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-top-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-overflow-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-overflow.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-top-left-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-offset-top-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-hidden-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-hidden.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-padding-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-overflow-padding.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-parsing-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-parsing.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-rendering-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-rendering.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-right-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-right.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-root-scroller-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-root-scroller.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-stacking-context-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-stacking-context.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-parts-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-parts.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-bottom-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-bottom.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-left-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-left.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-right-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-right.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-thead-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-thead-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-bottom-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-bottom.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-top-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-table-tr-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-top-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-top.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-translate-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms-translate.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-transforms.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-writing-modes-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-sticky-writing-modes.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/resources/sticky-util.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/resources/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-ltr-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-ltr.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-rtl-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-rtl.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013-expected.xht [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014-expected.xht [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-ltr-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-rtl-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-ltr-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-rtl-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/static-position/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers.html [new file with mode: 0644]
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height-expected.txt [new file with mode: 0644]
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt
LayoutTests/platform/mac-wk1/TestExpectations

index a9130e4..a14e65a 100644 (file)
@@ -1,3 +1,14 @@
+2019-10-27  Simon Fraser  <simon.fraser@apple.com>
+
+        Import css/css-position WPT
+        https://bugs.webkit.org/show_bug.cgi?id=203446
+
+        Reviewed by Antti Koivisto.
+
+        Import css/css-position from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).
+
+        * TestExpectations:
+
 2019-10-26  youenn fablet  <youenn@apple.com>
 
         Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
index 4973e87..9cef190 100644 (file)
@@ -3915,3 +3915,47 @@ webkit.org/b/203336 imported/w3c/web-platform-tests/css/css-values/lh-unit-001.h
 webkit.org/b/203336 imported/w3c/web-platform-tests/css/css-values/lh-unit-002.html [ ImageOnlyFailure ]
 webkit.org/b/203337 imported/w3c/web-platform-tests/css/css-values/vh-support-atviewport.html [ ImageOnlyFailure ]
 webkit.org/b/203338 imported/w3c/web-platform-tests/css/css-values/vh_not_refreshing_on_chrome.html [ ImageOnlyFailure ]
+
+# wpt css-position failures
+webkit.org/b/203445 [ Debug ] imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html [ Skip ]
+webkit.org/b/203445 [ Debug ] imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html [ Skip ]
+webkit.org/b/203447 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html [ ImageOnlyFailure ]
+webkit.org/b/203447 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html [ ImageOnlyFailure ]
+webkit.org/b/203448 imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-left.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tbody-top.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-left.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tfoot-top.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-left.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-thead-top.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-left.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child.html [ ImageOnlyFailure ]
+webkit.org/b/203449 imported/w3c/web-platform-tests/css/css-position/position-relative-table-tr-top.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-hyperlink.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-inline.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-inline.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-nested-table.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-rendering.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-table-parts.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-table-th-bottom.html [ ImageOnlyFailure ]
+webkit.org/b/203450 imported/w3c/web-platform-tests/css/css-position/position-sticky-writing-modes.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-ltr.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/htb-rtl-rtl.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html [ ImageOnlyFailure ]
+webkit.org/b/203451 imported/w3c/web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html [ ImageOnlyFailure ]
+
index cc028e6..bb7ee98 100644 (file)
@@ -1,3 +1,275 @@
+2019-10-27  Simon Fraser  <simon.fraser@apple.com>
+
+        Import css/css-position WPT
+        https://bugs.webkit.org/show_bug.cgi?id=203446
+
+        Reviewed by Antti Koivisto.
+
+        Import css/css-position from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).
+
+        * resources/import-expectations.json:
+        * web-platform-tests/css/css-position/META.yml: Added.
+        * web-platform-tests/css/css-position/animation/position-interpolation.html: Added.
+        * web-platform-tests/css/css-position/animation/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/animations/bottom-interpolation.html: Added.
+        * web-platform-tests/css/css-position/animations/left-interpolation.html: Added.
+        * web-platform-tests/css/css-position/animations/right-interpolation.html: Added.
+        * web-platform-tests/css/css-position/animations/top-interpolation.html: Added.
+        * web-platform-tests/css/css-position/animations/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/fixed-z-index-blend-expected.html: Added.
+        * web-platform-tests/css/css-position/fixed-z-index-blend.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html: Added.
+        * web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html: Added.
+        * web-platform-tests/css/css-position/inheritance.html: Added.
+        * web-platform-tests/css/css-position/parsing/bottom-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/bottom-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/bottom-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-after-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-after-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-after-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-before-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-before-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-before-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-end-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-end-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-end-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-start-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-start-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/inset-start-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/left-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/left-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/left-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/position-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/position-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/position-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/right-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/right-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/right-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/top-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/top-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/top-valid.html: Added.
+        * web-platform-tests/css/css-position/parsing/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/parsing/z-index-computed.html: Added.
+        * web-platform-tests/css/css-position/parsing/z-index-invalid.html: Added.
+        * web-platform-tests/css/css-position/parsing/z-index-valid.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-container-dynamic.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht: Added.
+        * web-platform-tests/css/css-position/position-absolute-fieldset.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-in-inline-001.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-in-inline-002.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-in-inline-crash.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-percentage-height.html: Added.
+        * web-platform-tests/css/css-position/position-absolute-replaced-minmax.html: Added.
+        * web-platform-tests/css/css-position/position-fixed-at-bottom-right-on-viewport.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-left.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tbody-top.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-td-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-td-left.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-td-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-td-top.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-left.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tfoot-top.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-left.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-thead-top.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-left.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-relative-table-tr-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-bottom.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-change-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-change-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-child-multicolumn-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-child-multicolumn.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-flexbox-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-flexbox.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-grid-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-grid.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-hyperlink-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-hyperlink.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-inflow-position.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-inline-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-inline.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-left.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-margins.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-bottom.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-inline-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-inline.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-left.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-right.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-table-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-table.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-nested-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-offset-overflow.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-offset-top-left.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-overflow-hidden.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-overflow-padding.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-parsing.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-rendering-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-rendering.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-right.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-root-scroller.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-stacking-context-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-stacking-context.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-parts-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-parts.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-bottom-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-bottom.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-left-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-left.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-right-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-right.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-th-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-thead-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-thead-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tr-bottom-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tr-bottom.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tr-top-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-table-tr-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-top.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-transforms-translate.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-transforms.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-writing-modes-expected.html: Added.
+        * web-platform-tests/css/css-position/position-sticky-writing-modes.html: Added.
+        * web-platform-tests/css/css-position/resources/sticky-util.js: Added.
+        (setupStickyTest):
+        (setupNestedStickyTest):
+        * web-platform-tests/css/css-position/resources/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/static-position/htb-ltr-ltr-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-ltr-ltr.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-rtl-rtl-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/htb-rtl-rtl.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013-expected.xht: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014-expected.xht: Added.
+        * web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-ltr-ltr-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-rtl-rtl-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-ltr-ltr-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-rtl-rtl-expected.html: Added.
+        * web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html: Added.
+        * web-platform-tests/css/css-position/static-position/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/w3c-import.log: Added.
+        * web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers-expected.html: Added.
+        * web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers.html: Added.
+
 2019-10-26  Rob Buis  <rbuis@igalia.com>
 
         Main implementation for lazy image loading
index a591679..2047183 100644 (file)
@@ -1,5 +1,6 @@
 {
     "apng": "import", 
+    "css/css-position": "import", 
     "css/css-syntax": "import", 
     "css/css-values": "import", 
     "css/geometry": "import", 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/META.yml b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/META.yml
new file mode 100644 (file)
index 0000000..c1ce1ff
--- /dev/null
@@ -0,0 +1,3 @@
+spec: https://drafts.csswg.org/css-position/
+suggested_reviewers:
+  - astearns
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..4226a43
--- /dev/null
@@ -0,0 +1,37 @@
+
+PASS CSS Transitions: property <position> from [absolute] to [static] at (-0.3) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (0) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (0.3) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (0.5) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (0.6) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (1) should be [static] 
+PASS CSS Transitions: property <position> from [absolute] to [static] at (1.5) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (-0.3) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (0) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (0.3) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (0.5) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (0.6) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (1) should be [static] 
+PASS CSS Transitions with transition: all: property <position> from [absolute] to [static] at (1.5) should be [static] 
+FAIL CSS Animations: property <position> from [absolute] to [static] at (-0.3) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL CSS Animations: property <position> from [absolute] to [static] at (0) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL CSS Animations: property <position> from [absolute] to [static] at (0.3) should be [absolute] assert_equals: expected "absolute " but got "static "
+PASS CSS Animations: property <position> from [absolute] to [static] at (0.5) should be [static] 
+PASS CSS Animations: property <position> from [absolute] to [static] at (0.6) should be [static] 
+PASS CSS Animations: property <position> from [absolute] to [static] at (1) should be [static] 
+PASS CSS Animations: property <position> from [absolute] to [static] at (1.5) should be [static] 
+FAIL Web Animations: property <position> from [absolute] to [static] at (-0.3) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL Web Animations: property <position> from [absolute] to [static] at (0) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL Web Animations: property <position> from [absolute] to [static] at (0.3) should be [absolute] assert_equals: expected "absolute " but got "static "
+PASS Web Animations: property <position> from [absolute] to [static] at (0.5) should be [static] 
+PASS Web Animations: property <position> from [absolute] to [static] at (0.6) should be [static] 
+PASS Web Animations: property <position> from [absolute] to [static] at (1) should be [static] 
+PASS Web Animations: property <position> from [absolute] to [static] at (1.5) should be [static] 
+PASS CSS Animations: property <position> from neutral to [absolute] at (-1) should be [static] 
+PASS CSS Animations: property <position> from neutral to [absolute] at (0) should be [static] 
+PASS CSS Animations: property <position> from neutral to [absolute] at (0.25) should be [static] 
+FAIL CSS Animations: property <position> from neutral to [absolute] at (0.5) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL CSS Animations: property <position> from neutral to [absolute] at (0.75) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL CSS Animations: property <position> from neutral to [absolute] at (1) should be [absolute] assert_equals: expected "absolute " but got "static "
+FAIL CSS Animations: property <position> from neutral to [absolute] at (2) should be [absolute] assert_equals: expected "absolute " but got "static "
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation.html
new file mode 100644 (file)
index 0000000..a4ad502
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>position interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#position-property">
+<meta name="assert" content="position has discrete animation">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  position: relative;
+  display: inline-block;
+  height: 10px;
+  margin: 0px;
+}
+.target {
+  width: 10px;
+  height: 10px;
+  background-color: black;
+  left: 10px;
+  position: 10px;
+}
+.expected {
+  background-color: green;
+}
+</style>
+
+<body>
+<template id="target-template">
+  <div class="parent">
+    <div class="target"></div>
+  </div>
+</template>
+</body>
+
+<script>
+test_no_interpolation({
+  property: 'position',
+  from: 'absolute',
+  to: 'static',
+});
+
+// This is still discrete interpolation; this test ensures that the neutral
+// keyframe is defined correctly for position.
+test_interpolation({
+  property: 'position',
+  from: neutralKeyframe,
+  to: 'absolute',
+  method: 'CSS Animations',
+}, [
+  {at: -1, expect: 'static'},
+  {at: 0, expect: 'static'},
+  {at: 0.25, expect: 'static'},
+  {at: 0.5, expect: 'absolute'},
+  {at: 0.75, expect: 'absolute'},
+  {at: 1, expect: 'absolute'},
+  {at: 2, expect: 'absolute'},
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/w3c-import.log
new file mode 100644 (file)
index 0000000..e3a486d
--- /dev/null
@@ -0,0 +1,17 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animation/position-interpolation.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..eeca567
--- /dev/null
@@ -0,0 +1,118 @@
+
+PASS CSS Transitions: property <bottom> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <bottom> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <bottom> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions: property <bottom> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <bottom> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <bottom> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <bottom> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <bottom> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <bottom> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Animations: property <bottom> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Animations: property <bottom> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Animations: property <bottom> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Animations: property <bottom> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <bottom> from neutral to [20px] at (1.5) should be [25px] 
+PASS Web Animations: property <bottom> from neutral to [20px] at (-0.3) should be [7px] 
+FAIL Web Animations: property <bottom> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "7px "
+FAIL Web Animations: property <bottom> from neutral to [20px] at (0.5) should be [15px] assert_equals: expected "15px " but got "13.5px "
+PASS Web Animations: property <bottom> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <bottom> from neutral to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <bottom> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (0) should be [initial] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (0.3) should be [initial] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <bottom> from [initial] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (0) should be [initial] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (0.3) should be [initial] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <bottom> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <bottom> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <bottom> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <bottom> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions: property <bottom> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <bottom> from [inherit] to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <bottom> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <bottom> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <bottom> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <bottom> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [inherit] to [20px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <bottom> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL CSS Animations: property <bottom> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "10px "
+FAIL CSS Animations: property <bottom> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "15px "
+PASS CSS Animations: property <bottom> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <bottom> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "25px "
+FAIL Web Animations: property <bottom> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL Web Animations: property <bottom> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "7px "
+FAIL Web Animations: property <bottom> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "13.5px "
+PASS Web Animations: property <bottom> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <bottom> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <bottom> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (0) should be [unset] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (0.3) should be [unset] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <bottom> from [unset] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (0) should be [unset] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (0.3) should be [unset] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <bottom> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <bottom> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions: property <bottom> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions: property <bottom> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions: property <bottom> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <bottom> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <bottom> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions with transition: all: property <bottom> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions with transition: all: property <bottom> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions with transition: all: property <bottom> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <bottom> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Animations: property <bottom> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Animations: property <bottom> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Animations: property <bottom> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Animations: property <bottom> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <bottom> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS Web Animations: property <bottom> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS Web Animations: property <bottom> from [-10px] to [10px] at (0) should be [-10px] 
+PASS Web Animations: property <bottom> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS Web Animations: property <bottom> from [-10px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <bottom> from [-10px] to [10px] at (1.5) should be [20px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation.html
new file mode 100644 (file)
index 0000000..272e79f
--- /dev/null
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-bottom">
+<meta name="test" content="bottom supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  bottom: 30px;
+}
+.target {
+  position: relative;
+  width: 100px;
+  height: 100px;
+  background-color: black;
+  display: inline-block;
+  margin: 20px 5px 20px 0px;
+  bottom: 10px;
+}
+.expected {
+  background-color: green;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+  property: 'bottom',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.5, expect: '15px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+  property: 'bottom',
+  from: 'initial',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'bottom',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.5, expect: '25px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+  property: 'bottom',
+  from: 'unset',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'bottom',
+  from: '-10px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '-16px'},
+  {at: 0, expect: '-10px'},
+  {at: 0.5, expect: '0px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..40173ac
--- /dev/null
@@ -0,0 +1,118 @@
+
+PASS CSS Transitions: property <left> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <left> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <left> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions: property <left> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <left> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <left> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <left> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <left> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <left> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Animations: property <left> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Animations: property <left> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Animations: property <left> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Animations: property <left> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <left> from neutral to [20px] at (1.5) should be [25px] 
+PASS Web Animations: property <left> from neutral to [20px] at (-0.3) should be [7px] 
+FAIL Web Animations: property <left> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "7px "
+FAIL Web Animations: property <left> from neutral to [20px] at (0.5) should be [15px] assert_equals: expected "15px " but got "13.5px "
+PASS Web Animations: property <left> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <left> from neutral to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+PASS CSS Transitions: property <left> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <left> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (0) should be [initial] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (0.3) should be [initial] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <left> from [initial] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <left> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS Web Animations: property <left> from [initial] to [20px] at (0) should be [initial] 
+PASS Web Animations: property <left> from [initial] to [20px] at (0.3) should be [initial] 
+PASS Web Animations: property <left> from [initial] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <left> from [initial] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <left> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <left> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <left> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <left> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <left> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions: property <left> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <left> from [inherit] to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <left> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <left> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <left> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <left> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [inherit] to [20px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <left> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL CSS Animations: property <left> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "10px "
+FAIL CSS Animations: property <left> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "15px "
+PASS CSS Animations: property <left> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <left> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "25px "
+FAIL Web Animations: property <left> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL Web Animations: property <left> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "7px "
+FAIL Web Animations: property <left> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "13.5px "
+PASS Web Animations: property <left> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <left> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+PASS CSS Transitions: property <left> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <left> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (0) should be [unset] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (0.3) should be [unset] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <left> from [unset] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <left> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS Web Animations: property <left> from [unset] to [20px] at (0) should be [unset] 
+PASS Web Animations: property <left> from [unset] to [20px] at (0.3) should be [unset] 
+PASS Web Animations: property <left> from [unset] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <left> from [unset] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <left> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <left> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <left> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions: property <left> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions: property <left> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions: property <left> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <left> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <left> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions with transition: all: property <left> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions with transition: all: property <left> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions with transition: all: property <left> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <left> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Animations: property <left> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Animations: property <left> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Animations: property <left> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Animations: property <left> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <left> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS Web Animations: property <left> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS Web Animations: property <left> from [-10px] to [10px] at (0) should be [-10px] 
+PASS Web Animations: property <left> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS Web Animations: property <left> from [-10px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <left> from [-10px] to [10px] at (1.5) should be [20px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation.html
new file mode 100644 (file)
index 0000000..33ed0b4
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-left">
+<meta name="test" content="left supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  position: relative;
+  left: 30px;
+}
+.target {
+  position: relative;
+  width: 10px;
+  height: 10px;
+  background-color: black;
+  left: 10px;
+}
+.expected {
+  background-color: green;
+}
+</style>
+<body></body>
+
+<script>
+test_interpolation({
+  property: 'left',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.5, expect: '15px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+  property: 'left',
+  from: 'initial',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'left',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.5, expect: '25px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+  property: 'left',
+  from: 'unset',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'left',
+  from: '-10px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '-16px'},
+  {at: 0, expect: '-10px'},
+  {at: 0.5, expect: '0px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..2422c1b
--- /dev/null
@@ -0,0 +1,118 @@
+
+PASS CSS Transitions: property <right> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <right> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <right> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions: property <right> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <right> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <right> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <right> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <right> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <right> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Animations: property <right> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Animations: property <right> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Animations: property <right> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Animations: property <right> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <right> from neutral to [20px] at (1.5) should be [25px] 
+PASS Web Animations: property <right> from neutral to [20px] at (-0.3) should be [7px] 
+FAIL Web Animations: property <right> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "7px "
+FAIL Web Animations: property <right> from neutral to [20px] at (0.5) should be [15px] assert_equals: expected "15px " but got "13.5px "
+PASS Web Animations: property <right> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <right> from neutral to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+PASS CSS Transitions: property <right> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <right> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (0) should be [initial] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (0.3) should be [initial] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <right> from [initial] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <right> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS Web Animations: property <right> from [initial] to [20px] at (0) should be [initial] 
+PASS Web Animations: property <right> from [initial] to [20px] at (0.3) should be [initial] 
+PASS Web Animations: property <right> from [initial] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <right> from [initial] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <right> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <right> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <right> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <right> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <right> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions: property <right> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <right> from [inherit] to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <right> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <right> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <right> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <right> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [inherit] to [20px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <right> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL CSS Animations: property <right> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "10px "
+FAIL CSS Animations: property <right> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "15px "
+PASS CSS Animations: property <right> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <right> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "25px "
+FAIL Web Animations: property <right> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL Web Animations: property <right> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "7px "
+FAIL Web Animations: property <right> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "13.5px "
+PASS Web Animations: property <right> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <right> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+PASS CSS Transitions: property <right> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <right> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (0) should be [unset] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (0.3) should be [unset] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <right> from [unset] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <right> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS Web Animations: property <right> from [unset] to [20px] at (0) should be [unset] 
+PASS Web Animations: property <right> from [unset] to [20px] at (0.3) should be [unset] 
+PASS Web Animations: property <right> from [unset] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <right> from [unset] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <right> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <right> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <right> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions: property <right> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions: property <right> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions: property <right> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <right> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <right> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions with transition: all: property <right> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions with transition: all: property <right> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions with transition: all: property <right> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <right> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Animations: property <right> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Animations: property <right> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Animations: property <right> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Animations: property <right> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <right> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS Web Animations: property <right> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS Web Animations: property <right> from [-10px] to [10px] at (0) should be [-10px] 
+PASS Web Animations: property <right> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS Web Animations: property <right> from [-10px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <right> from [-10px] to [10px] at (1.5) should be [20px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation.html
new file mode 100644 (file)
index 0000000..284d435
--- /dev/null
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-right">
+<meta name="test" content="right supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  margin-left: 40px;
+  right: 30px;
+}
+.target {
+  position: relative;
+  width: 10px;
+  height: 10px;
+  background-color: black;
+  right: 10px;
+}
+.expected {
+  background-color: green;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+  property: 'right',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.5, expect: '15px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+  property: 'right',
+  from: 'initial',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'right',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.5, expect: '25px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+  property: 'right',
+  from: 'unset',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'right',
+  from: '-10px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '-16px'},
+  {at: 0, expect: '-10px'},
+  {at: 0.5, expect: '0px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..f92ce2c
--- /dev/null
@@ -0,0 +1,118 @@
+
+PASS CSS Transitions: property <top> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <top> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <top> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions: property <top> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <top> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <top> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <top> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <top> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <top> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Animations: property <top> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Animations: property <top> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Animations: property <top> from neutral to [20px] at (0.5) should be [15px] 
+PASS CSS Animations: property <top> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <top> from neutral to [20px] at (1.5) should be [25px] 
+PASS Web Animations: property <top> from neutral to [20px] at (-0.3) should be [7px] 
+FAIL Web Animations: property <top> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "7px "
+FAIL Web Animations: property <top> from neutral to [20px] at (0.5) should be [15px] assert_equals: expected "15px " but got "13.5px "
+PASS Web Animations: property <top> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <top> from neutral to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+PASS CSS Transitions: property <top> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <top> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (0) should be [initial] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (0.3) should be [initial] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <top> from [initial] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <top> from [initial] to [20px] at (-0.3) should be [initial] 
+PASS Web Animations: property <top> from [initial] to [20px] at (0) should be [initial] 
+PASS Web Animations: property <top> from [initial] to [20px] at (0.3) should be [initial] 
+PASS Web Animations: property <top> from [initial] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <top> from [initial] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <top> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <top> from [initial] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <top> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <top> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <top> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions: property <top> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <top> from [inherit] to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <top> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <top> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <top> from [inherit] to [20px] at (0.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <top> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [inherit] to [20px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <top> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL CSS Animations: property <top> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "10px "
+FAIL CSS Animations: property <top> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "15px "
+PASS CSS Animations: property <top> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <top> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "25px "
+FAIL Web Animations: property <top> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL Web Animations: property <top> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "7px "
+FAIL Web Animations: property <top> from [inherit] to [20px] at (0.5) should be [25px] assert_equals: expected "25px " but got "13.5px "
+PASS Web Animations: property <top> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <top> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+PASS CSS Transitions: property <top> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <top> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (-0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (0) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (0.3) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (0) should be [unset] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (0.3) should be [unset] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (0.5) should be [20px] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (0.6) should be [20px] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <top> from [unset] to [20px] at (1.5) should be [20px] 
+PASS Web Animations: property <top> from [unset] to [20px] at (-0.3) should be [unset] 
+PASS Web Animations: property <top> from [unset] to [20px] at (0) should be [unset] 
+PASS Web Animations: property <top> from [unset] to [20px] at (0.3) should be [unset] 
+PASS Web Animations: property <top> from [unset] to [20px] at (0.5) should be [20px] 
+PASS Web Animations: property <top> from [unset] to [20px] at (0.6) should be [20px] 
+PASS Web Animations: property <top> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <top> from [unset] to [20px] at (1.5) should be [20px] 
+PASS CSS Transitions: property <top> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions: property <top> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions: property <top> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions: property <top> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <top> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Transitions with transition: all: property <top> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Transitions with transition: all: property <top> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Transitions with transition: all: property <top> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Transitions with transition: all: property <top> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <top> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS CSS Animations: property <top> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS CSS Animations: property <top> from [-10px] to [10px] at (0) should be [-10px] 
+PASS CSS Animations: property <top> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS CSS Animations: property <top> from [-10px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <top> from [-10px] to [10px] at (1.5) should be [20px] 
+PASS Web Animations: property <top> from [-10px] to [10px] at (-0.3) should be [-16px] 
+PASS Web Animations: property <top> from [-10px] to [10px] at (0) should be [-10px] 
+PASS Web Animations: property <top> from [-10px] to [10px] at (0.5) should be [0px] 
+PASS Web Animations: property <top> from [-10px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <top> from [-10px] to [10px] at (1.5) should be [20px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation.html
new file mode 100644 (file)
index 0000000..f5af530
--- /dev/null
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-top">
+<meta name="assert" content="top supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  top: 30px;
+  margin-bottom: 40px;
+}
+.target {
+  position: relative;
+  width: 10px;
+  height: 10px;
+  background-color: black;
+  display: inline-block;
+  top: 10px;
+}
+.expected {
+  background-color: green;
+  margin-right: 10px;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+  property: 'top',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.5, expect: '15px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+  property: 'top',
+  from: 'initial',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'top',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.5, expect: '25px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+  property: 'top',
+  from: 'unset',
+  to: '20px',
+});
+
+test_interpolation({
+  property: 'top',
+  from: '-10px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '-16px'},
+  {at: 0, expect: '-10px'},
+  {at: 0.5, expect: '0px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/w3c-import.log
new file mode 100644 (file)
index 0000000..66e2e91
--- /dev/null
@@ -0,0 +1,20 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend-expected.html
new file mode 100644 (file)
index 0000000..2675401
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>fixed position, z-index, and mix-blend-mode</title>
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+
+<div style="width: 100px; height:4000px;"></div>
+<div style="background: green; width: 100px; height:100px;"></div>
+
+<script>
+requestAnimationFrame(()=>{
+  requestAnimationFrame(()=>{
+    window.scrollBy(0, 3000);
+  });
+});
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend.html
new file mode 100644 (file)
index 0000000..5558228
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html class="reftest-wait" style="overflow-x:hidden;">
+<title>fixed position, z-index, and mix-blend-mode</title>
+<link rel="help" href="https://www.w3.org/TR/CSS2/visuren.html#fixed-positioning">
+<link rel="help" href="https://www.w3.org/TR/CSS2/visuren.html#propdef-z-index">
+<link rel="help" href="https://www.w3.org/TR/compositing-1/#mix-blend-mode">
+<meta name="assert" content="Tests fixed, z-index, and mix-blend-mode.
+Passes if there is a green box when the page is scrolled to the bottom.">
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+<link rel="match" href="fixed-z-index-blend-ref.html">
+
+<div class="blend"></div>
+<div class="background"></div>
+<div class="text">
+  <div style="width: 100px; height:4000px;"></div>
+  <div style="background: green; width: 100px; height:100px;"></div>
+</div>
+
+<style>
+.blend {
+  display: block;
+  position: fixed;
+  z-index: 2;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+  mix-blend-mode: overlay;
+}
+
+.background {
+  pointer-events: none;
+  position: fixed;
+  z-index: 1;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+  opacity: 1;
+}
+
+.text {
+  position: relative;
+  z-index: 3;
+  overflow: hidden;
+  width: 100vw;
+  min-height: 100vh;
+  font-size: 50px;
+  line-height: 2;
+}
+</style>
+
+<script src="/common/reftest-wait.js"></script>
+<script>
+requestAnimationFrame(()=>{
+  requestAnimationFrame(()=>{
+    window.scrollBy(0, 3000);
+    takeScreenshot();
+  });
+});
+</script>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html
new file mode 100644 (file)
index 0000000..86956ad
--- /dev/null
@@ -0,0 +1,12 @@
+<!doctype html>
+<meta charset=utf-8>
+<!-- Our target div should be placed as if it were a child of the overflowing --
+  -- thing; this is simplest to accomplish by just having the overflowing thing --
+  -- absolutely positioned so the target div is placed as if it were not there -->
+<div style="overflow: auto; height: 100px; width: 200px; position: absolute">
+  <div style="width: 400px; height: 10px"></div>
+</div>
+<div id="target">Modified text</div>
+<script>
+  document.querySelector("div").scrollLeft = 1000;
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html
new file mode 100644 (file)
index 0000000..e342e8c
--- /dev/null
@@ -0,0 +1,17 @@
+<!doctype html>
+<meta charset=utf-8>
+<title></title>
+<link rel=match href=hypothetical-box-scroll-parent-ref.html>
+<link rel="help"
+      href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">
+<div style="overflow: auto; height: 100px; width: 200px">
+  <div id="target" style="position: absolute">Original text</div>
+  <div style="width: 400px; height: 10px"></div>
+</div>
+<script>
+  // Scroll the parent.
+  document.querySelector("div").scrollLeft = 1000;
+
+  // Now force relayout of the abs pos div.
+  document.getElementById("target").textContent = "Modified text";
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html
new file mode 100644 (file)
index 0000000..368da5f
--- /dev/null
@@ -0,0 +1,7 @@
+<!doctype html>
+<meta charset=utf-8>
+<div>Modified text</div>
+<div style="width: 200vw; height: 10px"></div>
+<script>
+  window.scrollTo(window.innerWidth * 2, 0);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html
new file mode 100644 (file)
index 0000000..9ccb822
--- /dev/null
@@ -0,0 +1,15 @@
+<!doctype html>
+<meta charset=utf-8>
+<title></title>
+<link rel=match href=hypothetical-box-scroll-viewport-ref.html>
+<link rel="help"
+      href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">
+<div style="position: absolute">Original text</div>
+<div style="width: 200vw; height: 10px"></div>
+<script>
+  // Scroll the viewport.
+  window.scrollTo(window.innerWidth * 2, 0);
+
+  // Now force relayout of the abs pos div.
+  document.querySelector("div").textContent = "Modified text";
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html
new file mode 100644 (file)
index 0000000..12e109b
--- /dev/null
@@ -0,0 +1,15 @@
+<!doctype html>
+<title>CSS test reference</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  .ancestor {
+    width: 100px;
+    height: 100px;
+    position: fixed;
+    left: 100px;
+    top: 0;
+    background-color: green;
+  }
+</style>
+<div class="ancestor"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html
new file mode 100644 (file)
index 0000000..996f439
--- /dev/null
@@ -0,0 +1,30 @@
+<!doctype html>
+<title>CSS test: movement of fixed-position ancestor correctly moves fixed-position descendant depending on the static position</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#size-and-position-details">
+<link rel="match" href="hypothetical-dynamic-change-001-ref.html">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  .ancestor, .child {
+    position: fixed;
+    width: 100px;
+    height: 100px;
+    background-color: green;
+    /* NOTE: child remains auto-positioned */
+  }
+  .ancestor {
+    left: 0;
+    top: 0;
+    background-color: red;
+  }
+</style>
+<div class="ancestor">
+  <div class="child"></div>
+</div>
+<script>
+onload = function() {
+  let ancestor = document.querySelector(".ancestor");
+  window.unused = ancestor.getBoundingClientRect();
+  ancestor.style.left = "100px";
+}
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html
new file mode 100644 (file)
index 0000000..12e109b
--- /dev/null
@@ -0,0 +1,15 @@
+<!doctype html>
+<title>CSS test reference</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  .ancestor {
+    width: 100px;
+    height: 100px;
+    position: fixed;
+    left: 100px;
+    top: 0;
+    background-color: green;
+  }
+</style>
+<div class="ancestor"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html
new file mode 100644 (file)
index 0000000..114b48d
--- /dev/null
@@ -0,0 +1,33 @@
+<!doctype html>
+<title>CSS test: movement of absolute-position ancestor correctly moves fixed-position descendant depending on the static position</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#size-and-position-details">
+<link rel="match" href="hypothetical-dynamic-change-001-ref.html">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  .ancestor, .child {
+    width: 100px;
+    height: 100px;
+    background-color: green;
+  }
+  .child {
+    position: fixed;
+    /* NOTE: child remains auto-positioned */
+  }
+  .ancestor {
+    position: absolute;
+    left: 0;
+    top: 0;
+    background-color: red;
+  }
+</style>
+<div class="ancestor">
+  <div class="child"></div>
+</div>
+<script>
+onload = function() {
+  let ancestor = document.querySelector(".ancestor");
+  window.unused = ancestor.getBoundingClientRect();
+  ancestor.style.left = "100px";
+}
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html
new file mode 100644 (file)
index 0000000..12e109b
--- /dev/null
@@ -0,0 +1,15 @@
+<!doctype html>
+<title>CSS test reference</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  .ancestor {
+    width: 100px;
+    height: 100px;
+    position: fixed;
+    left: 100px;
+    top: 0;
+    background-color: green;
+  }
+</style>
+<div class="ancestor"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html
new file mode 100644 (file)
index 0000000..26a27c2
--- /dev/null
@@ -0,0 +1,34 @@
+<!doctype html>
+<title>CSS test: movement of relative-position ancestor correctly moves fixed-position descendant depending on the static position</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#size-and-position-details">
+<link rel="match" href="hypothetical-dynamic-change-001-ref.html">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<style>
+  body { margin: 0 }
+  .ancestor, .child {
+    width: 100px;
+    height: 100px;
+    background-color: green;
+  }
+  .child {
+    position: fixed;
+    /* NOTE: child remains auto-positioned */
+  }
+  .ancestor {
+    position: relative;
+    left: 0;
+    top: 0;
+    background-color: red;
+  }
+</style>
+<div class="ancestor">
+  <div class="child"></div>
+</div>
+<script>
+onload = function() {
+  let ancestor = document.querySelector(".ancestor");
+  window.unused = ancestor.getBoundingClientRect();
+  ancestor.style.left = "100px";
+}
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance-expected.txt
new file mode 100644 (file)
index 0000000..33f0457
--- /dev/null
@@ -0,0 +1,22 @@
+
+PASS Property position has initial value static 
+PASS Property position does not inherit 
+PASS Property top has initial value auto 
+PASS Property top does not inherit 
+PASS Property right has initial value auto 
+PASS Property right does not inherit 
+PASS Property bottom has initial value auto 
+PASS Property bottom does not inherit 
+PASS Property left has initial value auto 
+PASS Property left does not inherit 
+FAIL Property inset-before has initial value auto assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-before does not inherit assert_true: expected true got false
+FAIL Property inset-after has initial value auto assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-after does not inherit assert_true: expected true got false
+FAIL Property inset-start has initial value auto assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-start does not inherit assert_true: expected true got false
+FAIL Property inset-end has initial value auto assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-end does not inherit assert_true: expected true got false
+FAIL Property z-index has initial value auto assert_equals: expected "auto" but got "0"
+PASS Property z-index does not inherit 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/inheritance.html
new file mode 100644 (file)
index 0000000..d75b28c
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Inheritance of CSS Positioned Layout properties</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#property-index">
+<meta name="assert" content="Properties inherit or not according to the spec.">
+<meta name="assert" content="Properties have initial values according to the spec.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/inheritance-testcommon.js"></script>
+</head>
+<body>
+<div id="container">
+<div id="target"></div>
+</div>
+<style>
+#container, #target {
+  position: sticky;
+}
+</style>
+<script>
+assert_not_inherited('position', 'static', 'absolute');
+assert_not_inherited('top', 'auto', '10px');
+assert_not_inherited('right', 'auto', '10px');
+assert_not_inherited('bottom', 'auto', '10px');
+assert_not_inherited('left', 'auto', '10px');
+assert_not_inherited('inset-before', 'auto', '10px');
+assert_not_inherited('inset-after', 'auto', '10px');
+assert_not_inherited('inset-start', 'auto', '10px');
+assert_not_inherited('inset-end', 'auto', '10px');
+assert_not_inherited('z-index', 'auto', '123');
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed-expected.txt
new file mode 100644 (file)
index 0000000..ae43adc
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property bottom value 'auto' computes to 'auto' 
+PASS Property bottom value 'calc(10px + 0.5em)' computes to '30px' 
+PASS Property bottom value 'calc(10px - 0.5em)' computes to '-10px' 
+PASS Property bottom value '-40%' computes to '-40%' 
+PASS Property bottom value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed.html
new file mode 100644 (file)
index 0000000..baeef5d
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().bottom</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-bottom">
+<meta name="assert" content="bottom lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("bottom", "auto");
+
+test_computed_value("bottom", "calc(10px + 0.5em)", "30px");
+test_computed_value("bottom", "calc(10px - 0.5em)", "-10px");
+test_computed_value("bottom", "-40%");
+test_computed_value("bottom", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid-expected.txt
new file mode 100644 (file)
index 0000000..e6adcbb
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['bottom'] = "min-content" should not set the property value 
+PASS e.style['bottom'] = "60" should not set the property value 
+PASS e.style['bottom'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid.html
new file mode 100644 (file)
index 0000000..6ed6fdd
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing bottom with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-bottom">
+<meta name="assert" content="bottom supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("bottom", "min-content");
+
+test_invalid_value("bottom", "60");
+test_invalid_value("bottom", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid-expected.txt
new file mode 100644 (file)
index 0000000..d4562c7
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['bottom'] = "auto" should set the property value 
+PASS e.style['bottom'] = "-10px" should set the property value 
+PASS e.style['bottom'] = "-20%" should set the property value 
+PASS e.style['bottom'] = "calc(2em + 3ex)" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid.html
new file mode 100644 (file)
index 0000000..7a20bd7
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing bottom with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-bottom">
+<meta name="assert" content="bottom supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("bottom", "auto");
+
+test_valid_value("bottom", "-10px");
+test_valid_value("bottom", "-20%");
+test_valid_value("bottom", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed-expected.txt
new file mode 100644 (file)
index 0000000..7901679
--- /dev/null
@@ -0,0 +1,7 @@
+
+FAIL Property inset-after value 'auto' computes to 'auto' assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-after value 'calc(10px + 0.5em)' computes to '30px' assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-after value 'calc(10px - 0.5em)' computes to '-10px' assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-after value '-40%' computes to '-40%' assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-after value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' assert_true: inset-after doesn't seem to be supported in the computed style expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed.html
new file mode 100644 (file)
index 0000000..b095809
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().insetAfter</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-after">
+<meta name="assert" content="inset-after lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("inset-after", "auto");
+
+test_computed_value("inset-after", "calc(10px + 0.5em)", "30px");
+test_computed_value("inset-after", "calc(10px - 0.5em)", "-10px");
+test_computed_value("inset-after", "-40%");
+test_computed_value("inset-after", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid-expected.txt
new file mode 100644 (file)
index 0000000..5e0798e
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['inset-after'] = "min-content" should not set the property value 
+PASS e.style['inset-after'] = "60" should not set the property value 
+PASS e.style['inset-after'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid.html
new file mode 100644 (file)
index 0000000..3fccd73
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-after with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-after">
+<meta name="assert" content="inset-after supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("inset-after", "min-content");
+
+test_invalid_value("inset-after", "60");
+test_invalid_value("inset-after", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid-expected.txt
new file mode 100644 (file)
index 0000000..2e37291
--- /dev/null
@@ -0,0 +1,6 @@
+
+FAIL e.style['inset-after'] = "auto" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-after'] = "-10px" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-after'] = "-20%" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-after'] = "calc(2em + 3ex)" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid.html
new file mode 100644 (file)
index 0000000..27734a5
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-after with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-after">
+<meta name="assert" content="inset-after supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("inset-after", "auto");
+
+test_valid_value("inset-after", "-10px");
+test_valid_value("inset-after", "-20%");
+test_valid_value("inset-after", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed-expected.txt
new file mode 100644 (file)
index 0000000..8a36ae5
--- /dev/null
@@ -0,0 +1,7 @@
+
+FAIL Property inset-before value 'auto' computes to 'auto' assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-before value 'calc(10px + 0.5em)' computes to '30px' assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-before value 'calc(10px - 0.5em)' computes to '-10px' assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-before value '-40%' computes to '-40%' assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-before value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' assert_true: inset-before doesn't seem to be supported in the computed style expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed.html
new file mode 100644 (file)
index 0000000..088a957
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().insetBefore</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-before">
+<meta name="assert" content="inset-before lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("inset-before", "auto");
+
+test_computed_value("inset-before", "calc(10px + 0.5em)", "30px");
+test_computed_value("inset-before", "calc(10px - 0.5em)", "-10px");
+test_computed_value("inset-before", "-40%");
+test_computed_value("inset-before", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid-expected.txt
new file mode 100644 (file)
index 0000000..77f7312
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['inset-before'] = "min-content" should not set the property value 
+PASS e.style['inset-before'] = "60" should not set the property value 
+PASS e.style['inset-before'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid.html
new file mode 100644 (file)
index 0000000..133afc2
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-before with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-before">
+<meta name="assert" content="inset-before supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("inset-before", "min-content");
+
+test_invalid_value("inset-before", "60");
+test_invalid_value("inset-before", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid-expected.txt
new file mode 100644 (file)
index 0000000..c4ad7c5
--- /dev/null
@@ -0,0 +1,6 @@
+
+FAIL e.style['inset-before'] = "auto" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-before'] = "-10px" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-before'] = "-20%" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-before'] = "calc(2em + 3ex)" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid.html
new file mode 100644 (file)
index 0000000..a802ddb
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-before with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-before">
+<meta name="assert" content="inset-before supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("inset-before", "auto");
+
+test_valid_value("inset-before", "-10px");
+test_valid_value("inset-before", "-20%");
+test_valid_value("inset-before", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed-expected.txt
new file mode 100644 (file)
index 0000000..de6a996
--- /dev/null
@@ -0,0 +1,7 @@
+
+FAIL Property inset-end value 'auto' computes to 'auto' assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-end value 'calc(10px + 0.5em)' computes to '30px' assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-end value 'calc(10px - 0.5em)' computes to '-10px' assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-end value '-40%' computes to '-40%' assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-end value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' assert_true: inset-end doesn't seem to be supported in the computed style expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed.html
new file mode 100644 (file)
index 0000000..ddc18ce
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().insetEnd</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-end">
+<meta name="assert" content="inset-end lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("inset-end", "auto");
+
+test_computed_value("inset-end", "calc(10px + 0.5em)", "30px");
+test_computed_value("inset-end", "calc(10px - 0.5em)", "-10px");
+test_computed_value("inset-end", "-40%");
+test_computed_value("inset-end", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid-expected.txt
new file mode 100644 (file)
index 0000000..a645fdb
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['inset-end'] = "min-content" should not set the property value 
+PASS e.style['inset-end'] = "60" should not set the property value 
+PASS e.style['inset-end'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid.html
new file mode 100644 (file)
index 0000000..b0e66bb
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-end with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-end">
+<meta name="assert" content="inset-end supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("inset-end", "min-content");
+
+test_invalid_value("inset-end", "60");
+test_invalid_value("inset-end", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid-expected.txt
new file mode 100644 (file)
index 0000000..7104e58
--- /dev/null
@@ -0,0 +1,6 @@
+
+FAIL e.style['inset-end'] = "auto" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-end'] = "-10px" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-end'] = "-20%" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-end'] = "calc(2em + 3ex)" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid.html
new file mode 100644 (file)
index 0000000..2271ae6
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-end with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-end">
+<meta name="assert" content="inset-end supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("inset-end", "auto");
+
+test_valid_value("inset-end", "-10px");
+test_valid_value("inset-end", "-20%");
+test_valid_value("inset-end", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed-expected.txt
new file mode 100644 (file)
index 0000000..99d11f9
--- /dev/null
@@ -0,0 +1,7 @@
+
+FAIL Property inset-start value 'auto' computes to 'auto' assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-start value 'calc(10px + 0.5em)' computes to '30px' assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-start value 'calc(10px - 0.5em)' computes to '-10px' assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-start value '-40%' computes to '-40%' assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+FAIL Property inset-start value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' assert_true: inset-start doesn't seem to be supported in the computed style expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed.html
new file mode 100644 (file)
index 0000000..f92202f
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().insetStart</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-start">
+<meta name="assert" content="inset-start lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("inset-start", "auto");
+
+test_computed_value("inset-start", "calc(10px + 0.5em)", "30px");
+test_computed_value("inset-start", "calc(10px - 0.5em)", "-10px");
+test_computed_value("inset-start", "-40%");
+test_computed_value("inset-start", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid-expected.txt
new file mode 100644 (file)
index 0000000..f94b8d6
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['inset-start'] = "min-content" should not set the property value 
+PASS e.style['inset-start'] = "60" should not set the property value 
+PASS e.style['inset-start'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid.html
new file mode 100644 (file)
index 0000000..2f7a949
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-start with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-start">
+<meta name="assert" content="inset-start supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("inset-start", "min-content");
+
+test_invalid_value("inset-start", "60");
+test_invalid_value("inset-start", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid-expected.txt
new file mode 100644 (file)
index 0000000..2eaf6c0
--- /dev/null
@@ -0,0 +1,6 @@
+
+FAIL e.style['inset-start'] = "auto" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-start'] = "-10px" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-start'] = "-20%" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['inset-start'] = "calc(2em + 3ex)" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid.html
new file mode 100644 (file)
index 0000000..e74b205
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing inset-start with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-inset-start">
+<meta name="assert" content="inset-start supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("inset-start", "auto");
+
+test_valid_value("inset-start", "-10px");
+test_valid_value("inset-start", "-20%");
+test_valid_value("inset-start", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed-expected.txt
new file mode 100644 (file)
index 0000000..078a4a9
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property left value 'auto' computes to 'auto' 
+PASS Property left value 'calc(10px + 0.5em)' computes to '30px' 
+PASS Property left value 'calc(10px - 0.5em)' computes to '-10px' 
+PASS Property left value '-40%' computes to '-40%' 
+PASS Property left value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed.html
new file mode 100644 (file)
index 0000000..9c8430a
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().left</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-left">
+<meta name="assert" content="left lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("left", "auto");
+
+test_computed_value("left", "calc(10px + 0.5em)", "30px");
+test_computed_value("left", "calc(10px - 0.5em)", "-10px");
+test_computed_value("left", "-40%");
+test_computed_value("left", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid-expected.txt
new file mode 100644 (file)
index 0000000..15d28bb
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['left'] = "min-content" should not set the property value 
+PASS e.style['left'] = "60" should not set the property value 
+PASS e.style['left'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid.html
new file mode 100644 (file)
index 0000000..d4308e4
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing left with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-left">
+<meta name="assert" content="left supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("left", "min-content");
+
+test_invalid_value("left", "60");
+test_invalid_value("left", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid-expected.txt
new file mode 100644 (file)
index 0000000..94e998e
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['left'] = "auto" should set the property value 
+PASS e.style['left'] = "-10px" should set the property value 
+PASS e.style['left'] = "-20%" should set the property value 
+PASS e.style['left'] = "calc(2em + 3ex)" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid.html
new file mode 100644 (file)
index 0000000..2d5e364
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing left with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-left">
+<meta name="assert" content="left supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("left", "auto");
+
+test_valid_value("left", "-10px");
+test_valid_value("left", "-20%");
+test_valid_value("left", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed-expected.txt
new file mode 100644 (file)
index 0000000..63b85a6
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property position value 'static' computes to 'static' 
+PASS Property position value 'relative' computes to 'relative' 
+PASS Property position value 'absolute' computes to 'absolute' 
+PASS Property position value 'sticky' computes to 'sticky' 
+PASS Property position value 'fixed' computes to 'fixed' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed.html
new file mode 100644 (file)
index 0000000..50badd3
--- /dev/null
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().position</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-position">
+<meta name="assert" content="position computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("position", "static");
+test_computed_value("position", "relative");
+test_computed_value("position", "absolute");
+test_computed_value("position", "sticky");
+test_computed_value("position", "fixed");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid-expected.txt
new file mode 100644 (file)
index 0000000..5c9823a
--- /dev/null
@@ -0,0 +1,4 @@
+
+PASS e.style['position'] = "auto" should not set the property value 
+PASS e.style['position'] = "static relative" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid.html
new file mode 100644 (file)
index 0000000..441cb03
--- /dev/null
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing position with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-position">
+<meta name="assert" content="position supports only the grammar 'static | relative | absolute | sticky | fixed'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("position", "auto");
+test_invalid_value("position", "static relative");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid-expected.txt
new file mode 100644 (file)
index 0000000..db08cda
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS e.style['position'] = "static" should set the property value 
+PASS e.style['position'] = "relative" should set the property value 
+PASS e.style['position'] = "absolute" should set the property value 
+PASS e.style['position'] = "sticky" should set the property value 
+PASS e.style['position'] = "fixed" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid.html
new file mode 100644 (file)
index 0000000..67e08bf
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing position with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-position">
+<meta name="assert" content="position supports the full grammar 'static | relative | absolute | sticky | fixed'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("position", "static");
+test_valid_value("position", "relative");
+test_valid_value("position", "absolute");
+test_valid_value("position", "sticky");
+test_valid_value("position", "fixed");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed-expected.txt
new file mode 100644 (file)
index 0000000..c71f174
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property right value 'auto' computes to 'auto' 
+PASS Property right value 'calc(10px + 0.5em)' computes to '30px' 
+PASS Property right value 'calc(10px - 0.5em)' computes to '-10px' 
+PASS Property right value '-40%' computes to '-40%' 
+PASS Property right value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed.html
new file mode 100644 (file)
index 0000000..29034c1
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().right</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-right">
+<meta name="assert" content="right lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("right", "auto");
+
+test_computed_value("right", "calc(10px + 0.5em)", "30px");
+test_computed_value("right", "calc(10px - 0.5em)", "-10px");
+test_computed_value("right", "-40%");
+test_computed_value("right", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid-expected.txt
new file mode 100644 (file)
index 0000000..fd96839
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['right'] = "min-content" should not set the property value 
+PASS e.style['right'] = "60" should not set the property value 
+PASS e.style['right'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid.html
new file mode 100644 (file)
index 0000000..23be4a0
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing right with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-right">
+<meta name="assert" content="right supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("right", "min-content");
+
+test_invalid_value("right", "60");
+test_invalid_value("right", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid-expected.txt
new file mode 100644 (file)
index 0000000..04d3892
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['right'] = "auto" should set the property value 
+PASS e.style['right'] = "-10px" should set the property value 
+PASS e.style['right'] = "-20%" should set the property value 
+PASS e.style['right'] = "calc(2em + 3ex)" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid.html
new file mode 100644 (file)
index 0000000..5ddaa4d
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing right with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-right">
+<meta name="assert" content="right supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("right", "auto");
+
+test_valid_value("right", "-10px");
+test_valid_value("right", "-20%");
+test_valid_value("right", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed-expected.txt
new file mode 100644 (file)
index 0000000..2ee028e
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property top value 'auto' computes to 'auto' 
+PASS Property top value 'calc(10px + 0.5em)' computes to '30px' 
+PASS Property top value 'calc(10px - 0.5em)' computes to '-10px' 
+PASS Property top value '-40%' computes to '-40%' 
+PASS Property top value 'calc(50% + 60px)' computes to 'calc(50% + 60px)' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed.html
new file mode 100644 (file)
index 0000000..faf8949
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().top</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-top">
+<meta name="assert" content="top lengths are made absolute.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    font-size: 40px;
+  }
+</style>
+<script>
+test_computed_value("top", "auto");
+
+test_computed_value("top", "calc(10px + 0.5em)", "30px");
+test_computed_value("top", "calc(10px - 0.5em)", "-10px");
+test_computed_value("top", "-40%");
+test_computed_value("top", "calc(50% + 60px)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid-expected.txt
new file mode 100644 (file)
index 0000000..8677461
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['top'] = "min-content" should not set the property value 
+PASS e.style['top'] = "60" should not set the property value 
+PASS e.style['top'] = "10px 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid.html
new file mode 100644 (file)
index 0000000..47907fe
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing top with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-top">
+<meta name="assert" content="top supports only the grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("top", "min-content");
+
+test_invalid_value("top", "60");
+test_invalid_value("top", "10px 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid-expected.txt
new file mode 100644 (file)
index 0000000..00af43b
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['top'] = "auto" should set the property value 
+PASS e.style['top'] = "-10px" should set the property value 
+PASS e.style['top'] = "-20%" should set the property value 
+PASS e.style['top'] = "calc(2em + 3ex)" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid.html
new file mode 100644 (file)
index 0000000..212daaf
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing top with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-top">
+<meta name="assert" content="top supports the full grammar 'auto | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("top", "auto");
+
+test_valid_value("top", "-10px");
+test_valid_value("top", "-20%");
+test_valid_value("top", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/w3c-import.log
new file mode 100644 (file)
index 0000000..5dc7d2a
--- /dev/null
@@ -0,0 +1,46 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/bottom-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-after-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-before-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-end-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/inset-start-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/left-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/position-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/right-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/top-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed-expected.txt
new file mode 100644 (file)
index 0000000..956fc39
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS Property z-index value 'auto' computes to 'auto' 
+PASS Property z-index value '-1' computes to '-1' 
+PASS Property z-index value 'calc(3 - 2)' computes to '1' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-computed.html
new file mode 100644 (file)
index 0000000..6f19f36
--- /dev/null
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: getComputedStyle().zIndex</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-z-index">
+<meta name="assert" content="z-index computed value is the keyword auto or an integer.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<style>
+  #target {
+    position: absolute;
+  }
+</style>
+<script>
+test_computed_value("z-index", "auto");
+test_computed_value("z-index", "-1");
+test_computed_value("z-index", "calc(3 - 2)", "1");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid-expected.txt
new file mode 100644 (file)
index 0000000..deba372
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['z-index'] = "none" should not set the property value 
+PASS e.style['z-index'] = "10px" should not set the property value 
+PASS e.style['z-index'] = "0.5" should not set the property value 
+PASS e.style['z-index'] = "auto 123" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-invalid.html
new file mode 100644 (file)
index 0000000..d89720a
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing z-index with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-z-index">
+<meta name="assert" content="z-index supports only the grammar 'auto | <integer>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("z-index", "none");
+test_invalid_value("z-index", "10px");
+test_invalid_value("z-index", "0.5");
+test_invalid_value("z-index", "auto 123");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid-expected.txt
new file mode 100644 (file)
index 0000000..9703f09
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS e.style['z-index'] = "auto" should set the property value 
+PASS e.style['z-index'] = "-789" should set the property value 
+PASS e.style['z-index'] = "0" should set the property value 
+PASS e.style['z-index'] = "123" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/parsing/z-index-valid.html
new file mode 100644 (file)
index 0000000..3d1ffa0
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Positioned Layout Module Level 3: parsing z-index with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-z-index">
+<meta name="assert" content="z-index supports the full grammar 'auto | <integer>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("z-index", "auto");
+
+test_valid_value("z-index", "-789");
+test_valid_value("z-index", "0");
+test_valid_value("z-index", "123");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic-expected.txt
new file mode 100644 (file)
index 0000000..ac6e0a9
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS #target height changed 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html
new file mode 100644 (file)
index 0000000..2b158a8
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<title>CSS Position: dynamic abspos table height changes</title>
+<link rel="author" title="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abs-non-replaced-height">
+<meta name="assert" content="Height changes for abspos table.">
+<style>
+
+#container {
+  width: 400px;
+  height: 300px;
+  background: green;
+  position: relative;
+}
+#target {
+  display: table;
+  background: red;
+  position: absolute;
+  top: 0;
+  width: 50%;
+  height: 100px;
+}
+</style>
+<!-- There should be no red on this page -->
+<div id="container">
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+let target = document.querySelector("#target");
+target.style.height = "auto";
+test(() => {
+  assert_equals(window.getComputedStyle(target).height, "0px");
+}, '#target height changed');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001-expected.txt
new file mode 100644 (file)
index 0000000..fdf21dc
--- /dev/null
@@ -0,0 +1,4 @@
+
+
+PASS absolute positioned button with percentage top gets positioned 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html
new file mode 100644 (file)
index 0000000..3e8899a
--- /dev/null
@@ -0,0 +1,58 @@
+<!doctype html>
+<html>
+<head>
+  <link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
+  <link rel="help" href="https://crbug.com/970171">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+<style>
+  #container {
+    position: relative;
+    border: 1px solid black;
+  }
+  .narrow {
+    width: 200px;
+    height: 300px;
+  }
+  .wide {
+    width: 300px;
+    height: 200px;
+  }
+  #target {
+    background: green;
+    position: absolute;
+    width: 50px;
+    height: 30px;
+    left: 50%;
+    top: 50%;
+    margin-left: -25px;
+    margin-top: -15px;
+  }
+</style>
+</head>
+<body>
+<div id="container" class="narrow">
+  <button id="target"></button>
+</div>
+<script>
+  test( t => {
+    let container = document.querySelector("#container");
+    let target = document.querySelector("#target");
+    document.body.offsetTop;
+    // start off narrow
+    let narrow_left = target.offsetLeft;
+    let narrow_top = target.offsetTop;
+    // make it wide
+    container.classList.toggle("narrow");
+    container.classList.toggle("wide");
+    document.body.offsetTop;
+    // make it narrow again
+    container.classList.toggle("narrow");
+    container.classList.toggle("wide");
+    document.body.offsetTop;
+    assert_equals(target.offsetLeft, narrow_left);
+    assert_equals(target.offsetTop, narrow_top);
+  }, "absolute positioned button with percentage top gets positioned");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002-expected.txt
new file mode 100644 (file)
index 0000000..560441a
--- /dev/null
@@ -0,0 +1,5 @@
+floatleft
+text
+
+PASS #target position is recalculated correctly. 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html
new file mode 100644 (file)
index 0000000..5fef520
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/970166">
+<meta name="assert" content="simplified layout calculates correct abspos position with floats">
+<style>
+
+#container {
+  position: relative;
+  background: gray;
+}
+#container::after {
+  content: '';
+  display: table;
+  clear:both;
+}
+#target {
+  position: absolute;
+  right: 0;
+  background: green;
+}
+</style>
+<div id="container">
+  <div style="float:left">floatleft</div>
+  <div id="target">
+    <div>text</div>
+    <div id="toggle">toggle</div>
+  </div>
+</div>
+<script>
+test(() => {
+  document.body.offsetTop;
+  let el = document.querySelector("#toggle");
+  el.style.display = "none";
+  document.body.offsetTop;
+  assert_equals(document.querySelector("#target").offsetTop, 0);
+}, '#target position is recalculated correctly.');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html
new file mode 100644 (file)
index 0000000..91d8628
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: dynamic changes to containing block height</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=933054">
+<meta name="assert" content="Chrome regression: abspos descendant responds to containing block size change through line items">
+<style>
+
+#container {
+  position: relative;
+}
+#intermediate {
+  overflow: hidden;
+  width:200px;
+  height:200px;
+  background:red;
+}
+#block {
+  height:200px;
+  background:green;
+}
+#target {
+  position: absolute;
+  width: 200px;
+  height: 100px;
+  background:green;
+}
+</style>
+<!-- Test for crbug.com/933054
+  Relayout optimizations cause OOF descendant not to be
+  repositioned
+-->
+<div id="container">
+  <div id="intermediate">
+    <div id="block"></div>
+    <div id="target"></div>
+  </div>
+</div>
+
+<script>
+document.body.offsetTop;
+test(() => {
+  document.getElementById("block").style.height = "100px";
+  assert_equals(document.querySelector("#target").offsetTop, 100);
+}, '#target static position responded to parent relayout');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic-expected.txt
new file mode 100644 (file)
index 0000000..94fe6b0
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS #target used container width when computing size 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-container-dynamic.html
new file mode 100644 (file)
index 0000000..711d317
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: dynamic changes to containing block width</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abs-non-replaced-width">
+<meta name="assert" content="abspos descendant responds to containing block size change">
+<style>
+
+#container {
+  position: relative;
+  width: 50px;
+  height: 100px;
+  background: red;
+}
+#target {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background: green;
+}
+</style>
+<div id="container">
+  <div style="display:flex;">
+    <div id="target"></div>
+  </div>
+</div>
+<script>
+document.body.offsetTop;
+test(() => {
+  document.getElementById("container").style.width = "100px";
+  assert_equals(document.querySelector("#target").offsetWidth, 100);
+}, '#target used container width when computing size');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001-expected.txt
new file mode 100644 (file)
index 0000000..84ec6be
--- /dev/null
@@ -0,0 +1,4 @@
+success if does not crash
+
+PASS Chrome crash with inline  
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html
new file mode 100644 (file)
index 0000000..592e5d2
--- /dev/null
@@ -0,0 +1,28 @@
+<!doctype html>
+<html>
+<head>
+  <title>Chrome crash with inline </title>
+  <link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
+  <link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=928224">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script>test(()=>{})</script>
+<style>
+  a {
+    position: relative;
+  }
+  a:before {
+    content: "foo";
+    position: absolute;
+    background: green;
+  }
+</style>
+</head>
+<body>
+  <div>
+    <li>
+      <a href="dummy">success if does not crash</a>
+    </li>
+  </div>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002-expected.txt
new file mode 100644 (file)
index 0000000..186440b
--- /dev/null
@@ -0,0 +1,4 @@
+abs
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html
new file mode 100644 (file)
index 0000000..e7ed1da
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=938224">
+<meta name="assert" content="absolute position in LI container does not crash">
+<style>
+  #container {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+  }
+  #abs {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+  }
+</style>
+<li id="container">
+  <ul>
+    <li>
+      <div id="abs">abs</div>
+    </li>
+  </ul>
+</li>
+<script>
+test(() => {
+}, 'test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003-expected.txt
new file mode 100644 (file)
index 0000000..78d2d4b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html
new file mode 100644 (file)
index 0000000..c443e83
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=935805">
+<meta name="assert" content="Nested abs/fixed/flex do not crash">
+<style>
+  #flex {
+    display: flex;
+  }
+  .abs {
+    position: absolute;
+  }
+  #fixed {
+    position: fixed;
+  }
+</style>
+<div class="abs">
+  <div id="flex">
+    <div class="abs">
+      <div id="fixed"></div>
+    </div>
+  </div>
+</div>
+<script>
+test(() => {
+}, 'test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004-expected.txt
new file mode 100644 (file)
index 0000000..78d2d4b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html
new file mode 100644 (file)
index 0000000..cc6de63
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=946986">
+<meta name="assert" content="Nested abs/fixed/flex do not crash">
+<style>
+  body { overflow: scroll;}
+  .container {
+    position: relative;
+    contain: paint;
+  }
+  .flex {
+    display: flex;
+  }
+  .fixed {
+    position: fixed;
+  }
+  .abs {
+    position: absolute;
+  }
+</style>
+<!-- LayoutNG currently does not support display:flex.
+  Propagation of descendants across flex boundaries is error prone -->
+<div id="one" class="container" style="">
+  <div class="flex">
+    <div class="abs">
+      <div class="flex">
+        <div id="fixed1" class="fixed">
+          <div id="fixed2" class="fixed"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script>
+test(() => {
+}, 'test passes if it does not crash');
+</script>
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html
new file mode 100644 (file)
index 0000000..e1b469d
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=949222">
+<meta name="assert" content="Dynamic containing block change does not crash">
+<style>
+  .container {
+    position: relative;
+  }
+  .abs {
+    position: absolute;
+    width: 50px;
+    height: 50px;
+    background: green;
+  }
+  @keyframes slidein {
+    from { transform: scaleX(0); }
+    to   { transform: scaleX(1); }
+  }
+  .animate {
+    animation: slidein 0.1s linear;
+  }
+  .boundary {
+    overflow: hidden;
+    width: 100px;
+    height: 100px;
+  }
+</style>
+<!-- LayoutNG currently does not support display:flex.
+  Propagation of descendants across flex boundaries is error prone -->
+<div id="one" class="container" style="">
+  <div class="boundary">
+    <div class="boundary">
+      <div class="boundary">
+        <div id="intermediate">
+          <div class="abs"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script>
+let t = async_test("Test passes if it does not crash");
+let el = document.querySelector("#intermediate");
+el.addEventListener("animationend", _ => {
+  t.step(function() {
+    document.body.offsetTop;
+    assert_true(true, "test did not crash");
+    t.done();
+  })
+});
+el.classList.add("animate");
+</script>
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006-expected.txt
new file mode 100644 (file)
index 0000000..59cd379
--- /dev/null
@@ -0,0 +1,4 @@
+
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html
new file mode 100644 (file)
index 0000000..94b2469
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=952644">
+<meta name="assert" content="abspos iframe with zoom gets laid out">
+<style>
+  .boundary {
+    overflow: hidden;
+    width: 100px;
+    height: 100px;
+  }
+  .abs {
+    position: absolute;
+    background: green;
+    zoom: 2;
+  }
+</style>
+<!-- Containing block with zoom causes zoomed abspos iframe
+not to be laid out-->
+<div class="boundary">
+  <div id="parent">
+  </div>
+</div>
+<script>
+  document.body.offsetTop;
+  let abs = document.createElement("iframe");
+  abs.classList.add("abs");
+  document.querySelector("#parent").appendChild(abs);
+  test(() => {
+  }, 'test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007-expected.txt
new file mode 100644 (file)
index 0000000..a475a67
--- /dev/null
@@ -0,0 +1,7 @@
+parent 
+start split start
+splitter
+split middle css-container start ABSFULLABS css container end split end parent end
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html
new file mode 100644 (file)
index 0000000..9c24210
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: Chrome crash</title>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/945696">
+<meta name="assert" content="Absolute descendant inside multiple nested split inlines does not crash.">
+<style>
+  body {
+    overflow: hidden;
+    margin: 0px;
+    font-size: 24px;
+  }
+  #block-container {
+    position: relative;
+  }
+  #css-container {
+    position: relative;
+    font-size: 12px;
+  }
+  #anonymous-parent {
+    background-color: #FFFF7F;
+  }
+  #anonymous-split {
+    background-color: #FFD997;
+  }
+  #css-container {
+    background-color: #BEE0FF;
+  }
+  #abs {
+    background-color: rgba(0, 255, 0, 0.5);
+    position:absolute;
+    top: 0px;
+    left: 0px;
+  }
+  #fullabs {
+    background-color: rgba(0, 255, 0, 0.5);
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    right: 0;
+  }
+</style>
+<div id="block-container">
+  <span id="anonymous-parent">
+    parent <br>start
+    <span id="anonymous-split">
+      split start
+      <div id="splitter" >splitter</div>
+      split middle
+      <span id="css-container">
+        css-container start
+        <div id="abs">ABS</div>
+        <div id="fullabs">FULLABS</div>
+        css container end
+      </span>
+      split end
+    </span>
+    parent end
+  </span>
+</div>
+<script>
+document.body.offsetTop;
+ test(() => {
+ }, 'test passes if it does not crash');
+</script>
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008-expected.txt
new file mode 100644 (file)
index 0000000..78d2d4b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html
new file mode 100644 (file)
index 0000000..3d1c909
--- /dev/null
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<link rel="author" href="mailto:atotic@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/967977">
+<meta name="assert" content="zero width inline abspos container with borders does not cause a crash">
+<style>
+</style>
+<span style="border-bottom:1px solid; filter:blur(2px);">
+  <div style="position:absolute"></div>
+</span>
+<script>
+document.body.offsetTop;
+ test(() => {
+ }, 'test passes if it does not crash');
+</script>
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009-expected.txt
new file mode 100644 (file)
index 0000000..d059776
--- /dev/null
@@ -0,0 +1,4 @@
+foo
+
+PASS this test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html
new file mode 100644 (file)
index 0000000..23df49c
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/974760">
+<meta name="assert" content="fixed children inside inline container do not crash">
+<style>
+#container {
+  position: relative;
+  overflow: auto;
+  width: 200px;
+  height: 200px;
+}
+#inline-fixed-container {
+  filter:url("");
+}
+#fixed-container {
+  position: fixed;
+}
+#target {
+  position: fixed;
+}
+</style>
+<div id="container">
+  <span id="inline-fixed-container">
+    <div id="fixed-container">
+      <div id="target"></div>
+    </div>
+  </span>
+</div>
+<script>
+test(() => {
+  document.body.offsetTop;
+  document.querySelector("#target").appendChild(
+    document.createTextNode("foo"));
+  document.body.offsetTop;
+}, 'this test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010-expected.txt
new file mode 100644 (file)
index 0000000..78d2d4b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html
new file mode 100644 (file)
index 0000000..91b439a
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/976397">
+<div style="width: 100px; position: relative;">
+  <div style="float: left; width: 110px; height: 50px;">
+    <div style="display: flex;">
+      <div style="position: absolute; width: 50px; height: 50px;"></div>
+   </div>
+  </div>
+</div>
+<script>
+test(() => { }, 'test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011-expected.txt
new file mode 100644 (file)
index 0000000..eb4ff57
--- /dev/null
@@ -0,0 +1,10 @@
+absolute container A container
+splitter
+container
+fixed container F container
+splitter
+container
+
+PASS test passes if changing abspos inline container to static does not crash 
+PASS test passes if changing fixed inline container to static does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html
new file mode 100644 (file)
index 0000000..fd3d63e
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/977930">
+<style>
+body {
+  margin: 20px;
+}
+.container {
+  position: relative;
+}
+#inline-container-absolute {
+  position: relative;
+  background: rgba(0,255,0,0.3);
+}
+#inline-container-fixed {
+  filter:  blur(2px);
+  background: rgba(0,255,0,0.3);
+}
+.outofflow {
+  position: absolute;
+  width: 20px;
+  height: 20px;
+  background: green;
+  top:0;
+  left:0;
+}
+.splitter {
+  width: 100px;
+  height: 20px;
+  background: gray;
+}
+</style>
+<div class="container">
+ <div>
+    absolute
+    <span id="inline-container-absolute" >
+      container
+        <div class="outofflow" style="position:absolute">A</div>
+      container
+      <div class="splitter">splitter</div>
+      container
+    </span>
+  </div>
+</div>
+<div class="container">
+ <div>
+    fixed
+    <span id="inline-container-fixed" >
+      container
+        <div class="outofflow" style="position:fixed">F</div>
+      container
+      <div class="splitter">splitter</div>
+      container
+    </span>
+  </div>
+</div>
+<script>
+test(_ => {
+  document.body.offsetTop;
+  document.querySelector("#inline-container-absolute").style.position = 'static';
+}, 'test passes if changing abspos inline container to static does not crash');
+test(_ => {
+  document.body.offsetTop;
+  document.querySelector("#inline-container-fixed").style.filter = 'none';
+}, 'test passes if changing fixed inline container to static does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012-expected.txt
new file mode 100644 (file)
index 0000000..9ecac6a
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS position-absolute-crash-chrome-012 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html
new file mode 100644 (file)
index 0000000..f012ff5
--- /dev/null
@@ -0,0 +1,25 @@
+<!doctype html>
+<link rel="help" href="https://crbug.com/996085">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>test(()=>{})</script>
+<style>
+  #container {
+    width: 600px;
+    position: relative;
+  }
+  #target {
+    position: absolute;
+    left: 0px;
+    right: 33554000px;
+    width: 10px;
+    margin-left: 33554432px;
+    margin-right: 33554432px;
+    height: 20px;
+  }
+</style>
+<body>
+  <div id="container">
+    <div id="target"></div>
+  </div>
+</body>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block-expected.txt
new file mode 100644 (file)
index 0000000..9eb302c
--- /dev/null
@@ -0,0 +1,11 @@
+TTT
+
+PASS abs containing block moves from outer to intermediate 
+PASS abs containing block moves from intermediate to outer 
+PASS target is no longer absolute 
+PASS target becomes absolute 
+FAIL fixed containing block moves from outer to intermediate assert_equals: expected 310 but got 600
+FAIL fixed containing block moves from intermediate to outer assert_equals: expected 210 but got 600
+FAIL target is no longer fixed assert_equals: expected 310 but got 600
+FAIL target becomes fixed assert_equals: expected 310 but got 600
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html
new file mode 100644 (file)
index 0000000..3968f68
--- /dev/null
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<title>CSS Position: position:absolute dynamic containing block</title>
+<link rel="author" title="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#def-cb">
+<meta name="assert" content="Tests changes in containing block for out-of-flow positioned descendants.">
+<style>
+
+#outer {
+  width: 400px;
+  height: 300px;
+  outline: black solid 1px;
+}
+#intermediate {
+  width: 300px;
+  height: 200px;
+  outline: gray solid 1px;
+}
+#target {
+  background: green;
+}
+.abs {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+}
+.fixed {
+  position: fixed;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+}
+.abs-container {
+  position: relative;
+}
+.fixed-container {
+  will-change: transform;
+}
+div {
+  padding: 5px;
+}
+</style>
+<!-- This tests potential caching of out-of-flow positioned descendants. -->
+<div id="outer">
+  <div>
+    <div id="intermediate">
+      <div>
+        <div id="target">TTT</div>
+        <div id="noLayout1"></div>
+      </div>
+      <div id="noLayout2"></div>
+    </div>
+  </div>
+</div>
+<script>
+  let outer = document.querySelector("#outer");
+  let intermediate = document.querySelector("#intermediate");
+  let target = document.querySelector("#target");
+  let padding = 5;
+
+  function cleanup() {
+    outer.className = "";
+    intermediate.className = "";
+    target.className = "";
+    document.body.offsetTop;
+  }
+
+  test( t => {
+    t.add_cleanup(cleanup);
+    outer.classList.add("abs-container");
+    target.classList.add("abs");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+    intermediate.classList.add("abs-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+  }, "abs containing block moves from outer to intermediate" );
+  test( t => {
+    t.add_cleanup(cleanup);
+    target.classList.add("abs");
+    intermediate.classList.add("abs-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+    outer.classList.add("abs-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+    intermediate.classList.remove("abs-container");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+  }, "abs containing block moves from intermediate to outer" );
+  test( t => {
+    t.add_cleanup(cleanup);
+    target.classList.add("abs");
+    outer.classList.add("abs-container");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+    target.classList.remove("abs");
+    assert_equals(target.offsetWidth, intermediate.offsetWidth - 4 * padding);
+  }, "target is no longer absolute");
+  test( t => {
+    t.add_cleanup(cleanup);
+    outer.classList.add("abs-container");
+    assert_equals(target.offsetWidth, intermediate.offsetWidth - 4 * padding);
+    target.classList.add("abs");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+  }, "target becomes absolute");
+
+ // Repeat same tests with fixed
+  test( t => {
+    t.add_cleanup(cleanup);
+    outer.classList.add("fixed-container");
+    target.classList.add("fixed");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+    intermediate.classList.add("fixed-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+  }, "fixed containing block moves from outer to intermediate" );
+  test( t => {
+    t.add_cleanup(cleanup);
+    target.classList.add("fixed");
+    intermediate.classList.add("fixed-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+    outer.classList.add("fixed-container");
+    assert_equals(target.offsetHeight, intermediate.offsetHeight);
+    intermediate.classList.remove("fixed-container");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+  }, "fixed containing block moves from intermediate to outer" );
+  test( t => {
+    t.add_cleanup(cleanup);
+    target.classList.add("fixed");
+    outer.classList.add("fixed-container");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+    target.classList.remove("fixed");
+    assert_equals(target.offsetWidth, intermediate.offsetWidth - 4 * padding);
+  }, "target is no longer fixed");
+  test( t => {
+    t.add_cleanup(cleanup);
+    outer.classList.add("fixed-container");
+    assert_equals(target.offsetWidth, intermediate.offsetWidth - 4 * padding);
+    target.classList.add("fixed");
+    assert_equals(target.offsetHeight, outer.offsetHeight);
+  }, "target becomes fixed");
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html
new file mode 100644 (file)
index 0000000..7953532
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+ul {
+  margin: 0;
+  padding: 0;
+  width: 100px;
+  height: 100px;
+  background: red;
+}
+
+#target {
+  position: absolute;
+  width: 100px;
+  height: 100px;
+  background: green;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<ul>
+  <li style="position: relative;">
+    <div style="height: 50px;"></div>
+    <div id=target></div>
+  </li>
+</ul>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = '0px';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html
new file mode 100644 (file)
index 0000000..c07919b
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that scrollbars dissappear when an absolute positioned element no longer triggers overflow."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  width: 100px;
+  max-height: 100px;
+  overflow: auto;
+}
+
+#target {
+  position: absolute;
+  width: 100px;
+  height: 200px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="target"></div>
+  <div style="height: 100px; background: green;"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.width = '50px';
+target.style.height = '50px';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html
new file mode 100644 (file)
index 0000000..0c3d362
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that scrollbars dissappear when an absolute positioned element no longer triggers overflow."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#scrollable {
+  width: 100px;
+  overflow: auto;
+}
+
+#container {
+  width: 100px;
+  height: 50px;
+  position: relative;
+  background: green;
+}
+
+#target {
+  position: absolute;
+  width: 50px;
+  height: 20px;
+  left: 200px;
+}
+
+#green {
+  width: 100px;
+  height: 50px;
+  background: green;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="scrollable">
+  <div id="container">
+    <div id="target"></div>
+  </div>
+</div>
+<div id="green"></div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html
new file mode 100644 (file)
index 0000000..1bde155
--- /dev/null
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints does not crash the renderer."/>
+<script src="/common/reftest-wait.js"></script>
+<p>Test passes if there is a filled green square.</p>
+<div style="display: flex; width: 100px; height: 100px; overflow: hidden; position: relative;"> <!-- relayout boundary -->
+  <div style="position: relative;">
+    <div style="display: flex; position: relative; width: 100px; height: 50px; overflow: hidden;"> <!-- relayout boundary -->
+      <div id="target1" style="position: absolute; width: 10px; height: 50px; background: green;"></div>
+    </div>
+    <div id="target2" style="position: absolute; width: 10px; height: 50px; background: green;"></div>
+  </div>
+</div>
+<script>
+document.body.offsetTop;
+target2.style.width = '100px';
+target1.style.width = '100px';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html
new file mode 100644 (file)
index 0000000..a63df41
--- /dev/null
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#float {
+  float: left;
+  background: green;
+
+  width: 40px;
+  height: 80px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+  display: inline;
+
+  width: 40px;
+  height: 80px;
+  top: -10px;
+  left: -10px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="float"></div>
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html
new file mode 100644 (file)
index 0000000..49e3807
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#float {
+  float: left;
+  background: green;
+
+  width: 40px;
+  height: 80px;
+}
+
+#block {
+  background: green;
+  height: 40px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+  display: inline;
+
+  width: 40px;
+  height: 40px;
+  top: -10px;
+  left: -10px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="float"></div>
+  <div id="block"></div>
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html
new file mode 100644 (file)
index 0000000..fa7cc69
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#float {
+  float: left;
+  background: green;
+
+  width: 40px;
+  height: 80px;
+}
+
+#block {
+  background: green;
+  height: 40px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+  display: inline;
+
+  width: 40px;
+  height: 40px;
+  top: -10px;
+  left: -10px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="block">
+    <div id="float"></div>
+  </div>
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html
new file mode 100644 (file)
index 0000000..3ccd146
--- /dev/null
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+  direction: rtl;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#float {
+  float: right;
+  background: green;
+
+  width: 40px;
+  height: 80px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+  display: inline;
+
+  width: 40px;
+  height: 80px;
+  top: -10px;
+  left: -10px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="float"></div>
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html
new file mode 100644 (file)
index 0000000..78b0ced
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#block {
+  background: green;
+  height: 40px;
+  margin-bottom: 20px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+
+  width: 80px;
+  height: 20px;
+  top: -10px;
+  left: -10px;
+}
+
+#cover {
+  position: absolute;
+  background: green;
+
+  width: 80px;
+  height: 20px;
+  top: 40px;
+  left: 0px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="block"></div>
+  <div id="target"></div>
+  <div id="cover"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html
new file mode 100644 (file)
index 0000000..82fcaa3
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<p>Test passes if there is a filled green square.</p>
+<div style="width:100px; height:100px; background:green;"></div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html
new file mode 100644 (file)
index 0000000..98b18ef
--- /dev/null
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#block {
+  background: green;
+  height: 40px;
+  margin-bottom: 20px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+
+  width: 80px;
+  height: 20px;
+  top: -10px;
+  left: -10px;
+}
+
+#cover {
+  position: absolute;
+  background: green;
+
+  width: 80px;
+  height: 20px;
+  top: 40px;
+  left: 0px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div>
+    <div id="block"></div>
+  </div>
+  <div id="target"></div>
+  <div id="cover"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht
new file mode 100644 (file)
index 0000000..05a1379
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+  <title>CSS Reftest Reference</title>
+  <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+  <style type="text/css"><![CDATA[
+  div
+  {
+  background-color: green;
+  height: 100px;
+  width: 100px;
+  }
+  ]]></style>
+ </head>
+ <body>
+  <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+  <div></div>
+ </body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html
new file mode 100644 (file)
index 0000000..3a28b20
--- /dev/null
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly for table-cells."/>
+<style>
+#table-cell {
+  position: relative;
+  display: table-cell;
+  vertical-align: middle;
+
+  width: 100px;
+  height: 100px;
+  background: red;
+}
+
+#target {
+  position: absolute;
+  translate: 0 -50px;
+
+  width: 100px;
+  height: 100px;
+  background: green;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="table-cell">
+  <div id="target" style="top: 0;"></div>
+</div>
+<script>
+document.body.offsetTop;
+document.getElementById('target').style.top = 'auto';
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html
new file mode 100644 (file)
index 0000000..35d5f65
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class='reftest-wait'>
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/" />
+<meta name="assert" content="This test checks that a dynamic change in constraints calculates the static position correctly."/>
+<script src="/common/reftest-wait.js"></script>
+<style>
+#container {
+  position: relative;
+  background: red;
+
+  box-sizing: border-box;
+  border: solid green 10px;
+  width: 100px;
+  height: 100px;
+}
+
+#target {
+  position: absolute;
+  background: green;
+
+  width: 80px;
+  height: 80px;
+  top: -10px;
+  left: -10px;
+}
+</style>
+<p>Test passes if there is a filled green square.</p>
+<div id="container">
+  <div id="target"></div>
+</div>
+<script>
+document.body.offsetTop;
+const target = document.getElementById('target');
+target.style.top = 'initial';
+target.style.left = 'initial';
+document.body.offsetTop;
+takeScreenshot();
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht
new file mode 100644 (file)
index 0000000..05a1379
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+  <title>CSS Reftest Reference</title>
+  <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+  <style type="text/css"><![CDATA[
+  div
+  {
+  background-color: green;
+  height: 100px;
+  width: 100px;
+  }
+  ]]></style>
+ </head>
+ <body>
+  <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+  <div></div>
+ </body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-fieldset.html
new file mode 100644 (file)
index 0000000..b212e62
--- /dev/null
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-width">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="position:relative; width:100px; height:100px; background:red;">
+  <fieldset style="position:absolute; left:0; top:0; right:0; bottom:0; margin:0; border:none; background:green;"></fieldset>
+</div>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001-expected.txt
new file mode 100644 (file)
index 0000000..fcfde37
--- /dev/null
@@ -0,0 +1,3 @@
+
+FAIL absolute inside inline container location should be correct. assert_equals: expected 0 but got 100
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-001.html
new file mode 100644 (file)
index 0000000..204260e
--- /dev/null
@@ -0,0 +1,25 @@
+<!doctype html>
+<html>
+<head>
+  <title>Absolute inside inline container location should be correct</title>
+  <link rel="author" href="mailto:atotic@chromium.org">
+  <link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+</head>
+<!-- There should be a green square below -->
+<body style="margin:0">
+  <span id="container" style="position:relative;">
+    <div style="width:100px; height:100px; background:red;"></div>
+    <div id="target" style="position:absolute; left:0; top:0; width:100px; height:100px; background:green;"></div>
+  </span>
+  <script>
+    test(_ => {
+      let bounds = document.querySelector("#target").getBoundingClientRect();
+      let container_bounds = document.querySelector("#container").getBoundingClientRect();
+      assert_equals(bounds.x, container_bounds.x);
+      assert_equals(bounds.y, container_bounds.y);
+    }, "absolute inside inline container location should be correct.");
+  </script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt
new file mode 100644 (file)
index 0000000..94c6331
--- /dev/null
@@ -0,0 +1,5 @@
+outer span container span start
+container span end outer span end
+
+FAIL absolute inside inline container location should be correct. assert_equals: left matches container expected 70.203125 but got 0
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002.html
new file mode 100644 (file)
index 0000000..8ec3838
--- /dev/null
@@ -0,0 +1,51 @@
+<!doctype html>
+
+<link rel="author" href="mailto:atotic@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
+<meta name="assert" content="split inline containing blocks are handled correctly.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+  body {
+    margin: 0;
+  }
+  #container-span {
+    position: relative;
+    outline: solid 1px gray;
+  }
+  #split {
+    width: 10px;
+    height: 10px;
+  }
+  #target {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    background: rgba(0,255,0,0.3);
+  }
+</style>
+<!-- There should be a green rectangle spanning two "container span" lines  below -->
+<span id="outer-span">
+outer span
+  <span id="container-span">
+    container span start
+    <div id="split"></div>
+    <div id="target"></div>
+    container span end
+  </span>
+outer span end
+</span>
+<script>
+  test(_ => {
+    let abs_bounds = document.querySelector("#target").getClientRects();
+    let container_bounds = document.querySelector("#container-span").getClientRects();
+    assert_equals(abs_bounds.length, 1);
+    assert_equals(container_bounds.length, 3);
+    assert_equals(abs_bounds[0].left, container_bounds[0].left, "left matches container");
+    assert_equals(abs_bounds[0].top, container_bounds[0].top, "top matches container");
+    assert_equals(abs_bounds[0].right, container_bounds[2].right, "right matches container");
+    assert_equals(abs_bounds[0].bottom, container_bounds[2].bottom, "bottom matches container");
+  }, "absolute inside inline container location should be correct.");
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash-expected.txt
new file mode 100644 (file)
index 0000000..97b0459
--- /dev/null
@@ -0,0 +1,6 @@
+AAA
+XXX
+ZZZ
+
+PASS Should not crash with split inline abspos container, and flex ancestor 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-crash.html
new file mode 100644 (file)
index 0000000..e7b2ef4
--- /dev/null
@@ -0,0 +1,24 @@
+<!doctype html>
+<html>
+<head>
+  <title>Should not crash with split inline abspos container, and flex ancestor</title>
+  <link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script>test(()=>{})</script>
+  <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+</head>
+<!-- There should be a green square below -->
+<body style="font-family: Ahem;font-size: 20px;">
+<div id="container">
+  <span id="split" style="position:relative;color:green">
+    AAA
+    <div style="display:flex">
+      <a>
+        <span id="target" style="position:absolute;color:green;top:20px">XXX</span></a>
+    </div>
+    ZZZ
+  </span>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height-expected.txt
new file mode 100644 (file)
index 0000000..5f5516f
--- /dev/null
@@ -0,0 +1,6 @@
+
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+FAIL #target height matches containing block height, and target parent width matches #target width assert_equals: expected 144 but got 0
+FAIL #target height matches containing block height, and target parent width matches #target width after resize assert_equals: expected 216 but got 0
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-percentage-height.html
new file mode 100644 (file)
index 0000000..8b2e5c0
--- /dev/null
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<title>CSS Position Absolute: css-position-3</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/">
+<meta name="assert" content="abspos resolves %-ge sizes correctly.">
+<style>
+
+#container {
+  position: relative;
+}
+
+#image-wrapper {
+  display: flex;
+  position: absolute;
+  height: 100%;
+  background: green;
+}
+
+#content-wrapper {
+  margin-left: 30%;
+}
+
+#target {
+  display: block;
+  min-height: 100%;
+  opacity: 0.5;
+}
+</style>
+<!-- IMG height is 100% of image wrapper height.
+  IMG width is 100% of image wrapper width.
+  IMG width equals IMG height -->
+<div id="container">
+  <div id="image-wrapper">
+    <!-- 1x1 green pixel -->
+    <img id="target" src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg==">
+  </div>
+  <div id="content-wrapper">
+    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+  </div>
+</div>
+<script>
+document.body.offsetTop;
+test(() => {
+  let target = document.querySelector("#target");
+  assert_equals(target.offsetWidth, target.offsetHeight);
+  assert_equals(target.offsetWidth, document.querySelector("#image-wrapper").offsetWidth);
+  assert_equals(target.offsetHeight, document.querySelector("#content-wrapper").offsetHeight);
+}, '#target height matches containing block height, and target parent width matches #target width' );
+
+test(() => {
+  document.body.style.marginLeft = "300px";
+  let target = document.querySelector("#target");
+  assert_equals(target.offsetWidth, target.offsetHeight);
+  assert_equals(target.offsetWidth, document.querySelector("#image-wrapper").offsetWidth);
+  assert_equals(target.offsetHeight, document.querySelector("#content-wrapper").offsetHeight);
+}, '#target height matches containing block height, and target parent width matches #target width after resize');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax-expected.txt
new file mode 100644 (file)
index 0000000..923d02e
--- /dev/null
@@ -0,0 +1,44 @@
+                                        
+
+PASS minmax replaced IFRAME 1 
+PASS minmax replaced IFRAME 2 
+PASS minmax replaced IFRAME 3 
+PASS minmax replaced IFRAME 4 
+PASS minmax replaced IFRAME 5 
+PASS minmax replaced IFRAME 6 
+PASS minmax replaced IFRAME 7 
+PASS minmax replaced IFRAME 8 
+PASS minmax replaced IFRAME 9 
+PASS minmax replaced IFRAME 10 
+PASS minmax replaced IFRAME 11 
+PASS minmax replaced IMG 12 
+PASS minmax replaced IMG 13 
+PASS minmax replaced IMG 14 
+PASS minmax replaced IMG 15 
+PASS minmax replaced IMG 16 
+PASS minmax replaced IMG 17 
+PASS minmax replaced IMG 18 
+PASS minmax replaced IMG 19 
+PASS minmax replaced IMG 20 
+PASS minmax replaced IMG 21 
+PASS minmax replaced IMG 22 
+PASS minmax replaced IMG svg 23 
+PASS minmax replaced IMG svg 24 
+PASS minmax replaced IMG svg 25 
+PASS minmax replaced IMG svg 26 
+PASS minmax replaced IMG svg 27 
+PASS minmax replaced IMG svg 28 
+PASS minmax replaced IMG svg 29 
+PASS minmax replaced IMG svg 30 
+PASS minmax replaced IMG svg 31 
+PASS minmax replaced IMG svg 32 
+PASS minmax replaced IMG svg 33 
+PASS minmax replaced IMG 34 
+FAIL minmax replaced IMG 35 assert_equals: incorrect offsetWidth expected "388" but got "408"
+FAIL minmax replaced IMG 36 assert_equals: incorrect offsetWidth expected "188" but got "408"
+FAIL minmax replaced IMG 37 assert_equals: incorrect offsetWidth expected "188" but got "138"
+PASS minmax replaced IMG 38 
+PASS minmax replaced IMG 39 
+PASS minmax replaced IMG 40 
+PASS minmax replaced IMG 41 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-position/position-absolute-replaced-minmax.html
new file mode 100644 (file)
index 0000000..5a76277
--- /dev/null
@@ -0,0 +1,355 @@
+<!DOCTYPE html>
+<title>CSS Position: absolute position, replaced elements, and minmax</title>
+<link rel="author" title="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/CSS2/visudet.html#min-max-widths">
+<meta name="assert" content="Min/max width and height interact properly with abspos replaced elements">
+<style>
+.container {
+  position: relative;
+  display: inline-block;
+  width: 400px;
+  height: 200px;
+  border: 1px solid black;
+}
+.target {
+  position: absolute;
+  padding: 10px;
+  bottom: 0;
+  right: 0;
+  border-width: 3px 7px 9px 11px;
+  border-color: yellow;
+  border-style: solid;
+  margin: 1px 3px 7px 9px;
+}
+</style>
+<!-- test all combinations of minmax from section 10.4 table at
+  https://www.w3.org/TR/CSS2/visudet.html#min-max-widths -->
+
+<!-- IFRAME tests -->
+<!-- iframe: intrinsic size is 300x150, no aspect ratio -->
+<div class="container">
+  <iframe class="target"
+  data-expected-width="338" data-expected-height="182" data-offset-y="11" data-offset-x="59"
+  >
+  </iframe>
+</div>
+<!-- spec 1: w > max-width -->
+<div class="container">
+  <iframe class="target" style="max-width:100px"
+  data-expected-width="138" data-expected-height="182" data-offset-y="11" data-offset-x="259"
+  >
+  </iframe>
+</div>
+<!-- spec 2: w < min-width -->
+<div class="container">
+  <iframe class="target" style="min-width: 350px"
+  data-expected-width="388" data-expected-height="182" data-offset-y="11" data-offset-x="9"
+  >
+  </iframe>
+</div>
+<!-- spec 3: h > max-height -->
+<div class="container">
+  <iframe class="target" style="max-height: 150px"
+  data-expected-width="338" data-expected-height="182" data-offset-y="11" data-offset-x="59"
+  >
+  </iframe>
+</div>
+<!-- spec 4: h < min-height -->
+<div class="container">
+  <iframe class="target" style="min-height: 165px"
+  data-expected-width="338" data-expected-height="197" data-offset-y="-4" data-offset-x="59"
+  >
+  </iframe>
+</div>
+<!-- spec 5: (w > max-width) and (h > max-height), where (max-width/w ≤ max-height/h) -->
+<div class="container">
+  <iframe class="target" style="max-width: 240px; max-height: 135px"
+  data-expected-width="278" data-expected-height="167" data-offset-y="26" data-offset-x="119"
+  >
+  </iframe>
+</div>
+<!-- spec 6: (w > max-width) and (h > max-height), where (max-width/w > max-height/h) -->
+<div class="container">
+  <iframe class="target" style="max-width: 270px; max-height: 120px"
+  data-expected-width="308" data-expected-height="152" data-offset-y="41" data-offset-x="89"
+  >
+  </iframe>
+</div>
+<!-- spec 7: (w < min-width) and (h < min-height), where (min-width/w ≤ min-height/h) -->
+<div class="container">
+  <iframe class="target" style="min-width: 360px; min-height: 165px"
+  data-expected-width="398" data-expected-height="197" data-offset-y="-4" data-offset-x="-1"
+  >
+  </iframe>
+</div>
+<!-- spec 8: (w < min-width) and (h < min-height), where (min-width/w > min-height/h) -->
+<div class="container">
+  <iframe class="target" style="min-width: 330px; min-height: 180px"
+  data-expected-width="368" data-expected-height="212" data-offset-y="-19" data-offset-x="29"
+  >
+  </iframe>
+</div>
+<!-- spec 9: (w < min-width) and (h > max-height) -->
+<div class="container">
+  <iframe class="target" style="min-width: 330px; max-height: 135px"
+  data-expected-width="368" data-expected-height="167" data-offset-y="26" data-offset-x="29"
+  >
+  </iframe>
+</div>
+<!-- spec 10: (w > max-width) and (h < min-height) -->
+<div class="container">
+  <iframe class="target" style="max-width: 240px; min-height: 165px"
+  data-expected-width="278" data-expected-height="197" data-offset-y="-4" data-offset-x="119"
+  >
+  </iframe>
+</div>
+
+<!-- IMG png tests -->
+<!-- image dimensions: 200x150. images has intrinic size and aspect ratio -->
+<div class="container">
+  <img class="target png"
+  data-expected-width="238" data-expected-height="182" data-offset-y="11" data-offset-x="159"
+  >
+</div>
+<!-- spec 1: w > max-width -->
+<div class="container">
+  <img class="target png" style="max-width: 180px"
+  data-expected-width="218" data-expected-height="167" data-offset-y="26" data-offset-x="179"
+  >
+</div>
+<!-- spec 2: w < min-width -->
+<div class="container">
+  <img&nb