[webkit-changes] cvs commit: WebKit/WebView.subproj WebDataSource.m
WebFrame.m
Maciej
mjs at opensource.apple.com
Mon Jun 13 17:25:18 PDT 2005
mjs 05/06/13 17:25:18
Modified: . ChangeLog
WebView.subproj WebDataSource.m WebFrame.m
Log:
Reviewed by Chris Blumenberg and Adele.
- better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
With this change and the matching WebKit change we'll still stop loading the moment you click
a download link, but the unload event and detaching of event handlers will not happen early any more.
* WebView.subproj/WebDataSource.m:
(-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
* WebView.subproj/WebFrame.m:
(-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
(-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
(-[WebFrame stopLoading]): ditto
Revision Changes Path
1.3191 +17 -0 WebKit/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebKit/ChangeLog,v
retrieving revision 1.3190
retrieving revision 1.3191
diff -u -r1.3190 -r1.3191
--- ChangeLog 14 Jun 2005 00:08:23 -0000 1.3190
+++ ChangeLog 14 Jun 2005 00:25:15 -0000 1.3191
@@ -1,3 +1,20 @@
+2005-06-13 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Chris Blumenberg and Adele.
+
+ - better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
+ http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
+
+ With this change and the matching WebKit change we'll still stop loading the moment you click
+ a download link, but the unload event and detaching of event handlers will not happen early any more.
+
+ * WebView.subproj/WebDataSource.m:
+ (-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
+ * WebView.subproj/WebFrame.m:
+ (-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
+ (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
+ (-[WebFrame stopLoading]): ditto
+
2005-06-13 Chris Petersen <cpetersen at apple.com>
Changes by Darin.
1.205 +1 -1 WebKit/WebView.subproj/WebDataSource.m
Index: WebDataSource.m
===================================================================
RCS file: /cvs/root/WebKit/WebView.subproj/WebDataSource.m,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -r1.204 -r1.205
--- WebDataSource.m 6 Jun 2005 00:15:11 -0000 1.204
+++ WebDataSource.m 14 Jun 2005 00:25:18 -0000 1.205
@@ -475,7 +475,7 @@
[clients release];
if (_private->committed) {
- [[self _bridge] closeURL];
+ [[self _bridge] stopLoading];
}
}
1.233 +10 -22 WebKit/WebView.subproj/WebFrame.m
Index: WebFrame.m
===================================================================
RCS file: /cvs/root/WebKit/WebView.subproj/WebFrame.m,v
retrieving revision 1.232
retrieving revision 1.233
diff -u -r1.232 -r1.233
--- WebFrame.m 13 Jun 2005 03:28:08 -0000 1.232
+++ WebFrame.m 14 Jun 2005 00:25:18 -0000 1.233
@@ -183,8 +183,6 @@
- (WebHistoryItem *)_createItem: (BOOL)useOriginal;
- (WebHistoryItem *)_createItemTreeWithTargetFrame:(WebFrame *)targetFrame clippedAtTarget:(BOOL)doClip;
- (WebHistoryItem *)_currentBackForwardListItemToResetTo;
-- (void)_cancelProvisionalLoad;
-- (void)_stopNonProvisionalLoadOnly;
@end
@implementation WebFramePrivate
@@ -766,8 +764,9 @@
[_private setProvisionalItem:nil];
}
+ [[self _bridge] closeURL];
+
// Set the committed data source on the frame.
- [self _stopNonProvisionalLoadOnly];
[self _setDataSource:_private->provisionalDataSource];
[self _setProvisionalDataSource: nil];
@@ -2328,7 +2327,7 @@
WebFrameLoadType loadType = _private->policyLoadType;
WebDataSource *dataSource = [_private->policyDataSource retain];
- [self _cancelProvisionalLoad];
+ [self stopLoading];
[self _setLoadType:loadType];
[self _setProvisionalDataSource:dataSource];
[dataSource release];
@@ -2863,13 +2862,6 @@
}
}
-- (void)_cancelProvisionalLoad
-{
- [self _invalidatePendingPolicyDecisionCallingDefaultAction:YES];
- [_private->provisionalDataSource _stopLoading];
- [self _setProvisionalDataSource:nil];
-}
-
- (void)stopLoading
{
// If this method is called from within this method, infinite recursion can occur (3442218). Avoid this.
@@ -2877,19 +2869,15 @@
return;
}
_private->isStoppingLoad = YES;
- [self _cancelProvisionalLoad];
- [_private->dataSource _stopLoading];
- _private->isStoppingLoad = NO;
-}
+
+ [self _invalidatePendingPolicyDecisionCallingDefaultAction:YES];
-- (void)_stopNonProvisionalLoadOnly
-{
- // If this method is called from within this method, infinite recursion can occur (3442218). Avoid this.
- if (_private->isStoppingLoad) {
- return;
- }
- _private->isStoppingLoad = YES;
+ [_private->provisionalDataSource _stopLoading];
[_private->dataSource _stopLoading];
+
+ // Release the provisional data source because there's no point in keeping it around since it is unused in this case.
+ [self _setProvisionalDataSource:nil];
+
_private->isStoppingLoad = NO;
}
More information about the webkit-changes
mailing list