2010-02-18 Xan Lopez <xlopez@igalia.com>
authorxan@webkit.org <xan@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 18 Feb 2010 08:06:03 +0000 (08:06 +0000)
committerxan@webkit.org <xan@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 18 Feb 2010 08:06:03 +0000 (08:06 +0000)
        Reviewed by Eric Seidel.

        [Linux] Webkit incompatible with Java plugins
        https://bugs.webkit.org/show_bug.cgi?id=24912

        The NP Version supported by WebKit is at the moment hardcoded in
        PluginPackage.cpp (to 24), but not all backends actually implement
        the methods needed to claim this. Introduce a new method to be
        implemented by each backend where the maximum supported version
        can be specified, and set the GTK+ port NPVersion to 19. This
        fixes an instantaneous crasher in the Sun Java NPAPI plugin.

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::initializeBrowserFuncs):
        * plugins/PluginPackage.h:
        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::NPVersion):
        * plugins/mac/PluginPackageMac.cpp:
        (WebCore::PluginPackage::NPVersion):
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::NPVersion):
        * plugins/symbian/PluginPackageSymbian.cpp:
        (WebCore::PluginPackage::NPVersion):
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::NPVersion):

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

WebCore/ChangeLog
WebCore/plugins/PluginPackage.cpp
WebCore/plugins/PluginPackage.h
WebCore/plugins/gtk/PluginPackageGtk.cpp
WebCore/plugins/mac/PluginPackageMac.cpp
WebCore/plugins/qt/PluginPackageQt.cpp
WebCore/plugins/symbian/PluginPackageSymbian.cpp
WebCore/plugins/win/PluginPackageWin.cpp

index 547732f..a99c475 100644 (file)
@@ -1,3 +1,31 @@
+2010-02-18  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Eric Seidel.
+
+        [Linux] Webkit incompatible with Java plugins
+        https://bugs.webkit.org/show_bug.cgi?id=24912
+
+        The NP Version supported by WebKit is at the moment hardcoded in
+        PluginPackage.cpp (to 24), but not all backends actually implement
+        the methods needed to claim this. Introduce a new method to be
+        implemented by each backend where the maximum supported version
+        can be specified, and set the GTK+ port NPVersion to 19. This
+        fixes an instantaneous crasher in the Sun Java NPAPI plugin.
+
+        * plugins/PluginPackage.cpp:
+        (WebCore::PluginPackage::initializeBrowserFuncs):
+        * plugins/PluginPackage.h:
+        * plugins/gtk/PluginPackageGtk.cpp:
+        (WebCore::PluginPackage::NPVersion):
+        * plugins/mac/PluginPackageMac.cpp:
+        (WebCore::PluginPackage::NPVersion):
+        * plugins/qt/PluginPackageQt.cpp:
+        (WebCore::PluginPackage::NPVersion):
+        * plugins/symbian/PluginPackageSymbian.cpp:
+        (WebCore::PluginPackage::NPVersion):
+        * plugins/win/PluginPackageWin.cpp:
+        (WebCore::PluginPackage::NPVersion):
+
 2010-02-17  Dmitry Titov  <dimich@chromium.org>
 
         Reviewed by David Levin, Darin Fisher, Simon Hausmann.
index 505bc4d..ad03ecd 100644 (file)
@@ -253,7 +253,7 @@ void PluginPackage::initializeBrowserFuncs()
 {
     memset(&m_browserFuncs, 0, sizeof(m_browserFuncs));
     m_browserFuncs.size = sizeof(m_browserFuncs);
-    m_browserFuncs.version = NP_VERSION_MINOR;
+    m_browserFuncs.version = NPVersion();
 
     m_browserFuncs.geturl = NPN_GetURL;
     m_browserFuncs.posturl = NPN_PostURL;
index a3937f1..aa2d272 100644 (file)
@@ -55,6 +55,7 @@ namespace WebCore {
         const String& path() const { return m_path; }
         const String& fileName() const { return m_fileName; }
         const String& parentDirectory() const { return m_parentDirectory; }
+        uint16 NPVersion() const;
         time_t lastModified() const { return m_lastModified; }
 
         const MIMEToDescriptionsMap& mimeToDescriptions() const { return m_mimeToDescriptions; }
index b25db03..271a4a8 100644 (file)
@@ -157,4 +157,8 @@ abort:
     return false;
 }
 
+uint16 PluginPackage::NPVersion() const
+{
+    return NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL;
+}
 }
index 4aef3a0..be69242 100644 (file)
@@ -302,6 +302,10 @@ abort:
     return false;
 }
 
+uint16 PluginPackage::NPVersion() const
+{
+    return NP_VERSION_MINOR;
+}
 } // namespace WebCore
 
 #else
index 8119924..74deaf6 100644 (file)
@@ -143,4 +143,8 @@ abort:
     return false;
 }
 
+uint16 PluginPackage::NPVersion() const
+{
+    return NP_VERSION_MINOR;
+}
 }
index d5c7533..44f8152 100644 (file)
@@ -173,5 +173,10 @@ void PluginPackage::unload()
     delete m_pluginLoader;
     m_pluginLoader = 0;
 }
+
+uint16 PluginPackage::NPVersion() const
+{
+    return NP_VERSION_MINOR;
+}
 }
 
index 233b10c..203fb60 100644 (file)
@@ -335,4 +335,8 @@ bool PluginPackage::equal(const PluginPackage& a, const PluginPackage& b)
     return true;
 }
 
+uint16 PluginPackage::NPVersion() const
+{
+    return NP_VERSION_MINOR;
+}
 }