forked from mirrors/gecko-dev
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
21 lines
1.1 KiB
HTML
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>
|