2010-10-31 Robert Hogan <robert@webkit.org>
authorrobert@webkit.org <robert@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Nov 2010 02:48:41 +0000 (02:48 +0000)
committerrobert@webkit.org <robert@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Nov 2010 02:48:41 +0000 (02:48 +0000)
        Reviewed by Antonio Gomes.

        [Qt] [Gtk] Plug-ins having upper case in mime type are failing to load

        Qt and Gtk are case-sensitive when storing the declared mime-type
        of plugins. Since plugin mime-types are lowercased prior to searching
        for them in the plugin database, ensure they are loaded with the
        mime-type in lower case too.

        https://bugs.webkit.org/show_bug.cgi?id=36815

        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::fetchInfo):
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::setMIMEDescription):
2010-10-31  Robert Hogan  <robert@webkit.org>

        Reviewed by Antonio Gomes.

        [Qt] [Gtk] Plug-ins having upper case in mime type are failing to load

        Qt and Gtk are case-sensitive when storing the declared mime-type
        of plugins. Since plugin mime-types are lowercased prior to searching
        for them in the plugin database, ensure they are loaded with the
        mime-type in lower case too.

        Change the test netscape plugin to declare its mimetype in sentence
        case so that the correct behaviour is enforced.

        https://bugs.webkit.org/show_bug.cgi?id=36815

        * DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp:
        (NP_GetMIMEDescription):

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

WebCore/ChangeLog
WebCore/plugins/gtk/PluginPackageGtk.cpp
WebCore/plugins/qt/PluginPackageQt.cpp
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp

index cb3feac..5883a89 100644 (file)
@@ -2,6 +2,24 @@
 
         Reviewed by Antonio Gomes.
 
+        [Qt] [Gtk] Plug-ins having upper case in mime type are failing to load
+
+        Qt and Gtk are case-sensitive when storing the declared mime-type
+        of plugins. Since plugin mime-types are lowercased prior to searching
+        for them in the plugin database, ensure they are loaded with the
+        mime-type in lower case too.
+
+        https://bugs.webkit.org/show_bug.cgi?id=36815
+
+        * plugins/gtk/PluginPackageGtk.cpp:
+        (WebCore::PluginPackage::fetchInfo):
+        * plugins/qt/PluginPackageQt.cpp:
+        (WebCore::PluginPackage::setMIMEDescription):
+
+2010-10-31  Robert Hogan  <robert@webkit.org>
+
+        Reviewed by Antonio Gomes.
+
         [Qt] Support nodesFromRect in DRT
 
         Pass a Document object as a QWebElement. 
index d0218fb..f14a1ae 100644 (file)
@@ -74,7 +74,7 @@ bool PluginPackage::fetchInfo()
 
     gchar** mimeDescs = g_strsplit(types, ";", -1);
     for (int i = 0; mimeDescs[i] && mimeDescs[i][0]; i++) {
-        gchar** mimeData = g_strsplit(mimeDescs[i], ":", 3);
+        gchar** mimeData = g_strsplit(g_strdown(mimeDescs[i]), ":", 3);
         if (g_strv_length(mimeData) < 3) {
             g_strfreev(mimeData);
             continue;
index e7058c7..ce07faf 100644 (file)
@@ -69,10 +69,10 @@ bool PluginPackage::fetchInfo()
 
 void PluginPackage::setMIMEDescription(const String& mimeDescription)
 {
-    m_fullMIMEDescription = mimeDescription;
+    m_fullMIMEDescription = mimeDescription.lower();
 
     Vector<String> types;
-    mimeDescription.split(UChar(';'), false, types);
+    mimeDescription.lower().split(UChar(';'), false, types);
     for (unsigned i = 0; i < types.size(); ++i) {
         Vector<String> mime;
         types[i].split(UChar(':'), true, mime);
index 904aa97..e4a5998 100644 (file)
@@ -2,6 +2,25 @@
 
         Reviewed by Antonio Gomes.
 
+        [Qt] [Gtk] Plug-ins having upper case in mime type are failing to load
+
+        Qt and Gtk are case-sensitive when storing the declared mime-type
+        of plugins. Since plugin mime-types are lowercased prior to searching
+        for them in the plugin database, ensure they are loaded with the
+        mime-type in lower case too.
+
+        Change the test netscape plugin to declare its mimetype in sentence
+        case so that the correct behaviour is enforced.
+
+        https://bugs.webkit.org/show_bug.cgi?id=36815
+
+        * DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp:
+        (NP_GetMIMEDescription):
+
+2010-10-31  Robert Hogan  <robert@webkit.org>
+
+        Reviewed by Antonio Gomes.
+
         [Qt] Support nodesFromRect in DRT
 
         https://bugs.webkit.org/show_bug.cgi?id=48716
index 14bb8ef..2298ef1 100644 (file)
@@ -372,7 +372,9 @@ webkit_test_plugin_set_value(NPP instance, NPNVariable variable, void* value)
 char *
 NP_GetMIMEDescription(void)
 {
-    return const_cast<char*>("application/x-webkit-test-netscape:testnetscape:test netscape content");
+    // We sentence-case the mime-type here to ensure that ports are not
+    // case-sensitive when loading plugins. See https://webkit.org/b/36815
+    return const_cast<char*>("application/x-Webkit-Test-Netscape:testnetscape:test netscape content");
 }
 
 NPError