[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