Diff
Modified: trunk/Source/WebCore/ChangeLog (116144 => 116145)
--- trunk/Source/WebCore/ChangeLog 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebCore/ChangeLog 2012-05-04 19:44:47 UTC (rev 116145)
@@ -1,3 +1,23 @@
+2012-05-04 Rob Buis <[email protected]>
+
+ [BlackBerry] Rendering bmp file as text file when Content-Type:image/x-ms-bmp from apache web server.
+ https://bugs.webkit.org/show_bug.cgi?id=85036
+
+ Reviewed by Antonio Gomes.
+
+ Move getNormalizedMIMEType from WebKit into MIMETypeRegistry. This way we support uncommon mime types like image/pjpeg
+ and image/x-ms-bmp out of the box since we map to the more common image/jpeg and image/bmp respectively.
+
+ * platform/MIMETypeRegistry.cpp:
+ (WebCore::initializeSupportedImageMIMETypes):
+ (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
+ (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
+ (WebCore):
+ (WebCore::mimeTypeAssociationMap):
+ (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
+ * platform/MIMETypeRegistry.h:
+ (MIMETypeRegistry):
+
2012-05-04 Sami Kyostila <[email protected]>
[chromium] Revert compositor layer scrolling
Modified: trunk/Source/WebCore/platform/MIMETypeRegistry.cpp (116144 => 116145)
--- trunk/Source/WebCore/platform/MIMETypeRegistry.cpp 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebCore/platform/MIMETypeRegistry.cpp 2012-05-04 19:44:47 UTC (rev 116145)
@@ -259,11 +259,7 @@
supportedImageMIMETypes->add(types[i]);
supportedImageResourceMIMETypes->add(types[i]);
}
-#if PLATFORM(BLACKBERRY)
- supportedImageMIMETypes->add("image/pjpeg");
- supportedImageResourceMIMETypes->add("image/pjpeg");
#endif
-#endif
}
static void initializeSupportedImageMIMETypesForEncoding()
@@ -513,7 +509,7 @@
return false;
if (!supportedImageMIMETypes)
initializeMIMETypeRegistry();
- return supportedImageMIMETypes->contains(mimeType);
+ return supportedImageMIMETypes->contains(getNormalizedMIMEType(mimeType));
}
bool MIMETypeRegistry::isSupportedImageResourceMIMEType(const String& mimeType)
@@ -522,7 +518,7 @@
return false;
if (!supportedImageResourceMIMETypes)
initializeMIMETypeRegistry();
- return supportedImageResourceMIMETypes->contains(mimeType);
+ return supportedImageResourceMIMETypes->contains(getNormalizedMIMEType(mimeType));
}
bool MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(const String& mimeType)
@@ -631,4 +627,75 @@
return defaultMIMEType;
}
+#if PLATFORM(BLACKBERRY)
+typedef HashMap<String, String> MIMETypeAssociationMap;
+
+static const MIMETypeAssociationMap& mimeTypeAssociationMap()
+{
+ static MIMETypeAssociationMap* mimeTypeMap = 0;
+ if (mimeTypeMap)
+ return *mimeTypeMap;
+
+ mimeTypeMap = new MIMETypeAssociationMap;
+ mimeTypeMap->add("image/x-ms-bmp", "image/bmp");
+ mimeTypeMap->add("image/x-windows-bmp", "image/bmp");
+ mimeTypeMap->add("image/x-bmp", "image/bmp");
+ mimeTypeMap->add("image/x-bitmap", "image/bmp");
+ mimeTypeMap->add("image/x-ms-bitmap", "image/bmp");
+ mimeTypeMap->add("image/jpg", "image/jpeg");
+ mimeTypeMap->add("image/pjpeg", "image/jpeg");
+ mimeTypeMap->add("image/x-png", "image/png");
+ mimeTypeMap->add("image/vnd.rim.png", "image/png");
+ mimeTypeMap->add("image/ico", "image/vnd.microsoft.icon");
+ mimeTypeMap->add("image/icon", "image/vnd.microsoft.icon");
+ mimeTypeMap->add("text/ico", "image/vnd.microsoft.icon");
+ mimeTypeMap->add("application/ico", "image/vnd.microsoft.icon");
+ mimeTypeMap->add("image/x-icon", "image/vnd.microsoft.icon");
+ mimeTypeMap->add("audio/vnd.qcelp", "audio/qcelp");
+ mimeTypeMap->add("audio/qcp", "audio/qcelp");
+ mimeTypeMap->add("audio/vnd.qcp", "audio/qcelp");
+ mimeTypeMap->add("audio/wav", "audio/x-wav");
+ mimeTypeMap->add("audio/mid", "audio/midi");
+ mimeTypeMap->add("audio/sp-midi", "audio/midi");
+ mimeTypeMap->add("audio/x-mid", "audio/midi");
+ mimeTypeMap->add("audio/x-midi", "audio/midi");
+ mimeTypeMap->add("audio/x-mpeg", "audio/mpeg");
+ mimeTypeMap->add("audio/mp3", "audio/mpeg");
+ mimeTypeMap->add("audio/x-mp3", "audio/mpeg");
+ mimeTypeMap->add("audio/mpeg3", "audio/mpeg");
+ mimeTypeMap->add("audio/x-mpeg3", "audio/mpeg");
+ mimeTypeMap->add("audio/mpg3", "audio/mpeg");
+ mimeTypeMap->add("audio/mpg", "audio/mpeg");
+ mimeTypeMap->add("audio/x-mpg", "audio/mpeg");
+ mimeTypeMap->add("audio/m4a", "audio/mp4");
+ mimeTypeMap->add("audio/x-m4a", "audio/mp4");
+ mimeTypeMap->add("audio/x-mp4", "audio/mp4");
+ mimeTypeMap->add("audio/x-aac", "audio/aac");
+ mimeTypeMap->add("audio/x-amr", "audio/amr");
+ mimeTypeMap->add("audio/mpegurl", "audio/x-mpegurl");
+ mimeTypeMap->add("audio/flac", "audio/x-flac");
+ mimeTypeMap->add("video/3gp", "video/3gpp");
+ mimeTypeMap->add("video/avi", "video/x-msvideo");
+ mimeTypeMap->add("video/x-m4v", "video/mp4");
+ mimeTypeMap->add("video/x-quicktime", "video/quicktime");
+ mimeTypeMap->add("application/java", "application/java-archive");
+ mimeTypeMap->add("application/x-java-archive", "application/java-archive");
+ mimeTypeMap->add("application/x-zip-compressed", "application/zip");
+
+ return *mimeTypeMap;
+}
+#endif
+
+String MIMETypeRegistry::getNormalizedMIMEType(const String& mimeType)
+{
+#if PLATFORM(BLACKBERRY)
+ MIMETypeAssociationMap::const_iterator it = mimeTypeAssociationMap().find(mimeType);
+
+ if (it != mimeTypeAssociationMap().end())
+ return it->second;
+#endif
+ return mimeType;
+}
+
+
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/MIMETypeRegistry.h (116144 => 116145)
--- trunk/Source/WebCore/platform/MIMETypeRegistry.h 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebCore/platform/MIMETypeRegistry.h 2012-05-04 19:44:47 UTC (rev 116145)
@@ -84,6 +84,8 @@
static HashSet<String>& getSupportedNonImageMIMETypes();
static HashSet<String>& getSupportedMediaMIMETypes();
static HashSet<String>& getUnsupportedTextMIMETypes();
+
+ static String getNormalizedMIMEType(const String&);
};
const String& defaultMIMEType();
Modified: trunk/Source/WebKit/blackberry/Api/WebSettings.cpp (116144 => 116145)
--- trunk/Source/WebKit/blackberry/Api/WebSettings.cpp 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebKit/blackberry/Api/WebSettings.cpp 2012-05-04 19:44:47 UTC (rev 116145)
@@ -19,6 +19,7 @@
#include "config.h"
#include "WebSettings.h"
+#include "MIMETypeRegistry.h"
#include "WebSettings_p.h"
#include "WebString.h"
@@ -84,65 +85,6 @@
DEFINE_STATIC_LOCAL(String, WebKitWebSocketsEnabled, ("WebKitWebSocketsEnabled"));
DEFINE_STATIC_LOCAL(String, WebKitXSSAuditorEnabled, ("WebKitXSSAuditorEnabled"));
-// FIXME: We should consider moving all the mime type code into its own object.
-
-typedef HashMap<String, WebString> MIMETypeAssociationMap;
-
-static const MIMETypeAssociationMap& mimeTypeAssociationMap()
-{
- static MIMETypeAssociationMap* mimeTypeMap = 0;
- if (mimeTypeMap)
- return *mimeTypeMap;
-
- mimeTypeMap = new MIMETypeAssociationMap;
- mimeTypeMap->add("image/x-ms-bmp", "image/bmp");
- mimeTypeMap->add("image/x-windows-bmp", "image/bmp");
- mimeTypeMap->add("image/x-bmp", "image/bmp");
- mimeTypeMap->add("image/x-bitmap", "image/bmp");
- mimeTypeMap->add("image/x-ms-bitmap", "image/bmp");
- mimeTypeMap->add("image/jpg", "image/jpeg");
- mimeTypeMap->add("image/pjpeg", "image/jpeg");
- mimeTypeMap->add("image/x-png", "image/png");
- mimeTypeMap->add("image/vnd.rim.png", "image/png");
- mimeTypeMap->add("image/ico", "image/vnd.microsoft.icon");
- mimeTypeMap->add("image/icon", "image/vnd.microsoft.icon");
- mimeTypeMap->add("text/ico", "image/vnd.microsoft.icon");
- mimeTypeMap->add("application/ico", "image/vnd.microsoft.icon");
- mimeTypeMap->add("image/x-icon", "image/vnd.microsoft.icon");
- mimeTypeMap->add("audio/vnd.qcelp", "audio/qcelp");
- mimeTypeMap->add("audio/qcp", "audio/qcelp");
- mimeTypeMap->add("audio/vnd.qcp", "audio/qcelp");
- mimeTypeMap->add("audio/wav", "audio/x-wav");
- mimeTypeMap->add("audio/mid", "audio/midi");
- mimeTypeMap->add("audio/sp-midi", "audio/midi");
- mimeTypeMap->add("audio/x-mid", "audio/midi");
- mimeTypeMap->add("audio/x-midi", "audio/midi");
- mimeTypeMap->add("audio/x-mpeg", "audio/mpeg");
- mimeTypeMap->add("audio/mp3", "audio/mpeg");
- mimeTypeMap->add("audio/x-mp3", "audio/mpeg");
- mimeTypeMap->add("audio/mpeg3", "audio/mpeg");
- mimeTypeMap->add("audio/x-mpeg3", "audio/mpeg");
- mimeTypeMap->add("audio/mpg3", "audio/mpeg");
- mimeTypeMap->add("audio/mpg", "audio/mpeg");
- mimeTypeMap->add("audio/x-mpg", "audio/mpeg");
- mimeTypeMap->add("audio/m4a", "audio/mp4");
- mimeTypeMap->add("audio/x-m4a", "audio/mp4");
- mimeTypeMap->add("audio/x-mp4", "audio/mp4");
- mimeTypeMap->add("audio/x-aac", "audio/aac");
- mimeTypeMap->add("audio/x-amr", "audio/amr");
- mimeTypeMap->add("audio/mpegurl", "audio/x-mpegurl");
- mimeTypeMap->add("audio/flac", "audio/x-flac");
- mimeTypeMap->add("video/3gp", "video/3gpp");
- mimeTypeMap->add("video/avi", "video/x-msvideo");
- mimeTypeMap->add("video/x-m4v", "video/mp4");
- mimeTypeMap->add("video/x-quicktime", "video/quicktime");
- mimeTypeMap->add("application/java", "application/java-archive");
- mimeTypeMap->add("application/x-java-archive", "application/java-archive");
- mimeTypeMap->add("application/x-zip-compressed", "application/zip");
-
- return *mimeTypeMap;
-}
-
static HashSet<String>* s_supportedObjectMIMETypes;
WebSettingsPrivate::WebSettingsPrivate()
@@ -254,16 +196,9 @@
if (!s_supportedObjectMIMETypes)
return false;
- return s_supportedObjectMIMETypes->contains(getNormalizedMIMEType(mimeType));
+ return s_supportedObjectMIMETypes->contains(MIMETypeRegistry::getNormalizedMIMEType(mimeType));
}
-WebString WebSettings::getNormalizedMIMEType(const WebString& type)
-{
- MIMETypeAssociationMap::const_iterator i = mimeTypeAssociationMap().find(type);
-
- return i == mimeTypeAssociationMap().end() ? type : i->second;
-}
-
bool WebSettings::xssAuditorEnabled() const
{
return m_private->getBoolean(WebKitXSSAuditorEnabled);
Modified: trunk/Source/WebKit/blackberry/Api/WebSettings.h (116144 => 116145)
--- trunk/Source/WebKit/blackberry/Api/WebSettings.h 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebKit/blackberry/Api/WebSettings.h 2012-05-04 19:44:47 UTC (rev 116145)
@@ -56,7 +56,6 @@
static void addSupportedObjectPluginMIMEType(const char*);
static bool isSupportedObjectMIMEType(const WebString&);
- static WebString getNormalizedMIMEType(const WebString&);
bool xssAuditorEnabled() const;
void setXSSAuditorEnabled(bool);
Modified: trunk/Source/WebKit/blackberry/ChangeLog (116144 => 116145)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-05-04 19:44:47 UTC (rev 116145)
@@ -1,3 +1,21 @@
+2012-05-04 Rob Buis <[email protected]>
+
+ [BlackBerry] Rendering bmp file as text file when Content-Type:image/x-ms-bmp from apache web server.
+ https://bugs.webkit.org/show_bug.cgi?id=85036
+
+ Reviewed by Antonio Gomes.
+
+ Move getNormalizedMIMEType into WebCore::MIMETypeRegistry.
+
+ * Api/WebSettings.cpp:
+ (WebKit):
+ (BlackBerry::WebKit::WebSettings::isSupportedObjectMIMEType):
+ * Api/WebSettings.h:
+ * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+ (WebCore::FrameLoaderClientBlackBerry::createPlugin):
+ (WebCore::FrameLoaderClientBlackBerry::canShowMIMEType):
+ (WebCore::FrameLoaderClientBlackBerry::objectContentType):
+
2012-05-04 Nate Chapin <[email protected]>
Don't require FrameLoaderClient to manufacture a commitData() call for empty documents.
Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp (116144 => 116145)
--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-05-04 19:38:24 UTC (rev 116144)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-05-04 19:44:47 UTC (rev 116145)
@@ -320,7 +320,7 @@
String mimeType(mimeTypeIn);
if (mimeType.isEmpty()) {
mimeType = MIMETypeRegistry::getMIMETypeForPath(url.path());
- mimeType = WebSettings::getNormalizedMIMEType(mimeType);
+ mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeType);
if (mimeType != "application/x-shockwave-flash")
mimeType = mimeTypeIn;
}
@@ -451,7 +451,7 @@
bool FrameLoaderClientBlackBerry::canShowMIMEType(const String& mimeTypeIn) const
{
// Get normalized type.
- String mimeType = WebSettings::getNormalizedMIMEType(mimeTypeIn);
+ String mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeTypeIn);
// FIXME: Seems no other port checks empty MIME type in this function. Should we do that?
return MIMETypeRegistry::isSupportedImageMIMEType(mimeType) || MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType)
@@ -768,7 +768,7 @@
mimeType = MIMETypeRegistry::getMIMETypeForPath(url.path());
// Get mapped type.
- mimeType = WebSettings::getNormalizedMIMEType(mimeType);
+ mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeType);
ObjectContentType defaultType = FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
if (defaultType != ObjectContentNone)