[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:20:51 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 46dffca1b220ec1f77eb5dc26c8a831d0cc2f9a6
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jun 21 01:27:34 2002 +0000

    	* WebCoreSupport.subproj/IFImageRenderer.m:
    	(-[IFImageRenderer frameDuration]):
    	    Added minimum 1/60th second duration per frame.
    	* WebView.subproj/IFDynamicScrollBarsView.m:
    	(-[IFDynamicScrollBarsView updateScrollers]):
    	    Only display scrollview if scrollers changed.
    	* WebView.subproj/IFWebFramePrivate.mm:
    	(-[IFWebFrame _setState:]):
    	    Explicity turn on copiesOnScroll.  This may cause problems w/
    	    plugins.  Need to verify once plugins are no longer crashing.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1412 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 3e28250..3bbab25 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,16 @@
+2002-06-20  Richard Williamson (local)  <rjw at apple.com>
+
+	* WebCoreSupport.subproj/IFImageRenderer.m:
+	(-[IFImageRenderer frameDuration]):
+	    Added minimum 1/60th second duration per frame.
+	* WebView.subproj/IFDynamicScrollBarsView.m:
+	(-[IFDynamicScrollBarsView updateScrollers]):
+	    Only display scrollview if scrollers changed.
+	* WebView.subproj/IFWebFramePrivate.mm:
+	(-[IFWebFrame _setState:]):
+	    Explicity turn on copiesOnScroll.  This may cause problems w/
+	    plugins.  Need to verify once plugins are no longer crashing.
+
 2002-06-20  Darin Adler  <darin at apple.com>
 
 	Fix for leak where sub-frame IFHTMLViews would not call _stopPlugins.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 3e28250..3bbab25 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,16 @@
+2002-06-20  Richard Williamson (local)  <rjw at apple.com>
+
+	* WebCoreSupport.subproj/IFImageRenderer.m:
+	(-[IFImageRenderer frameDuration]):
+	    Added minimum 1/60th second duration per frame.
+	* WebView.subproj/IFDynamicScrollBarsView.m:
+	(-[IFDynamicScrollBarsView updateScrollers]):
+	    Only display scrollview if scrollers changed.
+	* WebView.subproj/IFWebFramePrivate.mm:
+	(-[IFWebFrame _setState:]):
+	    Explicity turn on copiesOnScroll.  This may cause problems w/
+	    plugins.  Need to verify once plugins are no longer crashing.
+
 2002-06-20  Darin Adler  <darin at apple.com>
 
 	Fix for leak where sub-frame IFHTMLViews would not call _stopPlugins.
diff --git a/WebKit/WebCoreSupport.subproj/IFImageRenderer.m b/WebKit/WebCoreSupport.subproj/IFImageRenderer.m
index d9cf278..1d70b97 100644
--- a/WebKit/WebCoreSupport.subproj/IFImageRenderer.m
+++ b/WebKit/WebCoreSupport.subproj/IFImageRenderer.m
@@ -113,7 +113,21 @@ static NSMutableArray *activeImageRenderers;
 - (float)frameDuration
 {
     id property = [self firstRepProperty:NSImageCurrentFrameDuration];
-    return property != nil ? [property floatValue] : 0.0;
+    float duration = (property != nil ? [property floatValue] : 0.0);
+    if (duration < 0.0167){
+        /*
+            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.
+            
+            Browsers handle the minimum time case differently.  IE seems to use something
+            close to 1/60th 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/60th of second as the minimum time.
+        */
+        duration = .0167;
+    }
+    return duration;
 }
 
 - (void)nextFrame:(id)context
diff --git a/WebKit/WebCoreSupport.subproj/WebImageRenderer.m b/WebKit/WebCoreSupport.subproj/WebImageRenderer.m
index d9cf278..1d70b97 100644
--- a/WebKit/WebCoreSupport.subproj/WebImageRenderer.m
+++ b/WebKit/WebCoreSupport.subproj/WebImageRenderer.m
@@ -113,7 +113,21 @@ static NSMutableArray *activeImageRenderers;
 - (float)frameDuration
 {
     id property = [self firstRepProperty:NSImageCurrentFrameDuration];
-    return property != nil ? [property floatValue] : 0.0;
+    float duration = (property != nil ? [property floatValue] : 0.0);
+    if (duration < 0.0167){
+        /*
+            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.
+            
+            Browsers handle the minimum time case differently.  IE seems to use something
+            close to 1/60th 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/60th of second as the minimum time.
+        */
+        duration = .0167;
+    }
+    return duration;
 }
 
 - (void)nextFrame:(id)context
diff --git a/WebKit/WebView.subproj/IFDynamicScrollBarsView.m b/WebKit/WebView.subproj/IFDynamicScrollBarsView.m
index 76256fc..687bef3 100644
--- a/WebKit/WebView.subproj/IFDynamicScrollBarsView.m
+++ b/WebKit/WebView.subproj/IFDynamicScrollBarsView.m
@@ -36,6 +36,7 @@
 
 - (void)updateScrollers
 {
+    BOOL scrollersChanged = NO;
     if (allowsScrolling){    
         BOOL scrollsVertically;
         BOOL scrollsHorizontally;
@@ -51,11 +52,21 @@
         if (scrollsHorizontally && !scrollsVertically)
             scrollsVertically = ([dview bounds].size.height + [NSScroller scrollerWidth]) > [self frame].size.height;
         
-        [self setHasVerticalScroller: scrollsVertically];
-        [self setHasHorizontalScroller: scrollsHorizontally];
+        if ([self hasVerticalScroller] != scrollsVertically){
+            [self setHasVerticalScroller: scrollsVertically];
+            scrollersChanged = YES;
+        }
+            
+        if ([self hasHorizontalScroller] != scrollsHorizontally){
+            [self setHasHorizontalScroller: scrollsHorizontally];
+            scrollersChanged = YES;
+        }
+    }
+    
+    if (scrollersChanged){
+        [self tile];
+        [self setNeedsDisplay: YES];
     }
-    [self tile];
-    [self setNeedsDisplay: YES];
 }
 
 
diff --git a/WebKit/WebView.subproj/IFWebFramePrivate.mm b/WebKit/WebView.subproj/IFWebFramePrivate.mm
index 083af91..d61ecd7 100644
--- a/WebKit/WebView.subproj/IFWebFramePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebFramePrivate.mm
@@ -297,7 +297,9 @@ static const char * const stateNames[6] = {
     }
     
     if (_private->state == IFWEBFRAMESTATE_COMPLETE){
-        [[[self webView] frameScrollView] setDrawsBackground: YES];
+        NSScrollView *sv = [[self webView] frameScrollView];
+        [sv setDrawsBackground: YES];
+        [[sv contentView] setCopiesOnScroll: YES];
     }
 }
 
diff --git a/WebKit/WebView.subproj/WebDynamicScrollBarsView.m b/WebKit/WebView.subproj/WebDynamicScrollBarsView.m
index 76256fc..687bef3 100644
--- a/WebKit/WebView.subproj/WebDynamicScrollBarsView.m
+++ b/WebKit/WebView.subproj/WebDynamicScrollBarsView.m
@@ -36,6 +36,7 @@
 
 - (void)updateScrollers
 {
+    BOOL scrollersChanged = NO;
     if (allowsScrolling){    
         BOOL scrollsVertically;
         BOOL scrollsHorizontally;
@@ -51,11 +52,21 @@
         if (scrollsHorizontally && !scrollsVertically)
             scrollsVertically = ([dview bounds].size.height + [NSScroller scrollerWidth]) > [self frame].size.height;
         
-        [self setHasVerticalScroller: scrollsVertically];
-        [self setHasHorizontalScroller: scrollsHorizontally];
+        if ([self hasVerticalScroller] != scrollsVertically){
+            [self setHasVerticalScroller: scrollsVertically];
+            scrollersChanged = YES;
+        }
+            
+        if ([self hasHorizontalScroller] != scrollsHorizontally){
+            [self setHasHorizontalScroller: scrollsHorizontally];
+            scrollersChanged = YES;
+        }
+    }
+    
+    if (scrollersChanged){
+        [self tile];
+        [self setNeedsDisplay: YES];
     }
-    [self tile];
-    [self setNeedsDisplay: YES];
 }
 
 
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 083af91..d61ecd7 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -297,7 +297,9 @@ static const char * const stateNames[6] = {
     }
     
     if (_private->state == IFWEBFRAMESTATE_COMPLETE){
-        [[[self webView] frameScrollView] setDrawsBackground: YES];
+        NSScrollView *sv = [[self webView] frameScrollView];
+        [sv setDrawsBackground: YES];
+        [[sv contentView] setCopiesOnScroll: YES];
     }
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list