<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>ext Benjamin Poulain &lt;<a href="mailto:benjamin@webkit.org">benjamin@webkit.org</a>&gt;<br>
<span style="font-weight:bold">Date: </span>Thursday, February 14, 2013 8:07 AM<br>
<span style="font-weight:bold">To: </span>Dongsung Huang &lt;<a href="mailto:luxtella@company100.net">luxtella@company100.net</a>&gt;<br>
<span style="font-weight:bold">Cc: </span>&quot;<a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a>&quot; &lt;<a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a>&gt;<br>
<span style="font-weight:bold">Subject: </span>Re: [webkit-dev] Testing feature suggestion: animation/interaction pixel-results &quot;on the fly&quot;<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>On Wed, Feb 13, 2013 at 9:38 PM, Dongsung Huang <span dir="ltr">&lt;<a href="mailto:luxtella@company100.net" target="_blank">luxtella@company100.net</a>&gt;</span> wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><span></span>I like this idea. I cannot find any harm if we have this functionality.</div>
</blockquote>
<div><br>
</div>
<div>Those changes are not harmless. There are people monitoring tests results full time in order to keep WebKit in good shape.&nbsp;No other part of WebKit require continuous attention.</div>
<div>&nbsp;</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Case 1: CSS Filters &amp; Shaders&nbsp;</div>
<div>I wanted this test functionality when I commented <a href="http://webkit.org/b/97859#c19" target="_blank">
http://webkit.org/b/97859#c19</a></div>
<div>If I want to make gaussian blur test, I prefer using 'getPixel' test as follows,</div>
</blockquote>
<div><br>
</div>
<div>Why wasn't a ref-test a better solution in this particular case?</div>
</div>
</div>
</div>
</blockquote>
</span>
<div>Because gaussian blurs on the GPU are not accurate, and look slightly different on different GPUs, but usually &quot;close enough&quot;.</div>
<div>We need a way to measure &quot;close enough&quot; for features where all you can get is &quot;close enough&quot;! Ref-tests and pixel-tests are way to rigid for that, and require constant rebaselines and headaches.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div class="gmail_quote">
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Case 2: Fixed Position Element</div>
<div>[...]</div>
<div>function repeatedlyCalledDuringScrolling() {</div>
<div>&nbsp; &nbsp; ASSERT(getPixel(15, 9) == white);</div>
<div>&nbsp; &nbsp; ASSERT(getPixel(15, 10) == green);</div>
<div>&nbsp; &nbsp; ASSERT(getPixel(9, 15) == white);</div>
<div>&nbsp; &nbsp; ASSERT(getPixel(10, 15) == green);</div>
<div>&nbsp; &nbsp; ....</div>
<div>}</div>
</blockquote>
<div><br>
</div>
<div>I think this shows what I said about correctness and readability:</div>
<div>-Asserting the correctness of the test and the result becomes close to impossible for the reader. One has to review the full code to have a chance of understanding an error.</div>
</div>
</div>
</div>
</blockquote>
</span>
<div>We can generate PNGs when a snapshot is requested so that the tester can eyeball the results.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div class="gmail_quote">
<div>-You cannot cover non trivial cases (images, text, form elements, etc).</div>
<div>-And it is inefficient. You have to render each frame on the UIProcess, move it to the WebProcess, and box it for JavaScript to process (with pixel format conversions depending on your graphics system)</div>
</div>
</div>
</div>
</blockquote>
</span>
<div>Another option is to do expose a partial comparison mechanism that runs in &nbsp;the UI process.&nbsp;</div>
<span id="OLK_SRC_BODY_SECTION">
<div class="gmail_quote">E.g.&nbsp;</div>
</span>
<div>var snapshotHandle = testRunner.createSnapshot();</div>
<div>testRunner.comparePixel(snapshotHandle,&nbsp;15, 20, 'white', { tolerance: 0.2 });</div>
<div><br>
</div>
<div>This way we can generate a visual representation of failures.</div>
</body>
</html>