[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