Bug 1719591 [wpt PR 29604] - [LayoutNG] OOF fragmentainer descendant writing-mode conversions, a=testonly
☠☠ backed out by dec0a179f851 ☠ ☠
authorAlison Maher <almaher@microsoft.com>
Sat, 17 Jul 2021 09:49:31 +0000
changeset 585820 03792f0f502882caf88e687e1cfcca068c103e63
parent 585819 eacd82ff57d5cd86e0f5ae33f58de06dc04a6019
child 585821 07c998f93a3c50ad3f2a1d014937da784167138f
push id38620
push usercsabou@mozilla.com
push dateSun, 18 Jul 2021 09:08:29 +0000
treeherdermozilla-central@cc4e5ea0c986 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1719591, 29604, 1227115, 3011454, 900671
milestone92.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 1719591 [wpt PR 29604] - [LayoutNG] OOF fragmentainer descendant writing-mode conversions, a=testonly Automatic update from web-platform-tests [LayoutNG] OOF fragmentainer descendant writing-mode conversions If there was no containing block fragment set on an OOF fragmentainer descendant, we were using an empty size for conversions in NGPhysicalBoxFragment. This is incorrect - when no containing block is set, that means the current fragment is the containing block. Use the size of the current fragment instead. Additionally, an incorrect converter was used in converting the static position of OOF fragmentainer descendants in NGPhysicalBoxFragment. This CL ensures that the static position remains relative to the containing block, similar to how the conversions are handled in NGContainerFragmentBuilder. Bug: 1227115 Change-Id: Idb455573b1bf6b23c80679d8494b56ae267cf34a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011454 Commit-Queue: Alison Maher <almaher@microsoft.com> Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Cr-Commit-Position: refs/heads/master@{#900671} -- wpt-commits: c663222b95aeea6083e7b5964228792e8a0f9a70 wpt-pr: 29604
testing/web-platform/tests/css/css-break/out-of-flow-in-multicolumn-064.html
testing/web-platform/tests/css/css-break/out-of-flow-in-multicolumn-065.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-break/out-of-flow-in-multicolumn-064.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>
+  Out-of-flow positioned element in multicol with vertical-rl writing mode.
+</title>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abspos-breaking">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+  .multicol {
+    writing-mode: vertical-rl;
+    columns: 2;
+    column-fill: auto;
+    column-gap: 0;
+    height: 100px;
+    width: 100px;
+    background: red;
+    color: red;
+  }
+  .abs {
+    position: absolute;
+    inline-size: 50px;
+    block-size: 200px;
+    inset-block-start: 0;
+    inset-inline-start: 0;
+    background: green;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="multicol">
+  <div style="position: relative;">
+    FAIL
+    <div class="abs"></div>
+  </div>
+</div>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-break/out-of-flow-in-multicolumn-065.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<title>
+  Nested out-of-flow positioned element in multicol with vertical-rl writing
+  mode.
+</title>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abspos-breaking">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+  .multicol {
+    writing-mode: vertical-rl;
+    columns: 2;
+    column-fill: auto;
+    column-gap: 0;
+    height: 100px;
+    width: 100px;
+    background: red;
+    color: red;
+  }
+  .fixed {
+    position: fixed;
+    inline-size: 50px;
+    block-size: 200px;
+    inset-block-start: 0;
+    inset-inline-start: 0;
+    background: green;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="multicol">
+  <div style="transform: translateX(0);">
+    FAIL
+    <div style="position: relative;">
+      <div style="position: absolute;">
+        <div class="fixed"></div>
+      </div>
+    </div>
+  </div>
+</div>