fune/layout/reftests/image-element/element-paint-recursion-ref.html
Emilio Cobos Álvarez 44e2f8b6ed Bug 1507674 - Refactor svg observer setup to not do silly things when observing an ancestor. r=longsonr
Right now we post updates and it "works" because we prevent the UpdateOverflow
call if we're during reflow.

If this happens during styling however this is not sound (and it is not sound
in general and has caused badness in the past, as noted by the other
workarounds).

Make it sound by preventing to observe ancestors, and do it everywhere, removing
various ad-hoc hacks that were spread around elsewhere.

This changes expectations of two tests:

 * clip-path-recursion-002.svg: Now we consider the inner clip-path reference
   invalid. This matches WebKit and Blink, and I don't see any spec text
   explicitly asking for our old behavior, so I just changed the test.

 * element-paint-recursion.html: Changes the expectations of elements
   referencing themselves via -moz-element(). Now it is invalid, instead of
   painting ourselves once inside ourselves, which was a bit wild on its own.

Differential Revision: https://phabricator.services.mozilla.com/D53890

--HG--
extra : moz-landing-system : lando
2019-11-20 10:05:29 +00:00

21 lines
1.1 KiB
HTML

<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/licenses/publicdomain/
-->
<html>
<body>
<p style="width:100px; height:100px; border:10px solid black; border-top:10px solid black; border-left:10px solid black;"></p>
<div style="width:100px; height:100px; border:10px solid blue; border-top:10px solid blue; border-left:10px solid blue;"></div>
<p style="width:100px; height:100px; border:10px solid green; background:yellow;"></div>
<div style="width:100px; height:100px; border:10px solid cyan;">
<div style="width:90px; height:90px; border-left:10px solid magenta; border-top:10px solid magenta;">
<div style="width:80px; height:80px; border-left:10px solid cyan; border-top:10px solid cyan;"></div>
</div>
</div>
<div style="width:100px; height:100px; border:10px solid magenta;">
<div style="width:90px; height:90px; border-left:10px solid cyan; border-top:10px solid cyan;">
<div style="width:80px; height:80px; border-left:10px solid magenta; border-top:10px solid magenta;"></div>
</div>
</div>
</body>
</html>