[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 12:42:42 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b12578efcd26b73247bdaa7a462729d77ce69860
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Aug 27 17:35:18 2010 +0000

    2010-08-27  Dawit Alemayehu  <adawit at kde.org>
    
            Reviewed by Simon Hausmann.
    
            [Qt] Search the Windows registry for the location of the Java plugin DLL.
            https://bugs.webkit.org/show_bug.cgi?id=38911
    
            This change, in addition to the ones 34539 and 38911, is needed to
            make Java applet work in QtWebKit on the Windows platform.
    
            * plugins/win/PluginDatabaseWin.cpp:
            (WebCore::addJavaPluginDirectory):
            (WebCore::PluginDatabase::defaultPluginDirectories):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66234 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c7017b2..233a4d2 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-27  Dawit Alemayehu  <adawit at kde.org>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Search the Windows registry for the location of the Java plugin DLL.
+        https://bugs.webkit.org/show_bug.cgi?id=38911
+
+        This change, in addition to the ones 34539 and 38911, is needed to
+        make Java applet work in QtWebKit on the Windows platform.
+
+        * plugins/win/PluginDatabaseWin.cpp:
+        (WebCore::addJavaPluginDirectory):
+        (WebCore::PluginDatabase::defaultPluginDirectories):
+
 2010-08-27  Pavel Feldman  <pfeldman at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/WebCore/plugins/win/PluginDatabaseWin.cpp b/WebCore/plugins/win/PluginDatabaseWin.cpp
index 5d86117..6cbcdc8 100644
--- a/WebCore/plugins/win/PluginDatabaseWin.cpp
+++ b/WebCore/plugins/win/PluginDatabaseWin.cpp
@@ -332,6 +332,56 @@ static inline void addAdobeAcrobatPluginDirectory(Vector<String>& directories)
     RegCloseKey(key);
 }
 
+static inline void addJavaPluginDirectory(Vector<String>& directories)
+{
+    HKEY key;
+    HRESULT result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\JavaSoft\\Java Plug-in"), 0, KEY_READ, &key);
+    if (result != ERROR_SUCCESS)
+        return;
+
+    WCHAR name[128];
+    FILETIME lastModified;
+
+    Vector<int> latestJavaVersion;
+    String latestJavaVersionString;
+
+    // Enumerate subkeys
+    for (int i = 0;; i++) {
+        DWORD nameLen = sizeof(name) / sizeof(WCHAR);
+        result = RegEnumKeyExW(key, i, name, &nameLen, 0, 0, 0, &lastModified);
+
+        if (result != ERROR_SUCCESS)
+            break;
+
+        Vector<int> javaVersion = parseVersionString(String(name, nameLen));
+        if (compareVersions(javaVersion, latestJavaVersion)) {
+            latestJavaVersion = javaVersion;
+            latestJavaVersionString = String(name, nameLen);
+        }
+    }
+
+    if (!latestJavaVersionString.isEmpty()) {
+        DWORD type;
+        WCHAR javaInstallPathStr[_MAX_PATH];
+        DWORD javaInstallPathSize = sizeof(javaInstallPathStr);
+        DWORD useNewPluginValue;
+        DWORD useNewPluginSize;
+
+        String javaPluginKeyPath = "Software\\JavaSoft\\Java Plug-in\\" + latestJavaVersionString;
+        result = SHGetValue(HKEY_LOCAL_MACHINE, javaPluginKeyPath.charactersWithNullTermination(), TEXT("UseNewJavaPlugin"), &type, (LPVOID)&useNewPluginValue, &useNewPluginSize);
+
+        if (result == ERROR_SUCCESS && useNewPluginValue == 1) {
+            result = SHGetValue(HKEY_LOCAL_MACHINE, javaPluginKeyPath.charactersWithNullTermination(), TEXT("JavaHome"), &type, (LPBYTE)javaInstallPathStr, &javaInstallPathSize);
+            if (result == ERROR_SUCCESS) {
+                String javaPluginDirectory = String(javaInstallPathStr, javaInstallPathSize / sizeof(WCHAR) - 1) + "\\bin\\new_plugin";
+                directories.append(javaPluginDirectory);
+            }
+        }
+    }
+
+    RegCloseKey(key);
+}
+
 static inline String safariPluginsDirectory()
 {
     WCHAR moduleFileNameStr[_MAX_PATH];
@@ -385,6 +435,9 @@ Vector<String> PluginDatabase::defaultPluginDirectories()
     addMozillaPluginDirectories(directories);
     addWindowsMediaPlayerPluginDirectory(directories);
     addMacromediaPluginDirectories(directories);
+#if PLATFORM(QT)
+    addJavaPluginDirectory(directories);
+#endif
 
     return directories;
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list