No, I need a way to force a paint operation, similar to what layoutTestController.display() achieves, but without tracking the paint rectangles.<div><br></div><div>Does anyone you find value in adding an optional parameter to display (or create another method on LTC) that disables paint rectangle tracking.<div>
<br></div><div>The main advantage for such a change would be in extending the ref tests power to also cover repaint tests (at least a part of them), thus making pixel tests less necessary. Repaint bugs appear usually when the  layout changes but the old pixels are incorrectly invalidated. By making the reference HTML directly identical to the test document after the bug triggering changes have been applied, it is pretty certain that the output pixels for the reference file will not contain the repaint artifacts (there's no repaint operation involved). When running such a test with a client that has the bug, it will fail because the test file output will have artifacts and the reference output will not. On the other hand, using a client with the repaint bug fixed, the pixels output for the test and reference files should be identical.</div>
<div><br></div><div>Thoughts?</div><div><br></div><div>Andrei.<br><br><div class="gmail_quote">On Thu, May 24, 2012 at 11:57 PM, Ojan Vafai <span dir="ltr"><<a href="mailto:ojan@chromium.org" target="_blank">ojan@chromium.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Do you just need to force a layout at the end of repaintTest, e.g. document.body.offsetHeight;?<div><br><div class="gmail_quote">
<div><div class="h5">On Thu, May 24, 2012 at 6:34 AM, Andrei Bucur <span dir="ltr"><<a href="mailto:andrei.bucur@gmail.com" target="_blank">andrei.bucur@gmail.com</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">Hello WebKittens,<div><br></div><div>I'm trying to simplify the patch for a certain repaint bug ( <a href="https://bugs.webkit.org/show_bug.cgi?id=59863" target="_blank">https://bugs.webkit.org/show_bug.cgi?id=59863</a> ) by using ref tests instead of pixel tests.</div>



<div><br></div><div>The test HTML file should first render the document in state 1 and then, by modifying the DOM, render it again state 2. The bug appears when repainting from state 1 to state 2. The expected result HTML for the test is just a document directly written in state 2 (so there is no transition, no bug). This should work on all the platforms but there's problem with the time control between paints for state 1 and state 2 in the test HTML. I've tried three options:</div>



<div>1. Use setTimeout() to update the DOM -> I really wouldn't like to use this because it slows down the test and can be flaky.</div><div>2. Use layoutTestController.display() before modifying the DOM to trigger a paint -> calling this seems to make the test fail because display() starts tracking the paint rects which doesn't happen in the reference document.</div>



<div>3. Make use of requestAnimationFrame to time the paintings for state 1 and state 2 -> doesn't work directly out-of-the-box because requestAnimationFrame schedules a full repaint after going into state 2 and the bug doesn't reproduce anymore.</div>



<div><br></div><div>Is there a preferred solution to this problem or another one that I'm missing?</div><div><br></div><div>Thanks,</div><div>Andrei.</div>
<br></div></div>_______________________________________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org" target="_blank">webkit-dev@lists.webkit.org</a><br>
<a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div>