2007-11-27 Alp Toker <alp@atoker.com>
authoralp@webkit.org <alp@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2007 08:15:36 +0000 (08:15 +0000)
committeralp@webkit.org <alp@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2007 08:15:36 +0000 (08:15 +0000)
        Reviewed by Mark Rowe.

        Based on changes by Mike Emmel.

        CURL HTTP backend local file fixes:

        Set a MIME type for local files based on the file extension.

        Remove any HTTP query part sent to a local file.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::startJob):

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

WebCore/ChangeLog
WebCore/platform/network/curl/ResourceHandleManager.cpp

index 125fc9b01faf7f369e0a908c5b7446c82f5e4d22..69256c0ebb04e743915b2ceb606a19a8bb28c953 100644 (file)
@@ -1,3 +1,18 @@
+2007-11-27  Alp Toker  <alp@atoker.com>
+
+        Reviewed by Mark Rowe.
+
+        Based on changes by Mike Emmel.
+
+        CURL HTTP backend local file fixes:
+
+        Set a MIME type for local files based on the file extension.
+
+        Remove any HTTP query part sent to a local file.
+
+        * platform/network/curl/ResourceHandleManager.cpp:
+        (WebCore::ResourceHandleManager::startJob):
+
 2007-11-26  Brady Eidson  <beidson@apple.com>
 
         Reviewed by Mark Rowe
 2007-11-26  Brady Eidson  <beidson@apple.com>
 
         Reviewed by Mark Rowe
index a6edc0edaa36c64c2a400fce81d7219fb8cae66e..e3dbe5da48001ff8c81c8ef503f48d9a03591c64 100644 (file)
@@ -31,6 +31,7 @@
 #include "ResourceHandleManager.h"
 
 #include "CString.h"
 #include "ResourceHandleManager.h"
 
 #include "CString.h"
+#include "MIMETypeRegistry.h"
 #include "NotImplemented.h"
 #include "ResourceHandle.h"
 #include "ResourceHandleInternal.h"
 #include "NotImplemented.h"
 #include "ResourceHandle.h"
 #include "ResourceHandleInternal.h"
@@ -405,6 +406,16 @@ void ResourceHandleManager::startJob(ResourceHandle* job)
 
     ResourceHandleInternal* d = job->getInternal();
     DeprecatedString url = kurl.url();
 
     ResourceHandleInternal* d = job->getInternal();
     DeprecatedString url = kurl.url();
+
+    if (kurl.isLocalFile()) {
+        DeprecatedString query = kurl.query();
+        // Remove any query part sent to a local file.
+        if (!query.isEmpty())
+            url = url.left(url.find(query));
+        // Determine the MIME type based on the path.
+        d->m_response.setMimeType(MIMETypeRegistry::getMIMETypeForPath(String(url)));
+    }
+
     d->m_handle = curl_easy_init();
 #ifndef NDEBUG
     if (getenv("DEBUG_CURL"))
     d->m_handle = curl_easy_init();
 #ifndef NDEBUG
     if (getenv("DEBUG_CURL"))