[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:22:26 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 2de7232ccf0f4d3fedf2e521f601381a8d95a169
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jul 1 19:01:11 2002 +0000

            Fixed 2976913.
    
            * WebView.subproj/IFHTMLView.mm:
            (-[IFHTMLView layout]):
            Augmented debugging info.
            (-[IFHTMLView setNeedsDisplay:]):
            Augmented debugging info.
            (-[IFHTMLView setNeedsLayout:]):
            Removed overload of this method to also set display flag.
            Why was this added?
            (-[IFHTMLView setNeedsToApplyStyles:]):
            Augmented debugging info.
            (-[IFHTMLView drawRect:]):
            Augmented debugging info.
            * WebView.subproj/IFWebFramePrivate.mm:
            (-[IFWebFrame _timedLayout:]):
            If the view size is zero (width or height) force
            a layout now, rather than depending on the lazy
            layout that will happen in display.  If the view
            size is 0,0 the AppKit will optimize out the display.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1484 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index d89aaef..6fae753 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,26 @@
+2002-07-01  Richard Williamson  <rjw at apple.com>
+
+        Fixed 2976913.
+         
+        * WebView.subproj/IFHTMLView.mm:
+        (-[IFHTMLView layout]):
+        Augmented debugging info.
+        (-[IFHTMLView setNeedsDisplay:]):
+        Augmented debugging info.
+        (-[IFHTMLView setNeedsLayout:]):
+        Removed overload of this method to also set display flag.
+        Why was this added?
+        (-[IFHTMLView setNeedsToApplyStyles:]):
+        Augmented debugging info.
+        (-[IFHTMLView drawRect:]):
+        Augmented debugging info.
+        * WebView.subproj/IFWebFramePrivate.mm:
+        (-[IFWebFrame _timedLayout:]):
+        If the view size is zero (width or height) force
+        a layout now, rather than depending on the lazy
+        layout that will happen in display.  If the view
+        size is 0,0 the AppKit will optimize out the display.
+
 2002-07-01  Chris Blumenberg  <cblu at apple.com>
 
 	Minor cleanup
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index d89aaef..6fae753 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,26 @@
+2002-07-01  Richard Williamson  <rjw at apple.com>
+
+        Fixed 2976913.
+         
+        * WebView.subproj/IFHTMLView.mm:
+        (-[IFHTMLView layout]):
+        Augmented debugging info.
+        (-[IFHTMLView setNeedsDisplay:]):
+        Augmented debugging info.
+        (-[IFHTMLView setNeedsLayout:]):
+        Removed overload of this method to also set display flag.
+        Why was this added?
+        (-[IFHTMLView setNeedsToApplyStyles:]):
+        Augmented debugging info.
+        (-[IFHTMLView drawRect:]):
+        Augmented debugging info.
+        * WebView.subproj/IFWebFramePrivate.mm:
+        (-[IFWebFrame _timedLayout:]):
+        If the view size is zero (width or height) force
+        a layout now, rather than depending on the lazy
+        layout that will happen in display.  If the view
+        size is 0,0 the AppKit will optimize out the display.
+
 2002-07-01  Chris Blumenberg  <cblu at apple.com>
 
 	Minor cleanup
diff --git a/WebKit/WebView.subproj/IFHTMLView.mm b/WebKit/WebView.subproj/IFHTMLView.mm
index e6842cb..f446975 100644
--- a/WebKit/WebView.subproj/IFHTMLView.mm
+++ b/WebKit/WebView.subproj/IFHTMLView.mm
@@ -186,22 +186,22 @@
     [[self window] _setShouldPostEventNotifications: YES];
 
     if (widget && widget->part()->xmlDocImpl() && 
-        widget->part()->xmlDocImpl()->renderer()) {
-        if (_private->needsLayout){
+        widget->part()->xmlDocImpl()->renderer() &&
+        _private->needsLayout){
  #ifdef _KWQ_TIMING        
     double start = CFAbsoluteTimeGetCurrent();
  #endif
 
-            WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "doing layout\n");
-            //double start = CFAbsoluteTimeGetCurrent();
-            widget->layout();
-            //WebKitDebugAtLevel (WEBKIT_LOG_TIMING, "layout time %e\n", CFAbsoluteTimeGetCurrent() - start);
-            _private->needsLayout = NO;
+        WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s doing layout\n", DEBUG_OBJECT(self));
+        widget->layout();
+        _private->needsLayout = NO;
  #ifdef _KWQ_TIMING        
     double thisTime = CFAbsoluteTimeGetCurrent() - start;
     WEBKITDEBUGLEVEL (WEBKIT_LOG_TIMING, "%s layout seconds = %f\n", widget->part()->baseURL().url().latin1(), thisTime);
  #endif
-        }
+    }
+    else {
+        WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s NOT doing layout\n", DEBUG_OBJECT(self));
     }
 
 }
@@ -289,23 +289,21 @@
 
 - (void)setNeedsDisplay:(BOOL)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     [super setNeedsDisplay: flag];
 }
 
 
 - (void)setNeedsLayout: (bool)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     _private->needsLayout = flag;
-    if (flag)
-        [self setNeedsDisplay:YES];
 }
 
 
 - (void)setNeedsToApplyStyles: (bool)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     _private->needsToApplyStyles = flag;
 }
 
@@ -330,7 +328,7 @@
         return;
     }
 
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "drawing\n");
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s drawing\n", DEBUG_OBJECT(self));
 
     [self reapplyStyles];
 
diff --git a/WebKit/WebView.subproj/IFWebFramePrivate.mm b/WebKit/WebView.subproj/IFWebFramePrivate.mm
index 8fec969..52f49dc 100644
--- a/WebKit/WebView.subproj/IFWebFramePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebFramePrivate.mm
@@ -154,9 +154,27 @@ static const char * const stateNames[6] = {
         if ([self controller])
             WEBKITDEBUGLEVEL (WEBKIT_LOG_TIMING, "%s:  performing timed layout, %f seconds since start of document load\n", [[self name] cString], CFAbsoluteTimeGetCurrent() - [[[[self controller] mainFrame] dataSource] _loadingStartedTime]);
             
-        if([[self webView] isDocumentHTML])
+        if([[self webView] isDocumentHTML]){
+            NSView *view = (NSView *)documentView;
+            
             [documentView setNeedsLayout: YES];
             
+            NSRect frame = [view frame];
+            
+            if (frame.size.width == 0 || frame.size.height == 0){
+                // We must do the layout now, rather than depend on
+                // display to do a lazy layout because the view
+                // may be recently initialized with a zero size
+                // and the AppKit will optimize out any drawing.
+                
+                // Force a layout now.  At this point we could
+                // check to see if any CSS is pending and delay
+                // the layout further to avoid the flash of unstyled
+                // content.                    
+                [documentView layout];
+            }
+        }
+            
         [documentView setNeedsDisplay: YES];
     }
     else {
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 8fec969..52f49dc 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -154,9 +154,27 @@ static const char * const stateNames[6] = {
         if ([self controller])
             WEBKITDEBUGLEVEL (WEBKIT_LOG_TIMING, "%s:  performing timed layout, %f seconds since start of document load\n", [[self name] cString], CFAbsoluteTimeGetCurrent() - [[[[self controller] mainFrame] dataSource] _loadingStartedTime]);
             
-        if([[self webView] isDocumentHTML])
+        if([[self webView] isDocumentHTML]){
+            NSView *view = (NSView *)documentView;
+            
             [documentView setNeedsLayout: YES];
             
+            NSRect frame = [view frame];
+            
+            if (frame.size.width == 0 || frame.size.height == 0){
+                // We must do the layout now, rather than depend on
+                // display to do a lazy layout because the view
+                // may be recently initialized with a zero size
+                // and the AppKit will optimize out any drawing.
+                
+                // Force a layout now.  At this point we could
+                // check to see if any CSS is pending and delay
+                // the layout further to avoid the flash of unstyled
+                // content.                    
+                [documentView layout];
+            }
+        }
+            
         [documentView setNeedsDisplay: YES];
     }
     else {
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index e6842cb..f446975 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -186,22 +186,22 @@
     [[self window] _setShouldPostEventNotifications: YES];
 
     if (widget && widget->part()->xmlDocImpl() && 
-        widget->part()->xmlDocImpl()->renderer()) {
-        if (_private->needsLayout){
+        widget->part()->xmlDocImpl()->renderer() &&
+        _private->needsLayout){
  #ifdef _KWQ_TIMING        
     double start = CFAbsoluteTimeGetCurrent();
  #endif
 
-            WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "doing layout\n");
-            //double start = CFAbsoluteTimeGetCurrent();
-            widget->layout();
-            //WebKitDebugAtLevel (WEBKIT_LOG_TIMING, "layout time %e\n", CFAbsoluteTimeGetCurrent() - start);
-            _private->needsLayout = NO;
+        WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s doing layout\n", DEBUG_OBJECT(self));
+        widget->layout();
+        _private->needsLayout = NO;
  #ifdef _KWQ_TIMING        
     double thisTime = CFAbsoluteTimeGetCurrent() - start;
     WEBKITDEBUGLEVEL (WEBKIT_LOG_TIMING, "%s layout seconds = %f\n", widget->part()->baseURL().url().latin1(), thisTime);
  #endif
-        }
+    }
+    else {
+        WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s NOT doing layout\n", DEBUG_OBJECT(self));
     }
 
 }
@@ -289,23 +289,21 @@
 
 - (void)setNeedsDisplay:(BOOL)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     [super setNeedsDisplay: flag];
 }
 
 
 - (void)setNeedsLayout: (bool)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     _private->needsLayout = flag;
-    if (flag)
-        [self setNeedsDisplay:YES];
 }
 
 
 - (void)setNeedsToApplyStyles: (bool)flag
 {
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "flag = %d\n", (int)flag);
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s flag = %d\n", DEBUG_OBJECT(self), (int)flag);
     _private->needsToApplyStyles = flag;
 }
 
@@ -330,7 +328,7 @@
         return;
     }
 
-    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "drawing\n");
+    WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s drawing\n", DEBUG_OBJECT(self));
 
     [self reapplyStyles];
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list