[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:29:51 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 62d3cee81231ba861a6ff3e22aaceb2054ef20c1
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Aug 7 04:12:22 2002 +0000

    WebCore:
    
    	- fixed 2965321 -- Crash on window close in kthml::Loader::cancelRequests from particular page
    
            * khtml/misc/loader.cpp: (Loader::servePendingRequests):
    	Look at return value from KWQServeRequest instead of assuming it will always succeed.
            * kwq/KWQLoaderImpl.h: Add return value for KWQServeRequest.
            * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Return false if we fail to make either the NSURL
    	or the WebResourceHandle. Also make sure that we delete the job if necessary.
    
    WebKit:
    
    	Fix assert I saw while fixing bug 2965321.
    
            * WebView.subproj/WebControllerPrivate.m:
            (-[WebController _receivedError:forResourceHandle:partialProgress:fromDataSource:]):
    	Create a suitable resource identifier from the failing URL in the WebError for cases
    	where we fail before we are able to construct a resource handle.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 9d6c1a5..f21d877 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,13 @@
+2002-08-06  Darin Adler  <darin at apple.com>
+
+	- fixed 2965321 -- Crash on window close in kthml::Loader::cancelRequests from particular page
+
+        * khtml/misc/loader.cpp: (Loader::servePendingRequests):
+	Look at return value from KWQServeRequest instead of assuming it will always succeed.
+        * kwq/KWQLoaderImpl.h: Add return value for KWQServeRequest.
+        * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Return false if we fail to make either the NSURL
+	or the WebResourceHandle. Also make sure that we delete the job if necessary.
+
 2002-08-06  John Sullivan  <sullivan at apple.com>
 
         * force-clean-timestamp:
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 9d6c1a5..f21d877 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,13 @@
+2002-08-06  Darin Adler  <darin at apple.com>
+
+	- fixed 2965321 -- Crash on window close in kthml::Loader::cancelRequests from particular page
+
+        * khtml/misc/loader.cpp: (Loader::servePendingRequests):
+	Look at return value from KWQServeRequest instead of assuming it will always succeed.
+        * kwq/KWQLoaderImpl.h: Add return value for KWQServeRequest.
+        * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Return false if we fail to make either the NSURL
+	or the WebResourceHandle. Also make sure that we delete the job if necessary.
+
 2002-08-06  John Sullivan  <sullivan at apple.com>
 
         * force-clean-timestamp:
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 9d6c1a5..f21d877 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,13 @@
+2002-08-06  Darin Adler  <darin at apple.com>
+
+	- fixed 2965321 -- Crash on window close in kthml::Loader::cancelRequests from particular page
+
+        * khtml/misc/loader.cpp: (Loader::servePendingRequests):
+	Look at return value from KWQServeRequest instead of assuming it will always succeed.
+        * kwq/KWQLoaderImpl.h: Add return value for KWQServeRequest.
+        * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Return false if we fail to make either the NSURL
+	or the WebResourceHandle. Also make sure that we delete the job if necessary.
+
 2002-08-06  John Sullivan  <sullivan at apple.com>
 
         * force-clean-timestamp:
diff --git a/WebCore/khtml/misc/loader.cpp b/WebCore/khtml/misc/loader.cpp
index 7cc8d05..6c781cb 100644
--- a/WebCore/khtml/misc/loader.cpp
+++ b/WebCore/khtml/misc/loader.cpp
@@ -1111,7 +1111,8 @@ void Loader::servePendingRequests()
   KIO::TransferJob* job = KIO::get( u, false, false /*no GUI*/);
 
 #ifdef APPLE_CHANGES
-  KWQServeRequest(this, req, job);
+  if (KWQServeRequest(this, req, job))
+      m_requestsLoading.insert(job, req);
 #else
   job->addMetaData("cache", getCacheControlString(req->object->cachePolicy()));
   if (!req->object->accept().isEmpty())
@@ -1135,9 +1136,9 @@ void Loader::servePendingRequests()
 
   if ( req->object->schedule() )
       KIO::Scheduler::scheduleJob( job );
-#endif // APPLE_CHANGES
 
   m_requestsLoading.insert(job, req);
+#endif // APPLE_CHANGES
 }
 
 void Loader::slotFinished( KIO::Job* job )
diff --git a/WebCore/kwq/KWQLoader.h b/WebCore/kwq/KWQLoader.h
index 4d127e9..042381a 100644
--- a/WebCore/kwq/KWQLoader.h
+++ b/WebCore/kwq/KWQLoader.h
@@ -34,5 +34,5 @@ namespace KIO {
     class TransferJob;
 }
 
-void KWQServeRequest(khtml::Loader *, khtml::Request *, KIO::TransferJob *);
+bool KWQServeRequest(khtml::Loader *, khtml::Request *, KIO::TransferJob *);
 void KWQCheckCacheObjectStatus(khtml::DocLoader *, khtml::CachedObject *);
diff --git a/WebCore/kwq/KWQLoader.mm b/WebCore/kwq/KWQLoader.mm
index 527e194..eda3d28 100644
--- a/WebCore/kwq/KWQLoader.mm
+++ b/WebCore/kwq/KWQLoader.mm
@@ -92,7 +92,7 @@ using KIO::TransferJob;
 
 @end
 
-void KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
+bool KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
 {
     KWQDEBUGLEVEL(KWQ_LOG_LOADING, "Serving request for base %s, url %s", 
         request->m_docLoader->part()->baseURL().url().latin1(),
@@ -107,12 +107,20 @@ void KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
                                                          failingURL:job->url().url().getNSString()];
         [bridge reportError:badURLError];
         [badURLError release];
-        return;
+        delete job;
+        return false;
     }
     
     WebCoreResourceLoader *resourceLoader = [[WebCoreResourceLoader alloc] initWithLoader:loader job:job];
-    job->setHandle([bridge startLoadingResource:resourceLoader withURL:URL]);
+    WebResourceHandle *handle = [bridge startLoadingResource:resourceLoader withURL:URL];
     [resourceLoader release];
+
+    if (handle == nil) {
+        return false;
+    }
+    
+    job->setHandle(handle);
+    return true;
 }
 
 void KWQCheckCacheObjectStatus(DocLoader *loader, CachedObject *cachedObject)
diff --git a/WebCore/kwq/KWQLoaderImpl.h b/WebCore/kwq/KWQLoaderImpl.h
index 4d127e9..042381a 100644
--- a/WebCore/kwq/KWQLoaderImpl.h
+++ b/WebCore/kwq/KWQLoaderImpl.h
@@ -34,5 +34,5 @@ namespace KIO {
     class TransferJob;
 }
 
-void KWQServeRequest(khtml::Loader *, khtml::Request *, KIO::TransferJob *);
+bool KWQServeRequest(khtml::Loader *, khtml::Request *, KIO::TransferJob *);
 void KWQCheckCacheObjectStatus(khtml::DocLoader *, khtml::CachedObject *);
diff --git a/WebCore/kwq/KWQLoaderImpl.mm b/WebCore/kwq/KWQLoaderImpl.mm
index 527e194..eda3d28 100644
--- a/WebCore/kwq/KWQLoaderImpl.mm
+++ b/WebCore/kwq/KWQLoaderImpl.mm
@@ -92,7 +92,7 @@ using KIO::TransferJob;
 
 @end
 
-void KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
+bool KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
 {
     KWQDEBUGLEVEL(KWQ_LOG_LOADING, "Serving request for base %s, url %s", 
         request->m_docLoader->part()->baseURL().url().latin1(),
@@ -107,12 +107,20 @@ void KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
                                                          failingURL:job->url().url().getNSString()];
         [bridge reportError:badURLError];
         [badURLError release];
-        return;
+        delete job;
+        return false;
     }
     
     WebCoreResourceLoader *resourceLoader = [[WebCoreResourceLoader alloc] initWithLoader:loader job:job];
-    job->setHandle([bridge startLoadingResource:resourceLoader withURL:URL]);
+    WebResourceHandle *handle = [bridge startLoadingResource:resourceLoader withURL:URL];
     [resourceLoader release];
+
+    if (handle == nil) {
+        return false;
+    }
+    
+    job->setHandle(handle);
+    return true;
 }
 
 void KWQCheckCacheObjectStatus(DocLoader *loader, CachedObject *cachedObject)
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 9920fe9..77a1743 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,5 +1,14 @@
 2002-08-06  Darin Adler  <darin at apple.com>
 
+	Fix assert I saw while fixing bug 2965321.
+
+        * WebView.subproj/WebControllerPrivate.m:
+        (-[WebController _receivedError:forResourceHandle:partialProgress:fromDataSource:]):
+	Create a suitable resource identifier from the failing URL in the WebError for cases
+	where we fail before we are able to construct a resource handle.
+
+2002-08-06  Darin Adler  <darin at apple.com>
+
 	- fixed 2970516 -- Activate Events don't appear to be coming in to the
 	Java Applet.plugin correctly.
 
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 9920fe9..77a1743 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,5 +1,14 @@
 2002-08-06  Darin Adler  <darin at apple.com>
 
+	Fix assert I saw while fixing bug 2965321.
+
+        * WebView.subproj/WebControllerPrivate.m:
+        (-[WebController _receivedError:forResourceHandle:partialProgress:fromDataSource:]):
+	Create a suitable resource identifier from the failing URL in the WebError for cases
+	where we fail before we are able to construct a resource handle.
+
+2002-08-06  Darin Adler  <darin at apple.com>
+
 	- fixed 2970516 -- Activate Events don't appear to be coming in to the
 	Java Applet.plugin correctly.
 
diff --git a/WebKit/WebView.subproj/WebControllerPrivate.m b/WebKit/WebView.subproj/WebControllerPrivate.m
index 5345028..dd0acb5 100644
--- a/WebKit/WebView.subproj/WebControllerPrivate.m
+++ b/WebKit/WebView.subproj/WebControllerPrivate.m
@@ -132,7 +132,13 @@
 
     [[self resourceProgressHandler] receivedError: error forResourceHandle: resourceHandle partialProgress: progress fromDataSource: dataSource];
 
-    [dataSource _addError: error forResource:[[resourceHandle originalURL] absoluteString]];
+    NSString *resourceIdentifier = [[resourceHandle originalURL] absoluteString];
+    if (resourceIdentifier == nil) {
+        resourceIdentifier = [error failingURL];
+    }
+    if (resourceIdentifier) {
+        [dataSource _addError:error forResource:resourceIdentifier];
+    }
     
     [frame _checkLoadComplete];
 }
diff --git a/WebKit/WebView.subproj/WebViewPrivate.m b/WebKit/WebView.subproj/WebViewPrivate.m
index 5345028..dd0acb5 100644
--- a/WebKit/WebView.subproj/WebViewPrivate.m
+++ b/WebKit/WebView.subproj/WebViewPrivate.m
@@ -132,7 +132,13 @@
 
     [[self resourceProgressHandler] receivedError: error forResourceHandle: resourceHandle partialProgress: progress fromDataSource: dataSource];
 
-    [dataSource _addError: error forResource:[[resourceHandle originalURL] absoluteString]];
+    NSString *resourceIdentifier = [[resourceHandle originalURL] absoluteString];
+    if (resourceIdentifier == nil) {
+        resourceIdentifier = [error failingURL];
+    }
+    if (resourceIdentifier) {
+        [dataSource _addError:error forResource:resourceIdentifier];
+    }
     
     [frame _checkLoadComplete];
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list