Fix <rdar://problem/4051389> 8A413: gifs animating too fast
authorrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Mar 2005 04:00:59 +0000 (04:00 +0000)
committerrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Mar 2005 04:00:59 +0000 (04:00 +0000)
        Reviewed by Maciej.

Match Mozilla's policy for minimum frame duration, which is somewhat odd:

<= 0.01 sec use .1 sec, otherwise use specified duration.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _frameDurationAt:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8891 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebImageData.m

index f96d454bbc55f1c4f92d5643a65adc8a3326480b..ce0054e850a55aa13dcd0c48d0355720e49cf7d9 100644 (file)
@@ -1,3 +1,16 @@
+2005-03-14  Richard Williamson   <rjw@apple.com>
+
+       Fix <rdar://problem/4051389> 8A413: gifs animating too fast
+
+        Reviewed by Maciej.
+
+       Match Mozilla's policy for minimum frame duration, which is somewhat odd:
+
+       <= 0.01 sec use .1 sec, otherwise use specified duration.
+
+        * WebCoreSupport.subproj/WebImageData.m:
+        (-[WebImageData _frameDurationAt:]):
+
 2005-03-14  Darin Adler  <darin@apple.com>
 
         Reviewed by Harrison.
index ff30fa1820ff30982e7a0dbc2b25845002b7a7ad..ebabeff96a7a9c9d239543169e2f045bf7dcd922 100644 (file)
@@ -749,21 +749,18 @@ CGPatternCallbacks patternCallbacks = { 0, drawPattern, NULL };
     return value;
 }
 
-#define MINIMUM_DURATION (1.0/30.0)
+#define MINIMUM_DURATION (.1)
 
 - (float)_frameDurationAt:(size_t)i
 {
     float duration = [self _floatProperty:kCGImagePropertyGIFDelayTime type:kCGImagePropertyGIFDictionary at:i];
-    if (duration < MINIMUM_DURATION) {
+    if (duration <= 0.01) {
         /*
             Many annoying ads specify a 0 duration to make an image flash
-            as quickly as possible.  However a zero duration is faster than
-            the refresh rate.  We need to pick a minimum duration.
+            as quickly as possible.
             
-            Browsers handle the minimum time case differently.  IE seems to use something
-            close to 1/30th of a second.  Konqueror uses 0.  The ImageMagick library
-            uses 1/100th.  The units in the GIF specification are 1/100th of second.
-            We will use 1/30th of second as the minimum time.
+            We follow mozilla's behavior and set the minimum duration to 
+            100 ms.  See 4051389 for more details.
         */
         duration = MINIMUM_DURATION;
     }