<?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>65274</bug_id>
          
          <creation_ts>2011-07-27 12:26:32 -0700</creation_ts>
          <short_desc>Different elapsed times used during update of animation</short_desc>
          <delta_ts>2019-09-02 02:39:10 -0700</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>
          
          <blocked>41761</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Scott Graham">scottmg</reporter>
          <assigned_to name="Scott Graham">scottmg</assigned_to>
          <cc>abecsi</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>krit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443083</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-27 12:26:32 -0700</bug_when>
    <thetext>In some places during SMILTimeContainer and SVGSMILElement, the elapsed time from the fired timer is used to update animations, and in others, elapsed() is recalled. This eventually recalls the client&apos;s currentTime() so the animation will be updated with disparate times.

Some more information: https://lists.webkit.org/pipermail/webkit-dev/2011-July/017649.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443181</commentid>
    <comment_count>1</comment_count>
      <attachid>102192</attachid>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-27 15:16:13 -0700</bug_when>
    <thetext>Created attachment 102192
use one consistent elapsed time for animation update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443241</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-27 17:52:31 -0700</bug_when>
    <thetext>I wonder if we should plug in the same timebase that requestAnimationFrame etc use? Maybe not in this patch, but soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443264</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-27 18:35:10 -0700</bug_when>
    <thetext>Yeah, I&apos;d really like to tie in the timebase and the scheduling for this in with requestAnimationFrame.  That would mean changing the &apos;current time&apos; notion from something internal to SMILTimeContainer to something passed in from the outside on each animation update. I also think it&apos;s a good thing for a different patch than this one.

I&apos;m not super familiar with SMIL but doesn&apos;t it allow applying transformations in time space (for example, making a container in which time travels twice as fast)?  Is that handled at this level or somewhere else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443308</commentid>
    <comment_count>4</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-27 21:07:26 -0700</bug_when>
    <thetext>I&apos;ve only just started cozying up with the spec, so I&apos;m not entirely sure if there&apos;s sub time warping requirements or not. FWIW, there&apos;s a comment in the time interval calculations claiming:

           // No nested time containers in SVG, no need for crazy time space conversions. Phew!

but will need to investigate more for a future requestAnimationFrame patch.

Is there anyone else who should review this patch as is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443376</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-07-28 00:04:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Yeah, I&apos;d really like to tie in the timebase and the scheduling for this in with requestAnimationFrame.  That would mean changing the &apos;current time&apos; notion from something internal to SMILTimeContainer to something passed in from the outside on each animation update. I also think it&apos;s a good thing for a different patch than this one.
SVG has a time container per SVGSVGElement. And every time container can be paused and continued independent of the other time container. You can set the time of every container independent of the other containers. So we can end up with different time containers with different status per document. We could still use a global timer. But this needs to get considered.

&gt; 
&gt; I&apos;m not super familiar with SMIL but doesn&apos;t it allow applying transformations in time space (for example, making a container in which time travels twice as fast)?  Is that handled at this level or somewhere else?

Not sure if SMIL supports that, but SVG Animation doesn&apos;t. And we do not need a complete SMIL implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524009</commentid>
    <comment_count>6</comment_count>
      <attachid>102192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-19 10:51:26 -0800</bug_when>
    <thetext>Comment on attachment 102192
use one consistent elapsed time for animation update

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        No new tests, but existing svg animations should continue to work
&gt; +        correctly, and elapsed() is stable when stepping in debugger.

Is this observable from the web?  Can we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524187</commentid>
    <comment_count>7</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-12-19 14:16:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 102192 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102192&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        No new tests, but existing svg animations should continue to work
&gt; &gt; +        correctly, and elapsed() is stable when stepping in debugger.
&gt; 
&gt; Is this observable from the web?  Can we test this?

I guess it would be on a heavily loaded machine. I can&apos;t think of good way to test automatically in a layout test though.

My primary concern was really debugger single-stepping, but it just seemed wrong to update parts of the same animation with different times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525406</commentid>
    <comment_count>8</comment_count>
      <attachid>102192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 11:48:26 -0800</bug_when>
    <thetext>Comment on attachment 102192
use one consistent elapsed time for animation update

Without some way to tst this, I&apos;m sure this will break again. :(  The change seems OK to me though.  We do this all on the main thread (including running JavaScript) so there is no way this is observable from the web.  Unless there are JS events which are fired synchronously from animations?  But I doubt that.

I&apos;m not sure this change is worth it, for just debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567170</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-02 02:39:10 -0700</bug_when>
    <thetext>This is fixed since r158405, by properly reporting a fixed time, if the animation is paused on a SMILTimeContainer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102192</attachid>
            <date>2011-07-27 15:16:13 -0700</date>
            <delta_ts>2011-12-21 11:48:26 -0800</delta_ts>
            <desc>use one consistent elapsed time for animation update</desc>
            <filename>bug-65274-20110727151612.patch</filename>
            <type>text/plain</type>
            <size>3401</size>
            <attacher name="Scott Graham">scottmg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTYyNGY3N2U0NmY3MDI5
YjI0YmJjNDRhZTA4OGIyMGUxZWVhNTQ5Li5kNzFiODQyYzE5YjVhYTc2NjY0NDY4MTZhYzY2YjA2
MWRhNzc1MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDctMjcgIFNjb3R0
IEdyYWhhbSAgPHNjb3R0bWdAZ29vZ2xlLmNvbT4KKworICAgICAgICBEaWZmZXJlbnQgZWxhcHNl
ZCB0aW1lcyB1c2VkIGR1cmluZyB1cGRhdGUgb2YgYW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTI3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gdXBkYXRpbmcgYW5pbWF0aW9ucywg
c2F2ZSBhbmQgdXNlIHRoZSBlbGFwc2VkIHRpbWUgYXMKKyAgICAgICAgbV9lbGFwc2VkRm9yQW5p
bWF0aW9uVXBkYXRlIHNvIHRoYXQgYWxsIGFuaW1hdGlvbnMgYXJlIHVwZGF0ZWQKKyAgICAgICAg
Y29uc2lzdGVudGx5IHJhdGhlciB0aGFuIHJlc2FtcGxpbmcgdGhlIGNsb2NrIHJlcGVhdGVkbHku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBidXQgZXhpc3Rpbmcgc3ZnIGFuaW1hdGlvbnMgc2hv
dWxkIGNvbnRpbnVlIHRvIHdvcmsKKyAgICAgICAgY29ycmVjdGx5LCBhbmQgZWxhcHNlZCgpIGlz
IHN0YWJsZSB3aGVuIHN0ZXBwaW5nIGluIGRlYnVnZ2VyLgorCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTTUlMVGltZUNv
bnRhaW5lcjo6U01JTFRpbWVDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6U01JTFRpbWVD
b250YWluZXI6OmVsYXBzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U01JTFRpbWVDb250YWluZXI6
OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24vU01JTFRpbWVDb250
YWluZXIuaDoKKwogMjAxMS0wNy0yNSAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZCBiZXR0ZXIgV2ViS2l0IEFQSSBmb3IgY2hy
b21lLnRhYnMuaW5zZXJ0Q1NTIGV4dGVuc2lvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKaW5kZXggZTliYjM4YWViMTA0ZTI0
MDY0ZmMxYWQ4ODI4ODNlYTZmN2UxNDkwOS4uYzRkOTM2NzdmZTBjNzZiYWNkYWY5ZGQyNGRlMTZm
NTBlNWEyMmEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlM
VGltZUNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlM
VGltZUNvbnRhaW5lci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgU01JTFRpbWVDb250YWluZXI6OlNN
SUxUaW1lQ29udGFpbmVyKFNWR1NWR0VsZW1lbnQqIG93bmVyKQogICAgIDogbV9iZWdpblRpbWUo
MCkKICAgICAsIG1fcGF1c2VUaW1lKDApCiAgICAgLCBtX2FjY3VtdWxhdGVkUGF1c2VUaW1lKDAp
CisgICAgLCBtX2VsYXBzZWRGb3JBbmltYXRpb25VcGRhdGUoLTEpCiAgICAgLCBtX2RvY3VtZW50
T3JkZXJJbmRleGVzRGlydHkoZmFsc2UpCiAgICAgLCBtX3RpbWVyKHRoaXMsICZTTUlMVGltZUNv
bnRhaW5lcjo6dGltZXJGaXJlZCkKICAgICAsIG1fb3duZXJTVkdFbGVtZW50KG93bmVyKQpAQCAt
ODIsNiArODMsMTAgQEAgU01JTFRpbWUgU01JTFRpbWVDb250YWluZXI6OmVsYXBzZWQoKSBjb25z
dAogewogICAgIGlmICghbV9iZWdpblRpbWUpCiAgICAgICAgIHJldHVybiAwOworCisgICAgaWYg
KG1fZWxhcHNlZEZvckFuaW1hdGlvblVwZGF0ZSA+PSAwLjApCisgICAgICAgIHJldHVybiBtX2Vs
YXBzZWRGb3JBbmltYXRpb25VcGRhdGU7CisKICAgICByZXR1cm4gY3VycmVudFRpbWUoKSAtIG1f
YmVnaW5UaW1lIC0gbV9hY2N1bXVsYXRlZFBhdXNlVGltZTsKIH0KICAgICAKQEAgLTI0NCw2ICsy
NDksOCBAQCB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjp1cGRhdGVBbmltYXRpb25zKFNNSUxUaW1l
IGVsYXBzZWQsIGRvdWJsZSBuZXh0TWFudWFsU2FtcAogICAgICAgICBlbGFwc2VkID0gU01JTFRp
bWUobmV4dE1hbnVhbFNhbXBsZVRpbWUpICsgc2FtcGxpbmdEaWZmOwogICAgIH0KIAorICAgIG1f
ZWxhcHNlZEZvckFuaW1hdGlvblVwZGF0ZSA9IGVsYXBzZWQudmFsdWUoKTsKKwogICAgIC8vIFNv
cnQgYWNjb3JkaW5nIHRvIHByaW9yaXR5LiBFbGVtZW50cyB3aXRoIGxhdGVyIGJlZ2luIHRpbWUg
aGF2ZSBoaWdoZXIgcHJpb3JpdHkuCiAgICAgLy8gSW4gY2FzZSBvZiBhIHRpZSwgZG9jdW1lbnQg
b3JkZXIgZGVjaWRlcy4gCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFsc28gY29uc2lkZXIg
dGltaW5nIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZWxlbWVudHMuIERlcGVuZGVudHMKQEAg
LTMwOSw2ICszMTYsOCBAQCB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjp1cGRhdGVBbmltYXRpb25z
KFNNSUxUaW1lIGVsYXBzZWQsIGRvdWJsZSBuZXh0TWFudWFsU2FtcAogICAgIHN0YXJ0VGltZXIo
ZWFybGllcnNGaXJlVGltZSwgYW5pbWF0aW9uRnJhbWVEZWxheSk7CiAgICAgCiAgICAgRG9jdW1l
bnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7CisKKyAgICBtX2VsYXBzZWRGb3JBbmlt
YXRpb25VcGRhdGUgPSAtMTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmgKaW5kZXggNzAwODUwOGYyZTlmZGYyMDdkMmQx
NzA1MzcyNWNlY2ExYzI1NGRkNi4uYmFiZjNkNmExZmFiZDRiNWYxYWNmYzI0NDM3MjA5OTEyZGQw
OWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNv
bnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250
YWluZXIuaApAQCAtODEsNiArODEsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2JlZ2luVGlt
ZTsKICAgICBkb3VibGUgbV9wYXVzZVRpbWU7CiAgICAgZG91YmxlIG1fYWNjdW11bGF0ZWRQYXVz
ZVRpbWU7CisgICAgZG91YmxlIG1fZWxhcHNlZEZvckFuaW1hdGlvblVwZGF0ZTsKIAogICAgIGJv
b2wgbV9kb2N1bWVudE9yZGVySW5kZXhlc0RpcnR5OwogICAgIAo=
</data>
<flag name="review"
          id="97367"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>