2008-01-18 Stephanie <slewis@apple.com>
authorslewis@apple.com <slewis@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Jan 2008 06:01:28 +0000 (06:01 +0000)
committerslewis@apple.com <slewis@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Jan 2008 06:01:28 +0000 (06:01 +0000)
        Reviewed by Oliver.

        Workaround for rdar:5695848.  Set mime_type for local files based on file extension.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::doUpdateResourceResponse):

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

WebCore/ChangeLog
WebCore/platform/network/cf/ResourceResponseCFNet.cpp

index 003a213fd2f6261053bd2abde2f63e9079d250ea..5ac1924dbd75f595d3388642e4e1b7babdfa2d73 100644 (file)
@@ -1,3 +1,12 @@
+2008-01-18  Stephanie  <slewis@apple.com>
+
+        Reviewed by Oliver.
+
+        Workaround for <rdar://problem/5695848>.  Set mime_type for local files based on file extension. 
+
+        * platform/network/cf/ResourceResponseCFNet.cpp:
+        (WebCore::ResourceResponse::doUpdateResourceResponse):
+
 2008-01-18  Ada Chan  <adachan@apple.com>
 
         <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
 2008-01-18  Ada Chan  <adachan@apple.com>
 
         <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
index 8ab6b3f5098934d87044c468248b90cafa97cade..e77b380c3ac812bb0da0be23d509cc2f705f9ae6 100644 (file)
@@ -96,6 +96,23 @@ void ResourceResponse::doUpdateResourceResponse()
             m_httpHeaderFields.set((CFStringRef)keys[i], (CFStringRef)values[i]);
     } else
         m_httpStatusCode = 0;
             m_httpHeaderFields.set((CFStringRef)keys[i], (CFStringRef)values[i]);
     } else
         m_httpStatusCode = 0;
+
+    // FIXME: This is a workaround for <rdar://problem/5695848>. This code should be removed once that bug is fixed.
+    if (m_url.isLocalFile() && ( m_mimeType == "text/html" || m_mimeType == "text/plain" )) {
+        const String& path = m_url.path();
+        static const String xhtmlExt(".xhtml");
+        static const String htmlExt(".html");
+        static const String xmlExt(".xml");
+        static const String svgExt(".svg");
+        if (path.endsWith(xhtmlExt, false))
+            m_mimeType = "application/xhtml+xml";
+        else if (path.endsWith(htmlExt, false))
+            m_mimeType = "text/html";
+        else if (path.endsWith(xmlExt, false))
+            m_mimeType = "text/xml";
+        else if (path.endsWith(svgExt, false))
+            m_mimeType = "image/svg+xml";
+    }
 }
 
 }
 }
 
 }