[webkit-changes] cvs commit: WebKit/WebView.subproj WebFrame.m
Adele
adele at opensource.apple.com
Sun Jun 12 14:06:22 PDT 2005
adele 05/06/12 14:06:22
Modified: . Tag: Safari-2-0-branch ChangeLog
WebView.subproj Tag: Safari-2-0-branch WebFrame.m
Log:
Merged fix for <rdar://problem/4142247> from TOT to Safari-2-0-branch.
2005-06-12 Maciej Stachowiak <mjs at apple.com>
Reviewed by Chris Blumenberg.
- fixed <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
* WebView.subproj/WebFrame.m:
(-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
source before swapping in the provisional.
(-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
the provisional load here, we would not want to stop loading if this navigation
later turns into a download or is cancelled before being committed.
(-[WebFrame stopLoading]): Factored a bit.
(-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
and cancel any pending policy deicions.
(-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
load.
Revision Changes Path
No revision
No revision
1.3118.4.8 +23 -0 WebKit/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebKit/ChangeLog,v
retrieving revision 1.3118.4.7
retrieving revision 1.3118.4.8
diff -u -r1.3118.4.7 -r1.3118.4.8
--- ChangeLog 1 Jun 2005 23:01:38 -0000 1.3118.4.7
+++ ChangeLog 12 Jun 2005 21:06:18 -0000 1.3118.4.8
@@ -1,3 +1,26 @@
+2005-06-12 Adele Peterson <adele at apple.com>
+
+ Merged fix for <rdar://problem/4142247> from TOT to Safari-2-0-branch.
+
+ 2005-06-12 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Chris Blumenberg.
+
+ - fixed <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
+
+ * WebView.subproj/WebFrame.m:
+ (-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
+ source before swapping in the provisional.
+ (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
+ the provisional load here, we would not want to stop loading if this navigation
+ later turns into a download or is cancelled before being committed.
+ (-[WebFrame stopLoading]): Factored a bit.
+ (-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
+ and cancel any pending policy deicions.
+ (-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
+ load.
+
=== WebKit-412.3 ===
2005-06-01 Adele Peterson <adele at apple.com>
No revision
No revision
1.223.8.1 +22 -8 WebKit/WebView.subproj/WebFrame.m
Index: WebFrame.m
===================================================================
RCS file: /cvs/root/WebKit/WebView.subproj/WebFrame.m,v
retrieving revision 1.223
retrieving revision 1.223.8.1
diff -u -r1.223 -r1.223.8.1
--- WebFrame.m 23 Mar 2005 23:55:41 -0000 1.223
+++ WebFrame.m 12 Jun 2005 21:06:21 -0000 1.223.8.1
@@ -162,6 +162,8 @@
- (WebHistoryItem *)_createItem: (BOOL)useOriginal;
- (WebHistoryItem *)_createItemTreeWithTargetFrame:(WebFrame *)targetFrame clippedAtTarget:(BOOL)doClip;
- (WebHistoryItem *)_currentBackForwardListItemToResetTo;
+- (void)_cancelProvisionalLoad;
+- (void)_stopNonProvisionalLoadOnly;
@end
@implementation WebFramePrivate
@@ -744,6 +746,7 @@
}
// Set the committed data source on the frame.
+ [self _stopNonProvisionalLoadOnly];
[self _setDataSource:_private->provisionalDataSource];
[self _setProvisionalDataSource: nil];
@@ -2300,7 +2303,7 @@
WebFrameLoadType loadType = _private->policyLoadType;
WebDataSource *dataSource = [_private->policyDataSource retain];
- [self stopLoading];
+ [self _cancelProvisionalLoad];
[self _setLoadType:loadType];
[self _setProvisionalDataSource:dataSource];
[dataSource release];
@@ -2783,6 +2786,13 @@
}
}
+- (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.
@@ -2790,15 +2800,19 @@
return;
}
_private->isStoppingLoad = YES;
-
- [self _invalidatePendingPolicyDecisionCallingDefaultAction:YES];
-
- [_private->provisionalDataSource _stopLoading];
+ [self _cancelProvisionalLoad];
[_private->dataSource _stopLoading];
+ _private->isStoppingLoad = NO;
+}
- // Release the provisional data source because there's no point in keeping it around since it is unused in this case.
- [self _setProvisionalDataSource:nil];
-
+- (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->dataSource _stopLoading];
_private->isStoppingLoad = NO;
}
More information about the webkit-changes
mailing list