[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