Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly...
authorcblu <cblu@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Feb 2005 00:40:40 +0000 (00:40 +0000)
committercblu <cblu@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Feb 2005 00:40:40 +0000 (00:40 +0000)
The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.

        Reviewed by darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _setData:]): moved within file
        (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called

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

WebKit/ChangeLog
WebKit/WebView.subproj/WebDataSource.m
WebKit/WebView.subproj/WebDataSourcePrivate.h
WebKit/WebView.subproj/WebMainResourceClient.m
WebKit/WebView.subproj/WebMainResourceLoader.m

index 6e9ae32b092c559bbdb9b0e267475f585102e204..2c99ac1e8eeb521f532bb16923579b6749081e17 100644 (file)
@@ -1,3 +1,18 @@
+2005-01-31  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload
+
+       The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.
+
+        Reviewed by darin.
+
+        * WebView.subproj/WebDataSource.m:
+        (-[WebDataSource _setData:]): moved within file
+        (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
+        * WebView.subproj/WebDataSourcePrivate.h:
+        * WebView.subproj/WebMainResourceClient.m:
+        (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called
+
 2005-01-31  Chris Blumenberg  <cblu@apple.com>
 
        Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com
index f766c0533e4f6508b82e26490d0699ab5e3e562b..ee576728a9b4d20fe03d0cb9d305dd158d9ed2a0 100644 (file)
     [self _defersCallbacksChanged];
 }
 
+- (void)_setData:(NSData *)data
+{
+    ASSERT(_private->resourceData == nil);
+    [data retain];
+    [_private->resourceData release];
+    _private->resourceData = data;
+}
+
 - (void)_setPrimaryLoadComplete: (BOOL)flag
 {
     _private->primaryLoadComplete = flag;
        // there's no callback for that.
         [self _loadIcon];
 
+        [self _setData:[_private->mainClient resourceData]];
         [_private->mainClient release];
         _private->mainClient = 0; 
         [self _updateLoading];
     [self release];
 }
 
-- (void)_setData:(NSData *)data
-{
-    ASSERT(_private->resourceData == nil);
-    [data retain];
-    [_private->resourceData release];
-    _private->resourceData = data;
-}
-
 - (void)_finishedLoading
 {
     _private->gotFirstByte = YES;
index a0ccb6f2b410d47779b0851f5a71265f03cd92f7..bef80a239730845239546e75854b068d942e325c 100644 (file)
 - (void)_commitIfReady:(NSDictionary *)pageCache;
 - (void)_makeRepresentation;
 - (void)_receivedData:(NSData *)data;
-- (void)_setData:(NSData *)data;
 - (void)_finishedLoading;
 - (void)_receivedMainResourceError:(NSError *)error complete:(BOOL)isComplete;
 - (void)_defersCallbacksChanged;
index 09c9c7f448eec0fbc5794c06f1e697563c740f20..1d0a55d36d2f52ce3d601d3bcd40a42a1e2b1106 100644 (file)
     [super finalize];
 }
 
-- (void)releaseResources
-{
-    [dataSource _setData:[self resourceData]];
-    [super releaseResources];
-}
-
 - (void)receivedError:(NSError *)error
 {
     // Calling _receivedMainResourceError will likely result in a call to release, so we must retain.
index 09c9c7f448eec0fbc5794c06f1e697563c740f20..1d0a55d36d2f52ce3d601d3bcd40a42a1e2b1106 100644 (file)
     [super finalize];
 }
 
-- (void)releaseResources
-{
-    [dataSource _setData:[self resourceData]];
-    [super releaseResources];
-}
-
 - (void)receivedError:(NSError *)error
 {
     // Calling _receivedMainResourceError will likely result in a call to release, so we must retain.