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

trey trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:48:40 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 9e5eeccb7fc81ff4a121460404f27e0efb80f4cc
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jul 1 20:41:07 2004 +0000

    	3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com
    
    	We know from the line number of the crash that it is due to [self parentFrame]==nil.
    
    	Looking at the HTML and that of the related bugs, they do special stuff with onload
    	handlers.  It is no longer repro, presumably because the includes JS files changed,
    	as the bugs only included the top level HTML.  I suspect that the problem is that the
    	WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
    	MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
    	not have a parent frame.
    
    	So we guard in the code against hitting a nil parentFrame, and log an error just in
    	case this ever crops up again and we can learn more about it.
    
            Reviewed by Richard.
    
            * WebView.subproj/WebFrame.m:
            (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index a0c362d..813a48d 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,24 @@
+2004-07-01  Trey Matteson  <trey at apple.com>
+
+	3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com
+
+	We know from the line number of the crash that it is due to [self parentFrame]==nil.
+
+	Looking at the HTML and that of the related bugs, they do special stuff with onload
+	handlers.  It is no longer repro, presumably because the includes JS files changed,
+	as the bugs only included the top level HTML.  I suspect that the problem is that the
+	WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
+	MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
+	not have a parent frame.
+
+	So we guard in the code against hitting a nil parentFrame, and log an error just in
+	case this ever crops up again and we can learn more about it.
+
+        Reviewed by Richard.
+
+        * WebView.subproj/WebFrame.m:
+        (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.
+
 2004-07-01  John Sullivan  <sullivan at apple.com>
 
         Reviewed by Trey.
diff --git a/WebKit/WebView.subproj/WebFrame.m b/WebKit/WebView.subproj/WebFrame.m
index 2fb6ddb..d1fa9c0 100644
--- a/WebKit/WebView.subproj/WebFrame.m
+++ b/WebKit/WebView.subproj/WebFrame.m
@@ -757,11 +757,19 @@ NSString *WebPageCacheDocumentViewKey = @"WebPageCacheDocumentViewKey";
             case WebFrameLoadTypeInternal:
                 // Add an item to the item tree for this frame
                 ASSERT(![ds _isClientRedirect]);
-                WebHistoryItem *parentItem = [[self parentFrame]->_private currentItem];
-                // The only case where parentItem==nil should be when a parent frame loaded an
-                // empty URL, which doesn't set up a current item in that parent.
-                if (parentItem) {
-                    [parentItem addChildItem:[self _createItem: YES]];
+                WebFrame *parentFrame = [self parentFrame];
+                if (parentFrame) {
+                    WebHistoryItem *parentItem = [parentFrame->_private currentItem];
+                    // The only case where parentItem==nil should be when a parent frame loaded an
+                    // empty URL, which doesn't set up a current item in that parent.
+                    if (parentItem) {
+                        [parentItem addChildItem:[self _createItem: YES]];
+                    }
+                } else {
+                    // See 3556159.  It's not clear if it's valid to be in WebFrameLoadTypeOnLoadEvent
+                    // for a top-level frame, but that was a likely explanation for those crashes,
+                    // so let's guard against it.
+                    ERROR("no parent frame in _transitionToCommitted:, loadType=%d", loadType);
                 }
                 [self _makeDocumentView];
                 break;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list