Reviewed by John.
authorkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 24 Feb 2005 23:07:44 +0000 (23:07 +0000)
committerkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 24 Feb 2005 23:07:44 +0000 (23:07 +0000)
Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak

Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push.
      * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources.

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

WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
WebKit/WebView.subproj/WebMainResourceClient.m
WebKit/WebView.subproj/WebMainResourceLoader.m

index 8c5af63ef7082b5a88fa9aa05751b255f1be42b5..5fac96906233e1668727d9c573f815051cb50e1e 100644 (file)
@@ -1,3 +1,17 @@
+2005-02-24  Kevin Decker  <kdecker@apple.com>
+
+        Reviewed by John.
+
+       Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak
+
+       Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.
+
+        * WebView.subproj/WebMainResourceClient.m: 
+        (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
+        * WebCoreSupport.subproj/WebSubresourceClient.m: 
+        (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 
+
+
 2005-02-23  John Sullivan  <sullivan@apple.com>
 
         Reviewed by Ken.
index 7101a1942c2a0cdeae9fef83cf56eb8bd78244af..01d910c9f3d290108d52f2394bc7cac999afef7c 100644 (file)
 - (void)didReceiveResponse:(NSURLResponse *)r
 {
     ASSERT(r);
+    
+    // FIXME: Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not 
+    // load multipart/x-mixed-replace content.  Pages with such content contain what is 
+    // essentially an infinite load and therefore a memory leak. Both this code and code in 
+    // WebMainRecoureClient must be removed once multipart/x-mixed-replace is fully implemented. 
+    if ([[r MIMEType] isEqualToString:@"multipart/x-mixed-replace"]) {
+        [self cancelWithError:[NSError _webKitErrorWithDomain:NSURLErrorDomain
+                                                         code:NSURLErrorUnsupportedURL
+                                                          URL:[r URL]]];
+        return;
+    }    
+    
     // retain/release self in this delegate method since the additional processing can do
     // anything including possibly releasing self; one example of this is 3266216
     [self retain];
index 7101a1942c2a0cdeae9fef83cf56eb8bd78244af..01d910c9f3d290108d52f2394bc7cac999afef7c 100644 (file)
 - (void)didReceiveResponse:(NSURLResponse *)r
 {
     ASSERT(r);
+    
+    // FIXME: Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not 
+    // load multipart/x-mixed-replace content.  Pages with such content contain what is 
+    // essentially an infinite load and therefore a memory leak. Both this code and code in 
+    // WebMainRecoureClient must be removed once multipart/x-mixed-replace is fully implemented. 
+    if ([[r MIMEType] isEqualToString:@"multipart/x-mixed-replace"]) {
+        [self cancelWithError:[NSError _webKitErrorWithDomain:NSURLErrorDomain
+                                                         code:NSURLErrorUnsupportedURL
+                                                          URL:[r URL]]];
+        return;
+    }    
+    
     // retain/release self in this delegate method since the additional processing can do
     // anything including possibly releasing self; one example of this is 3266216
     [self retain];
index 1d0a55d36d2f52ce3d601d3bcd40a42a1e2b1106..1350b6e3c1cc2a4086594497577ff32a87fd73ba 100644 (file)
     ASSERT([[r URL] _webkit_shouldLoadAsEmptyDocument] || ![[dataSource _webView] defersCallbacks]);
 
     LOG(Loading, "main content type: %@", [r MIMEType]);
-
+    
+    // FIXME: Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not 
+    // load multipart/x-mixed-replace content.  Pages with such content contain what is 
+    // essentially an infinite load and therefore a memory leak. Both this code and code in
+    // SubresourceClient must be removed once multipart/x-mixed-replace is fully implemented. 
+    if ([[r MIMEType] isEqualToString:@"multipart/x-mixed-replace"]) {
+        [self cancelWithError:[NSError _webKitErrorWithDomain:NSURLErrorDomain
+                                                         code:NSURLErrorUnsupportedURL
+                                                          URL:[r URL]]];
+        return;
+    }
+        
     // FIXME: This is a workaround to make web archive files work with Foundations that
     // are too old to know about web archive files. We should remove this before we ship.
     NSURL *URL = [r URL];
index 1d0a55d36d2f52ce3d601d3bcd40a42a1e2b1106..1350b6e3c1cc2a4086594497577ff32a87fd73ba 100644 (file)
     ASSERT([[r URL] _webkit_shouldLoadAsEmptyDocument] || ![[dataSource _webView] defersCallbacks]);
 
     LOG(Loading, "main content type: %@", [r MIMEType]);
-
+    
+    // FIXME: Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not 
+    // load multipart/x-mixed-replace content.  Pages with such content contain what is 
+    // essentially an infinite load and therefore a memory leak. Both this code and code in
+    // SubresourceClient must be removed once multipart/x-mixed-replace is fully implemented. 
+    if ([[r MIMEType] isEqualToString:@"multipart/x-mixed-replace"]) {
+        [self cancelWithError:[NSError _webKitErrorWithDomain:NSURLErrorDomain
+                                                         code:NSURLErrorUnsupportedURL
+                                                          URL:[r URL]]];
+        return;
+    }
+        
     // FIXME: This is a workaround to make web archive files work with Foundations that
     // are too old to know about web archive files. We should remove this before we ship.
     NSURL *URL = [r URL];