Bug 1462063 [wpt PR 11014] - [ForeignObject] Paint foreign objects during the foreground phase of normal-flow descendants., a=testonly
authorChris Harrelson <chrishtr@chromium.org>
Sat, 19 May 2018 20:40:50 +0000
changeset 419089 ce53acaf7d473f4df68239fc9f66e7d12aa120c8
parent 419088 17fc1d0673b422ab1ce66b802f30581390ce27f2
child 419090 04ede2332ab32e10c32c8db5c0c02137402d7318
push id34026
push userapavel@mozilla.com
push dateMon, 21 May 2018 09:47:33 +0000
treeherdermozilla-central@dc1868d255be [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1462063, 11014, 842668, 1060333, 559401
milestone62.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 1462063 [wpt PR 11014] - [ForeignObject] Paint foreign objects during the foreground phase of normal-flow descendants., a=testonly Automatic update from web-platform-tests[ForeignObject] Paint foreign objects during the foreground phase of normal-flow descendants. When <foreignObject> was made a stacking context, it also had the side-effect of painting it at the same time as positioned elements. This is a change to painting order and caused a regression. Instead, implement a new mechanism by which a "replaced normal-flow stacking" element paints during the foreground phase of the LayoutObject paint tree walk. This is used for now just for <foreignObject>, but may be applied to other replaced elements such as iframes or embedded objects in the future. Bug:842668 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I450944986abfb6610084444abf2724e7406145cf Reviewed-on: https://chromium-review.googlesource.com/1060333 Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Tien-Ren Chen <trchen@chromium.org> Cr-Commit-Position: refs/heads/master@{#559401} -- wpt-commits: 8139e965e11834763593fa8a041884b4d8f3de6b wpt-pr: 11014
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html
testing/web-platform/tests/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -183630,16 +183630,28 @@
       [
        "/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
+   "svg/extensibility/foreignObject/foreign-object-paints-before-rect.html": [
+    [
+     "/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html",
+     [
+      [
+       "/svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "svg/extensibility/foreignObject/stacking-context.html": [
     [
      "/svg/extensibility/foreignObject/stacking-context.html",
      [
       [
        "/svg/extensibility/foreignObject/stacking-context-ref.html",
        "=="
       ]
@@ -297561,16 +297573,21 @@
      {}
     ]
    ],
    "svg/README.md": [
     [
      {}
     ]
    ],
+   "svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html": [
+    [
+     {}
+    ]
+   ],
    "svg/extensibility/foreignObject/stacking-context-ref.html": [
     [
      {}
     ]
    ],
    "svg/foreignobject/position-svg-root-in-foreign-object-ref.html": [
     [
      {}
@@ -608385,16 +608402,24 @@
   "svg/README.md": [
    "ce9e3471676d5a50b91f6b274d648b481e509223",
    "support"
   ],
   "svg/extensibility/foreignObject/containing-block.html": [
    "6ed9e162526cbf37fb07c1cb7abbe79d987601c8",
    "testharness"
   ],
+  "svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html": [
+   "18e188a6279e64cbabdd4bb638b06d4a5b22fca8",
+   "support"
+  ],
+  "svg/extensibility/foreignObject/foreign-object-paints-before-rect.html": [
+   "f626d744f7bd101cf31d85e59747e8470fa91398",
+   "reftest"
+  ],
   "svg/extensibility/foreignObject/properties.svg": [
    "974affbb2c135c9aaa7a3f27687157b5e1250a9f",
    "testharness"
   ],
   "svg/extensibility/foreignObject/stacking-context-ref.html": [
    "6ea850b74b6a03554305ed95df45079bdbcb15dd",
    "support"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/svg/extensibility/foreignObject/foreign-object-paints-before-rect-expected.html
@@ -0,0 +1,12 @@
+<!doctype HTML>
+<!doctype HTML>
+<style>
+* {
+  margin: 0
+}
+</style>
+<svg style="width: 500px; height: 500px">
+  <rect x="0" y="0" width="100%" height="100%" style="fill: blue"/>
+  <rect x="0" y="0" width="50%" height="50%"/>
+</svg>
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/svg/extensibility/foreignObject/foreign-object-paints-before-rect.html
@@ -0,0 +1,16 @@
+<!doctype HTML>
+<link rel="match" href="foreign-object-paints-before-rect-expected.html">
+<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#embedded-ForeignObjectElement"/>
+<style>
+* {
+  margin: 0
+}
+</style>
+<!-- Test that the <foreignObject> root element paints in element order
+within the SVG, but content within it is atomic. -->
+<svg style="width: 500px; height: 500px">
+  <foreignObject width="100%" height="100%">
+    <div style="width: 500px; height: 500px; background: blue"></div>
+  </foreignObject>
+  <rect x="0" y="0" width="50%" height="50%"/>
+</svg>