Bug 1455648 [wpt PR 10549] - Css contain, a=testonly
authorFlorian Rivoal <git@florian.rivoal.net>
Tue, 01 May 2018 14:27:21 +0000
changeset 472638 aeac849bc35d849e3194c378e5e675573fa654cc
parent 472637 7a41836c4ee2e91cd3f58a77fb39fd896ee31669
child 472639 d1bf4eadf169eb354d77c3a03c3868ce442b6ec4
push id1728
push userjlund@mozilla.com
push dateMon, 18 Jun 2018 21:12:27 +0000
treeherdermozilla-release@c296fde26f5f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1455648, 10549
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1455648 [wpt PR 10549] - Css contain, a=testonly Automatic update from web-platform-testsMerge pull request #10549 from frivoal/css-contain Css contain -- wpt-commits: 17274893c118dafebec900376933248efb2a3735 wpt-pr: 10549
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/css/css-contain/contain-layout-001.html
testing/web-platform/tests/css/css-contain/contain-layout-002.html
testing/web-platform/tests/css/css-contain/contain-layout-003.html
testing/web-platform/tests/css/css-contain/contain-layout-004.html
testing/web-platform/tests/css/css-contain/contain-layout-005.html
testing/web-platform/tests/css/css-contain/contain-layout-breaks-001.html
testing/web-platform/tests/css/css-contain/contain-layout-breaks-002.html
testing/web-platform/tests/css/css-contain/contain-paint-001.html
testing/web-platform/tests/css/css-contain/contain-paint-002.html
testing/web-platform/tests/css/css-contain/contain-paint-003.html
testing/web-platform/tests/css/css-contain/contain-paint-004.html
testing/web-platform/tests/css/css-contain/contain-paint-005.html
testing/web-platform/tests/css/css-contain/contain-paint-006.html
testing/web-platform/tests/css/css-contain/contain-paint-007.html
testing/web-platform/tests/css/css-contain/contain-paint-008.html
testing/web-platform/tests/css/css-contain/contain-size-001.html
testing/web-platform/tests/css/css-contain/contain-size-002.html
testing/web-platform/tests/css/css-contain/contain-size-003.html
testing/web-platform/tests/css/css-contain/contain-size-004.html
testing/web-platform/tests/css/css-contain/contain-size-005.html
testing/web-platform/tests/css/css-contain/contain-size-breaks-001.html
testing/web-platform/tests/css/css-contain/contain-style-breaks-001.html
testing/web-platform/tests/css/css-contain/contain-style-breaks-002.html
testing/web-platform/tests/css/css-contain/contain-style-breaks-003.html
testing/web-platform/tests/css/css-contain/contain-style-breaks-004.html
testing/web-platform/tests/css/css-contain/contain-style-breaks-005.html
testing/web-platform/tests/css/css-contain/counter-scoping-001.html
testing/web-platform/tests/css/css-contain/counter-scoping-002.html
testing/web-platform/tests/css/css-contain/counter-scoping-003.html
testing/web-platform/tests/css/css-contain/quote-scoping-001.html
testing/web-platform/tests/css/css-contain/quote-scoping-002.html
testing/web-platform/tests/css/css-contain/quote-scoping-003.html
testing/web-platform/tests/css/css-contain/quote-scoping-004.html
testing/web-platform/tests/css/css-contain/reference/contain-layout-002-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-layout-004-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-layout-005-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-layout-breaks-002-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-paint-001-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-paint-004-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-paint-007-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-paint-008-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-size-001-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-size-004-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-size-005-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-size-breaks-001-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-style-breaks-001-ref.html
testing/web-platform/tests/css/css-contain/reference/contain-style-breaks-004-ref.html
testing/web-platform/tests/css/css-contain/reference/counter-scoping-001-ref.html
testing/web-platform/tests/css/css-contain/reference/counter-scoping-003-ref.html
testing/web-platform/tests/css/css-contain/reference/quote-scoping-001-ref.html
testing/web-platform/tests/css/css-contain/reference/quote-scoping-002-ref.html
testing/web-platform/tests/css/css-contain/reference/quote-scoping-003-ref.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -106346,28 +106346,424 @@
       [
        "/css/css-conditional/at-supports-001-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
+   "css/css-contain/contain-layout-001.html": [
+    [
+     "/css/css-contain/contain-layout-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-002.html": [
+    [
+     "/css/css-contain/contain-layout-002.html",
+     [
+      [
+       "/css/css-contain/reference/contain-layout-002-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-003.html": [
+    [
+     "/css/css-contain/contain-layout-003.html",
+     [
+      [
+       "/css/css-contain/reference/contain-layout-002-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-004.html": [
+    [
+     "/css/css-contain/contain-layout-004.html",
+     [
+      [
+       "/css/css-contain/reference/contain-layout-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-005.html": [
+    [
+     "/css/css-contain/contain-layout-005.html",
+     [
+      [
+       "/css/css-contain/reference/contain-layout-005-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-breaks-001.html": [
+    [
+     "/css/css-contain/contain-layout-breaks-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-layout-breaks-002.html": [
+    [
+     "/css/css-contain/contain-layout-breaks-002.html",
+     [
+      [
+       "/css/css-contain/reference/contain-layout-breaks-002-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-001.html": [
+    [
+     "/css/css-contain/contain-paint-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-paint-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-002.html": [
+    [
+     "/css/css-contain/contain-paint-002.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-003.html": [
+    [
+     "/css/css-contain/contain-paint-003.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-004.html": [
+    [
+     "/css/css-contain/contain-paint-004.html",
+     [
+      [
+       "/css/css-contain/reference/contain-paint-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-005.html": [
+    [
+     "/css/css-contain/contain-paint-005.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-006.html": [
+    [
+     "/css/css-contain/contain-paint-006.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-007.html": [
+    [
+     "/css/css-contain/contain-paint-007.html",
+     [
+      [
+       "/css/css-contain/reference/contain-paint-007-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-paint-008.html": [
+    [
+     "/css/css-contain/contain-paint-008.html",
+     [
+      [
+       "/css/css-contain/reference/contain-paint-008-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-001.html": [
+    [
+     "/css/css-contain/contain-size-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-002.html": [
+    [
+     "/css/css-contain/contain-size-002.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-003.html": [
+    [
+     "/css/css-contain/contain-size-003.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-004.html": [
+    [
+     "/css/css-contain/contain-size-004.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-005.html": [
+    [
+     "/css/css-contain/contain-size-005.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-005-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-size-breaks-001.html": [
+    [
+     "/css/css-contain/contain-size-breaks-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-breaks-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-style-breaks-001.html": [
+    [
+     "/css/css-contain/contain-style-breaks-001.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-style-breaks-002.html": [
+    [
+     "/css/css-contain/contain-style-breaks-002.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-style-breaks-003.html": [
+    [
+     "/css/css-contain/contain-style-breaks-003.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-style-breaks-004.html": [
+    [
+     "/css/css-contain/contain-style-breaks-004.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/contain-style-breaks-005.html": [
+    [
+     "/css/css-contain/contain-style-breaks-005.html",
+     [
+      [
+       "/css/css-contain/reference/contain-style-breaks-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/css-contain/contain-style-counters.html": [
     [
      "/css/css-contain/contain-style-counters.html",
      [
       [
        "/css/css-contain/contain-style-counters-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
+   "css/css-contain/counter-scoping-001.html": [
+    [
+     "/css/css-contain/counter-scoping-001.html",
+     [
+      [
+       "/css/css-contain/reference/counter-scoping-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/counter-scoping-002.html": [
+    [
+     "/css/css-contain/counter-scoping-002.html",
+     [
+      [
+       "/css/css-contain/reference/counter-scoping-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/counter-scoping-003.html": [
+    [
+     "/css/css-contain/counter-scoping-003.html",
+     [
+      [
+       "/css/css-contain/reference/counter-scoping-003-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/quote-scoping-001.html": [
+    [
+     "/css/css-contain/quote-scoping-001.html",
+     [
+      [
+       "/css/css-contain/reference/quote-scoping-001-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/quote-scoping-002.html": [
+    [
+     "/css/css-contain/quote-scoping-002.html",
+     [
+      [
+       "/css/css-contain/reference/quote-scoping-002-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/quote-scoping-003.html": [
+    [
+     "/css/css-contain/quote-scoping-003.html",
+     [
+      [
+       "/css/css-contain/reference/quote-scoping-003-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-contain/quote-scoping-004.html": [
+    [
+     "/css/css-contain/quote-scoping-004.html",
+     [
+      [
+       "/css/css-contain/reference/quote-scoping-003-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/css-content/attr-case-insensitive.html": [
     [
      "/css/css-content/attr-case-insensitive.html",
      [
       [
        "/css/css-content/attr-case-insensitive-ref.html",
        "=="
       ]
@@ -238874,16 +239270,111 @@
      {}
     ]
    ],
    "css/css-contain/contain-style-counters-ref.html": [
     [
      {}
     ]
    ],
+   "css/css-contain/reference/contain-layout-002-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-layout-004-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-layout-005-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-layout-breaks-002-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-paint-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-paint-004-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-paint-007-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-paint-008-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-size-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-size-004-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-size-005-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-size-breaks-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-style-breaks-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/contain-style-breaks-004-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/counter-scoping-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/counter-scoping-003-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/quote-scoping-001-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/quote-scoping-002-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-contain/reference/quote-scoping-003-ref.html": [
+    [
+     {}
+    ]
+   ],
    "css/css-content/attr-case-insensitive-ref.html": [
     [
      {}
     ]
    ],
    "css/css-content/element-replacement-ref.html": [
     [
      {}
@@ -491684,24 +492175,232 @@
   "css/css-conditional/test_group_insertRule.html": [
    "c805d45e2361bd67ebf1ca0605807d7384b09a7d",
    "testharness"
   ],
   "css/css-contain/OWNERS": [
    "119f04385b8f8cc78366523870ed199d3e4f427e",
    "support"
   ],
+  "css/css-contain/contain-layout-001.html": [
+   "e40223fa77c569be5465ce55532eca46d9893cad",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-002.html": [
+   "30d5b2c379a9af602b9c882067ebe922c25038bb",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-003.html": [
+   "5e19e8c0f7a9a9f73238ef6e6b28462883740c6e",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-004.html": [
+   "391769dc944021336fdf3f3409be7e2be494a685",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-005.html": [
+   "c64e0379993570d68ebb96c7b6df3f5f0f60674a",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-breaks-001.html": [
+   "2904f490dbe202ed821d6d74652ec177ad8eacab",
+   "reftest"
+  ],
+  "css/css-contain/contain-layout-breaks-002.html": [
+   "947877963e2d57b249950ff75e218b23b19a0ef5",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-001.html": [
+   "27fb558b0913d1787e881fa1db42f8e925ef859b",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-002.html": [
+   "6c549e4be755d47fa4f0ffcffc62ffdab4edf15a",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-003.html": [
+   "f49511f28e8b0f51df677acae3cd9c07b1717657",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-004.html": [
+   "e39e7be877e3802262f1451067363d9c26b8dd4b",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-005.html": [
+   "2c3063121d36648ffe636950f7a36f0d565331aa",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-006.html": [
+   "72b002b39ae9b252678157f1f95ecbcd33261230",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-007.html": [
+   "c78854ac437a9cf3433da3c99c9934384a22851d",
+   "reftest"
+  ],
+  "css/css-contain/contain-paint-008.html": [
+   "0bd9de602bc622a1a1a74ac7d4434d66e6efadbe",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-001.html": [
+   "04979088ce29652117bc74c6cc34c054b258d153",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-002.html": [
+   "908f73fa8d56f2eb4bf39862a666875ea21b18db",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-003.html": [
+   "8668ef203078d96a051cdf437fa8d089492c4121",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-004.html": [
+   "767d429b99eaf77227153d74a131864d0078d88a",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-005.html": [
+   "fe04ae74a7bfb5fd3629651c3d9a6dcdc1084537",
+   "reftest"
+  ],
+  "css/css-contain/contain-size-breaks-001.html": [
+   "b936d15fad907793fb5a0249d643097cee2e79ff",
+   "reftest"
+  ],
+  "css/css-contain/contain-style-breaks-001.html": [
+   "9325ee8666d1825644849dee8068d9f1e415917b",
+   "reftest"
+  ],
+  "css/css-contain/contain-style-breaks-002.html": [
+   "60ba2d5b65d740365d248055cecaf0dbd5a38044",
+   "reftest"
+  ],
+  "css/css-contain/contain-style-breaks-003.html": [
+   "9bc7320984a55b349dae3d3f891eb8524c82da26",
+   "reftest"
+  ],
+  "css/css-contain/contain-style-breaks-004.html": [
+   "eb389ef6335039fddf1db70307d4c0886a6a1d06",
+   "reftest"
+  ],
+  "css/css-contain/contain-style-breaks-005.html": [
+   "f88bf147234294dffdbd831de90c20dbe81d0342",
+   "reftest"
+  ],
   "css/css-contain/contain-style-counters-ref.html": [
    "295abc8d8c2490f3ff16566e49e9c77bf125461f",
    "support"
   ],
   "css/css-contain/contain-style-counters.html": [
    "056b3597f3555c803c74a8f6277a06626efd12ea",
    "reftest"
   ],
+  "css/css-contain/counter-scoping-001.html": [
+   "aba8dd6e85fc14d928de33903eed919f527ccfaf",
+   "reftest"
+  ],
+  "css/css-contain/counter-scoping-002.html": [
+   "cdab600690babdcebe693991bf716f4772eeda4a",
+   "reftest"
+  ],
+  "css/css-contain/counter-scoping-003.html": [
+   "220a8cb80dc067593b3eb72e9bee6d03589483e7",
+   "reftest"
+  ],
+  "css/css-contain/quote-scoping-001.html": [
+   "33a5755b8e14976806afe451621875c5e150b0de",
+   "reftest"
+  ],
+  "css/css-contain/quote-scoping-002.html": [
+   "0130a683755b8829033d053b7f7bb7d48c04639a",
+   "reftest"
+  ],
+  "css/css-contain/quote-scoping-003.html": [
+   "26e5a5d36ac865c4253da894375a3194f97c7f01",
+   "reftest"
+  ],
+  "css/css-contain/quote-scoping-004.html": [
+   "fb3af3126d0700e58219fe0550bab57661c7b7ad",
+   "reftest"
+  ],
+  "css/css-contain/reference/contain-layout-002-ref.html": [
+   "cb077e2b280d7200c33e945fb175ffdbb536651a",
+   "support"
+  ],
+  "css/css-contain/reference/contain-layout-004-ref.html": [
+   "6a591187b27feb07fa982059850e06ae65f80e32",
+   "support"
+  ],
+  "css/css-contain/reference/contain-layout-005-ref.html": [
+   "6320656dc24c5377756d0895edcc2134a4ba1da1",
+   "support"
+  ],
+  "css/css-contain/reference/contain-layout-breaks-002-ref.html": [
+   "f5804830fd9d22117b027135bf5b9191f0f3f15e",
+   "support"
+  ],
+  "css/css-contain/reference/contain-paint-001-ref.html": [
+   "be57e942110661fd32f0342bbe2870e4e3280d86",
+   "support"
+  ],
+  "css/css-contain/reference/contain-paint-004-ref.html": [
+   "eecbc6d0ea1638e8c853458ed59cfbd67d096ef0",
+   "support"
+  ],
+  "css/css-contain/reference/contain-paint-007-ref.html": [
+   "090aba85ddcf927a33de227157ac8e411fd5c268",
+   "support"
+  ],
+  "css/css-contain/reference/contain-paint-008-ref.html": [
+   "9148bb5f9f1f4bfa70a056e0d744ffddad909c7d",
+   "support"
+  ],
+  "css/css-contain/reference/contain-size-001-ref.html": [
+   "6f68316c3e9647eb6f71d299bb1d43e286899a7d",
+   "support"
+  ],
+  "css/css-contain/reference/contain-size-004-ref.html": [
+   "090aba85ddcf927a33de227157ac8e411fd5c268",
+   "support"
+  ],
+  "css/css-contain/reference/contain-size-005-ref.html": [
+   "9e7e20e4a3e117a5df896522f013ee48e76beabc",
+   "support"
+  ],
+  "css/css-contain/reference/contain-size-breaks-001-ref.html": [
+   "487fbbb9b8de0e27470ac15f0f0380750d91df88",
+   "support"
+  ],
+  "css/css-contain/reference/contain-style-breaks-001-ref.html": [
+   "e83eda6bb259dbe56969a12b0cf53f3ec9ce640d",
+   "support"
+  ],
+  "css/css-contain/reference/contain-style-breaks-004-ref.html": [
+   "54b59892617a57c9bf280f8ae9f0a4fa0dbb2e87",
+   "support"
+  ],
+  "css/css-contain/reference/counter-scoping-001-ref.html": [
+   "997c185d5dc259acc32b21fd3fec87f853690f3a",
+   "support"
+  ],
+  "css/css-contain/reference/counter-scoping-003-ref.html": [
+   "c70a518f29860142ffdc6ddc8d5d605658886189",
+   "support"
+  ],
+  "css/css-contain/reference/quote-scoping-001-ref.html": [
+   "7e07a6919212e35288220342886e703c2e1094b4",
+   "support"
+  ],
+  "css/css-contain/reference/quote-scoping-002-ref.html": [
+   "e0b0fd4dae5325229725bae754998960aa0f6eb4",
+   "support"
+  ],
+  "css/css-contain/reference/quote-scoping-003-ref.html": [
+   "6b72ea53450c5a08ef3ddd897608aa9cf7e68e00",
+   "support"
+  ],
   "css/css-content/attr-case-insensitive-ref.html": [
    "30577fc39afb6ac028e25be11f363e060c0850b2",
    "support"
   ],
   "css/css-content/attr-case-insensitive.html": [
    "6b6cf2c15295940fb8831d17209635dc4e31cd78",
    "reftest"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-001.html
@@ -0,0 +1,19 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on non-atomic inlines</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to non atomic inlines">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+span {
+  contain: layout;
+  height: 100vh; /*If layout containment applies, the span becomes a BFC, height applies, and knocks SS off the page */
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><span>PA</span>SS</div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-002.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment on ruby-base</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+  <meta name=assert content="layout containment does not apply to ruby-base">
+  <link rel="match" href="reference/contain-layout-002-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rb {
+  contain: layout;
+  display: ruby-base;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rb::before {
+  content: "X";
+  color: green;
+}
+rb::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rb></rb></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-003.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment on ruby-base-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+  <meta name=assert content="layout containment does not apply to ruby-base-container">
+  <link rel="match" href="reference/contain-layout-002-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rbc {
+  contain: layout;
+  display: ruby-base-container;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rbc::before {
+  content: "X";
+  color: green;
+}
+rbc::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rbc></rbc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-004.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment on ruby-text-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+  <meta name=assert content="layout containment does not apply to ruby-text-container">
+  <link rel="match" href="reference/contain-layout-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rtc {
+  contain: layout;
+  display: ruby-text-container;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rtc::before {
+  content: "X";
+  color: green;
+}
+rtc::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rtc></rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-005.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment on ruby-text</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+  <meta name=assert content="layout containment does not apply to ruby-text">
+  <link rel="match" href="reference/contain-layout-005-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rt {
+  contain: layout;
+  display: ruby-text;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rt::before {
+  content: "X";
+  color: green;
+}
+rt::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rt></rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-breaks-001.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment and forced breaks</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="layout containment allows forced breaks.">
+  <link rel="match" href="reference/contain-style-breaks-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-layout">
+  <link rel=help href="https://drafts.csswg.org/css-break-3/#forced-break">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+  line-height: 1;
+  height: 4em;
+  column-fill: auto;
+}
+div > div:last-of-type {
+  break-before: column;
+}
+#test > div {
+  contain: layout;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<article id=test>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support forced break at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-layout-breaks-002.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: layout containment and forced breaks</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="forced breaks within layout containment do not propagate to the parent.">
+  <link rel="match" href="reference/contain-layout-breaks-002-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-layout">
+  <link rel=help href="https://drafts.csswg.org/css-break-3/#forced-break">
+
+<style>
+article {
+  columns: 2 20px;
+  float: left;
+  height: 50px;
+  column-fill: auto;
+}
+div > div {
+  border-top: 20px solid orange;
+  break-before: column;
+}
+article > div {
+  border-top: 20px solid orange;
+  contain: layout;
+}
+</style>
+
+<p>Test passes if there are two orange boxes below.
+<article>
+  <div>
+    <div></div>
+  </div>
+</article>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-001.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment use the padding edge</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment clips at the padding edge, not content edge, and takes corner clipping into account">
+  <link rel="match" href="reference/contain-paint-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+div {
+  width: 100px;
+  height: 100px;
+  background: blue;
+  padding: 50px;
+  border-radius: 100px;
+  border: white 50px solid;
+  contain: paint;
+}
+div::before {
+ content:"";
+ display: block;
+ background: green;
+ width: 100px;
+ height: 100px;
+}
+div::after {
+  content:"";
+  display: block;
+  background: red;
+  width: 50px;
+  height: 50px;
+  float: left;
+  margin-top: 36px;
+  margin-left: -86px;
+}
+</style>
+
+<p>Test passes if there is a green square in a rounded blue box, and no red.
+<div></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-002.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on non-atomic inlines</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to non atomic inlines">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+span {
+  contain: paint;
+  width: 0; /* Because if the test fails, the span may get blockified, and which would make wide enough to hold the PASS */
+}
+span::after {
+  content: "PASS";
+  position: absolute;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><span></span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-003.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment applies to the principal box for tables</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment applies to the principal box, which is the table wrapper box for tables">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+table { contain: paint; }
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<table>
+  <caption>PASS</caption>
+</table>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-004.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment applies to the principal box for list items</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment applies to the principal box, which for list items excludes the list marker">
+  <link rel="match" href="reference/contain-paint-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+li { contain: paint; }
+</style>
+
+<p>This test passes if you can see no number below.
+<ol>
+  <li>
+  <li>
+  <li>
+  <li>
+  <li>
+  <li>
+</ol>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-005.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on ruby-base</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to ruby-base">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rb {
+  contain: paint;
+  display: ruby-base;
+  width: 0; /* Because if the test fails, this may get blockified, and which could make wide enough to hold the PASS */
+}
+rb::after {
+  content: "PASS";
+  position: absolute;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rb></rb></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-006.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on ruby-base-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to ruby-base-container">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rbc {
+  contain: paint;
+  display: ruby-base-container;
+  width: 0; /* Because if the test fails, this may get blockified, and which could make wide enough to hold the PASS */
+}
+rbc::after {
+  content: "PASS";
+  position: absolute;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rbc></rbc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-007.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on ruby-text-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to ruby-text-container">
+  <link rel="match" href="reference/contain-paint-007-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rtc {
+  contain: paint;
+  display: ruby-text-container;
+  width: 0; /* Because if the test fails, this may get blockified, and which could make wide enough to hold the PASS */
+  font-size: 1rem;
+}
+rtc::after {
+  content: "PASS";
+  position: absolute;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rtc></rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-paint-008.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on ruby-text</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="paint containment does not apply to ruby-text">
+  <link rel="match" href="reference/contain-paint-008-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-paint">
+
+<style>
+rt {
+  contain: paint;
+  display: ruby-text;
+  font-size: 1rem;
+}
+rt::after {
+  content: "PASS";
+
+  /* Doing the following instead of position:absolute to move it out into the area that would be clipped
+     because Firefox clips absolutely positioned content of rt even though it does not support
+     containment.
+     Since this technique works also, not need to trigger a false negative.
+   */
+  position: relative;
+  left: 4ch;
+  font-family: monospace;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rt></rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-001.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment on non-atomic inlines</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="size containment does not apply to non atomic inlines">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-size">
+
+<style>
+div { overflow: hidden; }
+span { contain: size; }
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><span>PASS</span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-002.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment on ruby-base</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="size containment does not to apply ruby-base, which is an internatl ruby element">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-size">
+  <link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
+
+<style>
+div {
+  overflow: hidden;
+  position: absolute;
+}
+rb {
+  contain: size;
+  display: ruby-base;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rb>PASS</rb></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-003.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment on ruby-base-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="size containment does not to apply ruby-base-container, which is an internatl ruby element">
+  <link rel="match" href="reference/contain-size-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-size">
+  <link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
+
+<style>
+div {
+  overflow: hidden;
+  position: absolute;
+}
+rbc {
+  contain: size;
+  display: ruby-base-container;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rbc>PASS</rbc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-004.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment on ruby-text-container</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="size containment does not to apply ruby-text-container, which is an internatl ruby element">
+  <link rel="match" href="reference/contain-size-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-size">
+  <link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
+
+<style>
+div {
+  overflow: hidden;
+  position: absolute;
+}
+rtc {
+  contain: size;
+  display: ruby-text-container;
+  font-size: 1rem;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rtc>PASS</rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-005.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment on ruby-text</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="size containment does not to apply ruby-text, which is an internatl ruby element">
+  <link rel="match" href="reference/contain-size-005-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-size">
+  <link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
+
+<style>
+div {
+  overflow: hidden;
+  position: absolute;
+}
+rt {
+  contain: size;
+  display: ruby-text;
+  font-size: 1rem;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rt>PASS</rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-size-breaks-001.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: size containment and fragmentation</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+  <meta name=assert content="size containment makes element monolithic">
+  <link rel="match" href="reference/contain-size-breaks-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+  <link rel=help href="https://drafts.csswg.org/css-break-3/#monolithic">
+
+<style>
+article {
+  height: 2.5em;
+  column-gap: 0;
+  columns: 3 1em;
+  width: 3em;
+  column-fill: auto;
+
+  font-size: 40px;
+  font-family: ahem;
+  line-height: 1;
+}
+div {
+  contain: size;
+  height: 5em;
+  color: orange;
+}
+</style>
+
+<p>This test passes if there is an orange rectangle below. If the shape is not a rectangle, the test fails.
+
+<article>
+<div>A A A A A</div>
+</article>
+
+<!--
+If the element is monolythic, it may:
+* overflow and be a 1x5 em rectangle
+* be sliced and be 2 contigious 1x2.5 em rectangles, appearing as a single
+  2x2.5 em rectangle.
+Either way, it will always appear as a single rectangle.
+
+If the element is not monolithic, it will fit 2 As in the first column, 2 in
+the second column, and the fith will be overflowing the div, either into the
+thrid column, or into the bottom of the second one.
+Either way, this will not look like a rectangle.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-style-breaks-001.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and break-inside:avoid</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment is (no longer) supposed to have any effect on the break-inside property">
+  <link rel="match" href="reference/contain-style-breaks-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+}
+div {
+  page-break-inside: avoid;
+  break-inside: avoid;
+}
+#test > div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+  A<br>
+  A<br>
+  A<br>
+  A
+  <div>
+</article>
+<article id=test>
+  <div>
+  A<br>
+  A<br>
+  A<br>
+  A
+  <div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support the property at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-style-breaks-002.html
@@ -0,0 +1,52 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and break-inside:avoid</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment is not (any longer) supposed to have any effect on the break-inside property. Same as -001, applying containment on the parent.">
+  <link rel="match" href="reference/contain-style-breaks-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+}
+div > div {
+  page-break-inside: avoid;
+  break-inside: avoid;
+}
+#test > div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+    <div>
+    A<br>
+    A<br>
+    A<br>
+    A
+    <div>
+  </div>
+</article>
+<article id=test>
+  <div>
+    <div>
+    A<br>
+    A<br>
+    A<br>
+    A
+    <div>
+  </div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support the property at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-style-breaks-003.html
@@ -0,0 +1,52 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and break-inside:avoid</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment is not (any longer) supposed to have any effect on the break-inside property. Same as -001, applying break-inside on the parent.">
+  <link rel="match" href="reference/contain-style-breaks-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+}
+article > div {
+  page-break-inside: avoid;
+  break-inside: avoid;
+}
+#test div > div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+    <div>
+    A<br>
+    A<br>
+    A<br>
+    A
+    <div>
+  </div>
+</article>
+<article id=test>
+  <div>
+    <div>
+    A<br>
+    A<br>
+    A<br>
+    A
+    <div>
+  </div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support the property at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-style-breaks-004.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and break-before</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment is not (any longer) supposed to have any effect on the break-before property.">
+  <link rel="match" href="reference/contain-style-breaks-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+  line-height: 1;
+  height: 4em;
+  column-fill: auto;
+}
+div > div:last-of-type {
+  break-before: column;
+}
+#test > div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<article id=test>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support the property at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/contain-style-breaks-005.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and break-after</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment is not (any longer) supposed to have any effect on the break-after property.">
+  <link rel="match" href="reference/contain-style-breaks-004-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+  line-height: 1;
+  height: 4em;
+  column-fill: auto;
+}
+div > div:first-of-type {
+  break-after: column;
+}
+#test > div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article id=ref>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<article id=test>
+  <div>
+    <div>A<br>A</div>
+    <div>A<br>A</div>
+  </div>
+</article>
+<!--
+Having two blocks to avoid making browsers that don't support the property at all fail.
+Since containment is supposed to have no effect, failing such browsers would not be useful.
+-->
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/counter-scoping-001.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and counter-increment</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="counter-increment is scoped to the subtree and creates a new counter at the root of the subtree">
+  <link rel="match" href="reference/counter-scoping-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+div {
+  contain: style;
+   counter-increment: n;
+}
+div::before, div::after {
+  content: counters(n, '.') " ";
+}
+div::after {
+  counter-increment: n 2;
+}
+</style>
+
+<p>Test passes if the text below is "1 1.2" (not including the quotation marks).<p>
+<div></div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/counter-scoping-002.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and counter-set</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="counter-set is scoped to the subtree and creates a new counter at the root of the subtree">
+  <link rel="match" href="reference/counter-scoping-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+  <link rel=help href="https://drafts.csswg.org/css-lists-3/#propdef-counter-set">
+
+<style>
+div {
+  contain: style;
+  counter-set: n;
+}
+div::before, div::after {
+  content: counters(n, '.') " ";
+}
+div::after {
+  counter-set: n 2;
+}
+</style>
+
+<p>Test passes if the text below is "1 1.2" (not including the quotation marks).<p>
+<div></div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/counter-scoping-003.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and subtree root</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="When considering the effects of the scoped property on elements inside the subtree, the element at the base of the subtree is treated as if it was the root of the document">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+  <link rel="match" href="reference/counter-scoping-003-ref.html">
+
+<style>
+div {
+  contain: style;
+  counter-increment: c 123;
+}
+span::before {
+  content: counter(c);
+  counter-increment: c 1;
+}
+</style>
+
+<p>Test passes if the text below is "1 2" (not including the quotation marks).<p>
+<div>
+  <span></span>
+  <span></span>
+</div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/quote-scoping-001.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and open-quote</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment cause the open-quote value of the content property are scoped to the element's subtree">
+  <link rel="match" href="reference/quote-scoping-001-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+
+div {
+  quotes: "A" "Z" "1" "9";
+}
+div::before, span::before {
+  content: open-quote;
+}
+div::after {
+  content: close-quote;
+}
+div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if the text below is "A1Z" (not including the quotation marks).<p>
+<div><span></span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/quote-scoping-002.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and close-quote</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment cause the close-quote value of the content property are scoped to the element's subtree">
+  <link rel="match" href="reference/quote-scoping-002-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+
+div {
+  quotes: "A" "Z" "1" "9";
+}
+div::before {
+  content: open-quote;
+}
+div::after, span::after {
+  content: close-quote;
+}
+div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if the text below is "A9Z" (not including the quotation marks).<p>
+<div><span></span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/quote-scoping-003.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and no-open-quote</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment cause the no-open-quote value of the content property are scoped to the element's subtree">
+  <link rel="match" href="reference/quote-scoping-003-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+
+div {
+  quotes: "A" "Z" "1" "9";
+}
+div::before{
+  content: open-quote;
+}
+
+span::before {
+  content: no-open-quote;
+}
+div::after {
+  content: close-quote;
+}
+div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if the text below is "AZ" (not including the quotation marks).<p>
+<div><span></span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/quote-scoping-004.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: style containment and no-close-quote</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+  <meta name=assert content="style containment cause the no-close-quote value of the content property are scoped to the element's subtree">
+  <link rel="match" href="reference/quote-scoping-003-ref.html">
+  <link rel=help href="https://drafts.csswg.org/css-contain/#containment-style">
+
+<style>
+
+div {
+  quotes: "A" "Z" "1" "9";
+}
+div::before{
+  content: open-quote;
+}
+
+span::after {
+  content: no-close-quote;
+}
+div::after {
+  content: close-quote;
+}
+div {
+  contain: style;
+}
+</style>
+
+<p>Test passes if the text below is "AZ" (not including the quotation marks).<p>
+<div><span></span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-layout-002-ref.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test referene</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+
+<style>
+rb {
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rb::before {
+  content: "X";
+  color: green;
+}
+rb::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rb></rb></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-layout-004-ref.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+
+<style>
+rtc {
+  display: ruby-text-container;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rtc::before {
+  content: "X";
+  color: green;
+}
+rtc::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rtc></rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-layout-005-ref.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+
+<style>
+rt {
+  display: ruby-text;
+  font-family: ahem;
+  font-size: 20px;
+  line-height: 1;
+}
+rt::before {
+  content: "X";
+  color: green;
+}
+rt::after {
+  content: "X";
+  color: white;
+  position: absolute;
+  top:0; left: 0;
+}
+</style>
+
+<p>This test passes if you can see a green box below.
+<div><ruby><rt></rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-layout-breaks-002-ref.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="">
+
+<style>
+article {
+  columns: 2 20px;
+  float: left;
+  height: 50px;
+  column-fill: auto;
+}
+article > div {
+  break-before: column;
+  border-top: 20px solid orange;
+}
+</style>
+
+<p>Test passes if there are two orange boxes below.
+<article>
+    <div></div>
+    <div></div>
+</article>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-paint-001-ref.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment use the padding edge</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<style>
+div {
+  width: 100px;
+  height: 100px;
+  background: blue;
+  padding: 50px;
+  border-radius: 100px;
+  border: white 50px solid;
+  overflow: hidden
+}
+div::before {
+  content:"";
+  display: block;
+  background: green;
+  width: 100px;
+  height: 100px;
+}
+div::after {
+  content:"";
+  display: block;
+  background: red;
+  width: 50px;
+  height: 50px;
+  float: left;
+  margin-top: 36px;
+  margin-left: -86px;
+}
+</style>
+
+<p>Test passes if there is a green square in a rounded blue box, and no red.
+<div></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-paint-004-ref.html
@@ -0,0 +1,7 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>This test passes if you can see no number below.
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-paint-007-ref.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<style>
+rtc {
+  display: ruby-text-container;
+  font-size: 1rem;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rtc>PASS</rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-paint-008-ref.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test: paint containment on ruby-text</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<style>
+rt {
+  display: ruby-text;
+  font-size: 1rem;
+  position: relative;
+  left: 4ch;
+  font-family: monospace;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rt>PASS</rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-size-001-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>This test passes if you can see the word PASS below.
+<div>PASS</div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-size-004-ref.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<style>
+rtc {
+  display: ruby-text-container;
+  font-size: 1rem;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rtc>PASS</rtc></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-size-005-ref.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<style>
+div { overflow: hidden; }
+rt {
+  display: ruby-text;
+  font-size: 1rem;
+}
+</style>
+
+<p>This test passes if you can see the word PASS below.
+<div><ruby><rt>PASS</rt></ruby></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-size-breaks-001-ref.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+  <meta name=flags content="ahem">
+
+<style>
+article {
+  height: 2.5em;
+  column-gap: 0;
+  columns: 3 1em;
+  width: 3em;
+  column-fill: auto;
+
+  font-size: 40px;
+  font-family: ahem;
+  line-height: 1;
+}
+div {
+  background: orange;
+  padding-top: 5em;
+}
+</style>
+
+<p>This test passes if there is an orange rectangle below. If the shape is not a rectangle, the test fails.
+
+<article>
+<div></div>
+</article>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-style-breaks-001-ref.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+}
+div {
+  page-break-inside: avoid;
+  break-inside: avoid;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article>
+  <div>
+  A<br>
+  A<br>
+  A<br>
+  A
+  <div>
+</article>
+<article>
+  <div>
+  A<br>
+  A<br>
+  A<br>
+  A
+  <div>
+</article>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/contain-style-breaks-004-ref.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<style>
+article {
+  columns: 2 1ch;
+  column-gap: 0;
+  float: left;
+  font-family: monospace;
+  margin-right: 3em;
+  line-height: 1;
+  height: 4em;
+  column-fill: auto;
+}
+div:last-of-type {
+  break-before: column;
+}
+</style>
+
+<p>Test passes if there are two identical blocks “A” letters below.
+<article>
+  <div>A<br>A</div>
+  <div>A<br>A</div>
+</article>
+<article>
+  <div>A<br>A</div>
+  <div>A<br>A</div>
+</article>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/counter-scoping-001-ref.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>Test passes if the text below is "1 1.2" (not including the quotation marks).<p>
+<div>1 1.2</div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/counter-scoping-003-ref.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>Test passes if the text below is "1 2" (not including the quotation marks).<p>
+<div>1 2</div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/quote-scoping-001-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<p>Test passes if the text below is "A1Z" (not including the quotation marks).<p>
+<div>A1Z</div>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/quote-scoping-002-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>Test passes if the text below is "A9Z" (not including the quotation marks).<p>
+<div>A9Z</span></div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-contain/reference/quote-scoping-003-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<html lang=en>
+  <meta charset=utf-8>
+  <title>CSS-contain test reference</title>
+  <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+
+<p>Test passes if the text below is "AZ" (not including the quotation marks).<p>
+<div>AZ</div>