<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>77736</bug_id>
          
          <creation_ts>2012-02-03 06:58:24 -0800</creation_ts>
          <short_desc>Rewrite SVG tests to make extensive use of display() in repaint tests</short_desc>
          <delta_ts>2012-02-09 03:48:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77183</dependson>
    
    <dependson>77995</dependson>
    
    <dependson>78026</dependson>
          <blocked>69459</blocked>
    
    <blocked>77541</blocked>
    
    <blocked>78021</blocked>
    
    <blocked>78084</blocked>
    
    <blocked>78115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>krit</cc>
    
    <cc>ossy</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>548683</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 06:58:24 -0800</bug_when>
    <thetext>This bug covers all tests in svg/ except for the dynamic-updates/ and custom/ folders -- 140 tests remaining to examine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548709</commentid>
    <comment_count>1</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 07:44:23 -0800</bug_when>
    <thetext>CC&apos;ing Simon &amp; James. I&apos;d be glad if any of you could check the patch, and see whether the approach is sane now.

I basically grepped for all tests containing waitUntilDone() and/or setTimeout calls, and fixed all that don&apos;t use dumpAsText() to repaint correctly, by forcing it using display() calls and layout triggers before.

I left out svg/dynamic-updates, and svg/custom as they are quite large, and should be done in a separated bug. There are &quot;only&quot; 140 tests left that need fixing, but I&apos;d like to hear if it&apos;s all okay this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548712</commentid>
    <comment_count>2</comment_count>
      <attachid>125327</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 07:53:18 -0800</bug_when>
    <thetext>Created attachment 125327
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548721</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 08:06:30 -0800</bug_when>
    <thetext>*grml* I can&apos;t upload this using webkit-patch upload, as the patch is too large (it fails w/o an error, pretending it worked).

As a git-newbie, I don&apos;t know how to correctly format the patch so it applies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548753</commentid>
    <comment_count>4</comment_count>
      <attachid>125340</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 08:39:10 -0800</bug_when>
    <thetext>Created attachment 125340
Patch v2

Ok, webkit-patch doesn&apos;t handle large files, trying git diff --binary per Ossys suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548815</commentid>
    <comment_count>5</comment_count>
      <attachid>125340</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-02-03 10:07:58 -0800</bug_when>
    <thetext>Comment on attachment 125340
Patch v2

Just as a comment. It might depend on the test, but often you just want to know the result at the end. Therefore I don&apos;t see a reason to run the display differences on all tests. This would also make it harder to create Ref Tests in the future. And I really think that we should migrate to Ref Tests as much as possible in order to reduce pixel results (often for every single platform).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548869</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 11:07:50 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 125340 [details])
&gt; Just as a comment. It might depend on the test, but often you just want to know the result at the end. Therefore I don&apos;t see a reason to run the display differences on all tests. This would also make it harder to create Ref Tests in the future. And I really think that we should migrate to Ref Tests as much as possible in order to reduce pixel results (often for every single platform).

Agree.  Are these tests of type (1) or (2) by the classification in https://bugs.webkit.org/show_bug.cgi?id=77541#c2 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549019</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-03 13:34:50 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Agree.  Are these tests of type (1) or (2) by the classification in https://bugs.webkit.org/show_bug.cgi?id=77541#c2 ?
All type (2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549027</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 13:41:25 -0800</bug_when>
    <thetext>For type (2) I think this is the right approach.  Summarizing some suggestions from IRC:

1.) use LayoutTests/fast/repaint/resources/repaint.js harness, it provides nice fallback when loading the test in a browser and takes care of things like flushing styles so you don&apos;t have to do so in every test

2.) run the test logic in window.onload, not from a setTimeout() set in an inline script since the latter might run before the document has been fully parsed. it&apos;s an unlikely race to lose but can still cause flake, especially if any of these are ever run as http tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549593</commentid>
    <comment_count>9</comment_count>
      <attachid>125529</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-05 09:06:05 -0800</bug_when>
    <thetext>Created attachment 125529
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549594</commentid>
    <comment_count>10</comment_count>
      <attachid>125530</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-05 09:23:20 -0800</bug_when>
    <thetext>Created attachment 125530
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549620</commentid>
    <comment_count>11</comment_count>
      <attachid>125536</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-05 14:53:52 -0800</bug_when>
    <thetext>Created attachment 125536
Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549638</commentid>
    <comment_count>12</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-05 16:53:27 -0800</bug_when>
    <thetext>Still fighting with a particular layout test, I hope the bots like this patch now.
I&apos;ve added runSVGRepaintTest() to the repaint.js harness to encapsulate the different handling related to the SVG load event timing. Once we fix the SVG load time, to fire later (as HTML load event) the need for the setTimeout() will vanish - for now centralize this hack, so we can turn it off easily later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549640</commentid>
    <comment_count>13</comment_count>
      <attachid>125544</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-05 16:58:10 -0800</bug_when>
    <thetext>Created attachment 125544
Patch v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549675</commentid>
    <comment_count>14</comment_count>
      <attachid>125544</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-05 19:09:50 -0800</bug_when>
    <thetext>Comment on attachment 125544
Patch v6

Attachment 125544 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11432102

New failing tests:
svg/zoom/text/zoom-coords-viewattr-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549681</commentid>
    <comment_count>15</comment_count>
      <attachid>125544</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-05 19:47:23 -0800</bug_when>
    <thetext>Comment on attachment 125544
Patch v6

Attachment 125544 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11432113

New failing tests:
svg/zoom/text/zoom-coords-viewattr-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549712</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-02-05 21:23:04 -0800</bug_when>
    <thetext>Did you read https://bugs.webkit.org/show_bug.cgi?id=69459#c18 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549849</commentid>
    <comment_count>17</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-06 02:14:36 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Still fighting with a particular layout test, I hope the bots like this patch now.
&gt; I&apos;ve added runSVGRepaintTest() to the repaint.js harness to encapsulate the different handling related to the SVG load event timing. Once we fix the SVG load time, to fire later (as HTML load event) the need for the setTimeout() will vanish - for now centralize this hack, so we can turn it off easily later.

There were line-ending problems with svg/filters/invalidate-child-layout.svg - I fixed them in trunk, hopefully the patch applies now. Will also add a better ChangeLog, and hopefully fix the last chromium expectation problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549857</commentid>
    <comment_count>18</comment_count>
      <attachid>125601</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-06 02:29:55 -0800</bug_when>
    <thetext>Created attachment 125601
Patch v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550756</commentid>
    <comment_count>19</comment_count>
      <attachid>125601</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-07 02:42:08 -0800</bug_when>
    <thetext>Comment on attachment 125601
Patch v7

View in context: https://bugs.webkit.org/attachment.cgi?id=125601&amp;action=review

Looks pretty damn good. r=me!

&gt; LayoutTests/ChangeLog:8
&gt; +        Convert all tests in svg/ (except svg/custom &amp; svg/dynamic-updates) that excersive repainting to use the

Typo, exercise.

&gt; LayoutTests/svg/as-background-image/animated-svg-as-background.html:9
&gt; +    // The animation durates 100ms. Wait 200ms for the repaint.

Not sure &apos;durate&apos; is an English word. Same comment for all occurrences. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550773</commentid>
    <comment_count>20</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-07 03:20:03 -0800</bug_when>
    <thetext>Committed r106918: &lt;http://trac.webkit.org/changeset/106918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551014</commentid>
    <comment_count>21</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 08:33:50 -0800</bug_when>
    <thetext>It made svg/zoom/page/zoom-foreignObject.svg crash with Qt5-WK1.
svg/zoom/page/zoom-foreignObject.svg works fine if I run only this test,
but crahes if I run all tests or svg/zoom/page tests.

1   0x8067c7b /home/oszi/WebKit/WebKitBuild/Release/bin/DumpRenderTree() [0x8067c7b]
2   0xf7742400 [0xf7742400]
3   0xf6531ab6 /home/oszi/WebKit/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ThreadTimers::sharedTimerFiredInternal()+0xa6) [0xf6531ab6]
4   0xf6531b95 /home/oszi/WebKit/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::ThreadTimers::sharedTimerFired()+0x45) [0xf6531b95]
5   0xf671def6 /home/oszi/WebKit/WebKitBuild/Release/lib/libQtWebKit.so.4(WebCore::SharedTimerQt::timerEvent(QTimerEvent*)+0x46) [0xf671def6]
6   0xf3ba53d4 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QObject::event(QEvent*)+0x84) [0xf3ba53d4]
7   0xf44967ac /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtWidgets.so.5(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0xac) [0xf44967ac]
8   0xf449d4fe /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtWidgets.so.5(QApplication::notify(QObject*, QEvent*)+0x15e) [0xf449d4fe]
9   0xf3b883db /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x7b) [0xf3b883db]
10  0xf3bc9ae8 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QTimerInfoList::activateTimers()+0x3b8) [0xf3bc9ae8]
11  0xf3bca58a /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(+0x20358a) [0xf3bca58a]
12  0xf4fa8305 /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1d5) [0xf4fa8305]
13  0xf4fabfe8 /lib/libglib-2.0.so.0(+0x3efe8) [0xf4fabfe8]
14  0xf4fac1c8 /lib/libglib-2.0.so.0(g_main_context_iteration+0x68) [0xf4fac1c8]
15  0xf3bca275 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;)+0x65) [0xf3bca275]
16  0xf3b86e61 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;)+0x31) [0xf3b86e61]
17  0xf3b87352 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;)+0x132) [0xf3b87352]
18  0xf3b8d5bf /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtCore.so.5(QCoreApplication::exec()+0xaf) [0xf3b8d5bf]
19  0xf3e03f47 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtGui.so.5(QGuiApplication::exec()+0x17) [0xf3e03f47]
20  0xf4495d27 /usr/local/Trolltech/Qt5/Qt-5.0.0-r21/lib/libQtWidgets.so.5(QApplication::exec()+0x27) [0xf4495d27]
21  0x8068a91 /home/oszi/WebKit/WebKitBuild/Release/bin/DumpRenderTree() [0x8068a91]
22  0xf36e0c96 /lib/libc.so.6(__libc_start_main+0xe6) [0xf36e0c96]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551265</commentid>
    <comment_count>22</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-07 13:00:16 -0800</bug_when>
    <thetext>This induces some flakiness, see bug 78021 - at least for DRT/Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551929</commentid>
    <comment_count>23</comment_count>
      <attachid>125601</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-08 02:25:31 -0800</bug_when>
    <thetext>Comment on attachment 125601
Patch v7

Bug 78084 is resolved, outermost &lt;svg&gt; SVGLoad event fires as soon as HTML load event. Removed the special runSVGRepaintTest() it&apos;s no longer needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551984</commentid>
    <comment_count>24</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-08 03:50:38 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; It made svg/zoom/page/zoom-foreignObject.svg crash with Qt5-WK1.
&gt; svg/zoom/page/zoom-foreignObject.svg works fine if I run only this test,
&gt; but crahes if I run all tests or svg/zoom/page tests.
This regression is fixed as well, bug 77995 is just landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553031</commentid>
    <comment_count>25</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-09 03:48:21 -0800</bug_when>
    <thetext>Closing this bug, the remaining individual bugs, have to be fixed now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125327</attachid>
            <date>2012-02-03 07:53:18 -0800</date>
            <delta_ts>2012-02-06 02:22:32 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>FixFailures.diff</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125340</attachid>
            <date>2012-02-03 08:39:10 -0800</date>
            <delta_ts>2012-02-05 09:04:52 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>FixFailures.diff</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125529</attachid>
            <date>2012-02-05 09:06:05 -0800</date>
            <delta_ts>2012-02-06 02:22:38 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-77736-20120205180520.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125530</attachid>
            <date>2012-02-05 09:23:20 -0800</date>
            <delta_ts>2012-02-05 14:52:06 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-77736-20120205182236.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125536</attachid>
            <date>2012-02-05 14:53:52 -0800</date>
            <delta_ts>2012-02-05 16:56:12 -0800</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-77736-20120205235307.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125544</attachid>
            <date>2012-02-05 16:58:10 -0800</date>
            <delta_ts>2012-02-06 02:27:48 -0800</delta_ts>
            <desc>Patch v6</desc>
            <filename>bug-77736-20120206015726.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125601</attachid>
            <date>2012-02-06 02:29:55 -0800</date>
            <delta_ts>2012-02-08 02:25:31 -0800</delta_ts>
            <desc>Patch v7</desc>
            <filename>bug-77736-20120206112905.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64"></data>
<flag name="review"
          id="127134"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>