Reviewed by John.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Aug 2006 19:06:45 +0000 (19:06 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Aug 2006 19:06:45 +0000 (19:06 +0000)
        - fix assertion failure on layout tests by stopping plugins from loading at a clearly defined time
        - add more assertions for safety

        * WebView/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): Removed obsolete comment.
        (-[WebDataSource _updateLoading]): Add assertion ensuring this method is only called
        at a time when this data source is the one that might be loading for a frame.
        (-[WebDataSource _stopLoading]): Stop loading plugins as a FIXME suggests we should.
        * WebView/WebFrameLoader.m:
        (-[WebFrameLoader isLoadingPlugIns]): New helper method.
        (-[WebFrameLoader isLoading]): Consider plugin loads too - otherwise we won't stop them
        at stopLoading time.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebView/WebDataSource.m
WebKit/WebView/WebFrameLoader.m

index 815fd5501de4e082ea1f1f9d454900261e7d9efc..8a30cd497d9ad349d107597d3d36b81df793e0e3 100644 (file)
@@ -1,3 +1,20 @@
+2006-08-02  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by John.
+        
+        - fix assertion failure on layout tests by stopping plugins from loading at a clearly defined time
+        - add more assertions for safety
+
+        * WebView/WebDataSource.m:
+        (-[WebDataSourcePrivate dealloc]): Removed obsolete comment.
+        (-[WebDataSource _updateLoading]): Add assertion ensuring this method is only called
+        at a time when this data source is the one that might be loading for a frame.
+        (-[WebDataSource _stopLoading]): Stop loading plugins as a FIXME suggests we should.
+        * WebView/WebFrameLoader.m:
+        (-[WebFrameLoader isLoadingPlugIns]): New helper method.
+        (-[WebFrameLoader isLoading]): Consider plugin loads too - otherwise we won't stop them
+        at stopLoading time.
+
 2006-08-02  Adam Roben  <aroben@apple.com>
 
         Reviewed by Brady.
index 195b2084fd35df7166360b0d5675fae5b801b70e..5dd70d9eb2b97f5b3b911faa33d7e934fbe23f56 100644 (file)
 
 - (void)dealloc
 {
-    // The WebView is only retained while loading, but this object is also
-    // retained while loading, so no need to release here
     ASSERT(!loading);
 
     [resourceData release];
 
 - (void)_updateLoading
 {
-    [self _setLoading:[[_private->webFrame _frameLoader] isLoading]];
+    WebFrameLoader *frameLoader = [_private->webFrame _frameLoader];
+    ASSERT((self == [frameLoader dataSource] && [frameLoader state] != WebFrameStateProvisional) ||
+           (self == [frameLoader provisionalDataSource] && [frameLoader state] == WebFrameStateProvisional));
+
+    [self _setLoading:[frameLoader isLoading]];
 }
 
 - (void)_setData:(NSData *)data
     }
     
     [[_private->webFrame _frameLoader] stopLoadingSubresources];
-    // FIXME: why not stop loading plugins here?
+    [[_private->webFrame _frameLoader] stopLoadingPlugIns];
     
     _private->stopping = NO;
     
index 55fc70be07b3aa6966f1cf12cbf6fbfbb7177861..379347865af76d203a31efca1db0eadb0d55a6f7 100644 (file)
     return [subresourceLoaders count];
 }
 
+- (BOOL)isLoadingPlugIns
+{
+    return [plugInStreamLoaders count];
+}
+
 - (BOOL)isLoading
 {
-    return [self isLoadingMainResource] || [self isLoadingSubresources];
+    return [self isLoadingMainResource] || [self isLoadingSubresources] || [self isLoadingPlugIns];
 }
 
 - (void)stopLoadingSubresources