Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
authorrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Dec 2004 03:09:19 +0000 (03:09 +0000)
committerrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Dec 2004 03:09:19 +0000 (03:09 +0000)
Restrict our support for animated images to GIF.  We used to
use presence of more than one image in a resource to determine
if an image should be animated.  This caused us to animate icns!
If we ever support any other animated image formats we'll have
to extend.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData shouldAnimate]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):

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

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

index 6045096bc525dc1ce431bf6a955ff31c4299d933..b6878e82ff18f66eafdb9011ac1fefbda720ed57 100644 (file)
@@ -1,3 +1,21 @@
+2004-12-09  Richard Williamson   <rjw@apple.com>
+
+       Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
+
+       Restrict our support for animated images to GIF.  We used to
+       use presence of more than one image in a resource to determine
+       if an image should be animated.  This caused us to animate icns!
+       If we ever support any other animated image formats we'll have
+       to extend.
+
+        Reviewed by Hyatt.
+
+        * WebCoreSupport.subproj/WebImageData.h:
+        * WebCoreSupport.subproj/WebImageData.m:
+        (-[WebImageData shouldAnimate]):
+        * WebCoreSupport.subproj/WebImageRenderer.m:
+        (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
+
 2004-12-09  Richard Williamson   <rjw@apple.com>
 
        Make WebPluginDatabase.h private (Dashboard needs SPI).
 
 2004-12-07  Richard Williamson   <rjw@apple.com>
 
-       Support threaded image decoding on machines w/ > 2 CPUs.
+       Support threaded image decoding on machines w/ >= 2 CPUs.
 
         Reviewed by Maciej and Chris.
 
index 49b4d546f12b4bb2a4f884cd1a15d02ba4864de6..1527af91725a0eb0b633b21ca926c93d1451f1d7 100644 (file)
@@ -42,6 +42,7 @@
 - (BOOL)isNull;
 - (CGSize)size;
 - (void)animate;
+- (BOOL)shouldAnimate;
 + (void)stopAnimationsInView:(NSView *)aView;
 - (void)addAnimatingRenderer:(WebImageRenderer *)r inView:(NSView *)view;
 - (void)removeAnimatingRenderer:(WebImageRenderer *)self;
index 92f4324c631fb59ad3ecc12eb58fd095796ad407..11f0243f64760ea571a17284021a723d4c4e307e 100644 (file)
@@ -625,6 +625,11 @@ static NSMutableSet *activeAnimations;
     }
 }
 
+- (BOOL)shouldAnimate
+{
+    return [self numberOfImages] > 1 && ![self isAnimationFinished];
+}
+
 - (void)animate
 {
     if (frameTimer && [frameTimer isValid])
index 39859caeaa4178568c88f526bfa53556d0419657..5571fd300505f04d9387549947fb19aad57430c3 100644 (file)
 
 - (void)_startOrContinueAnimationIfNecessary
 {
-    if ([imageData numberOfImages] > 1 && ![imageData isAnimationFinished]) {
+    if ([imageData shouldAnimate] && [MIMEType isEqual:@"image/gif"]) {
         [imageData addAnimatingRenderer:self inView:[NSView focusView]];
         [imageData animate];
     }