2010-02-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
authorkov@webkit.org <kov@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 25 Feb 2010 14:19:56 +0000 (14:19 +0000)
committerkov@webkit.org <kov@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 25 Feb 2010 14:19:56 +0000 (14:19 +0000)
        Reviewed by Xan Lopez.

        Go back on symlink resolution if we are loading the flash plugin,
        and the path contains /netscape/, following what Chromium does.

        Thanks to Evan Martin for the help on this!

        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::load):

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

WebCore/ChangeLog
WebCore/plugins/gtk/PluginPackageGtk.cpp

index 08ea6dd..47acac3 100644 (file)
@@ -1,3 +1,15 @@
+2010-02-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
+
+        Reviewed by Xan Lopez.
+
+        Go back on symlink resolution if we are loading the flash plugin,
+        and the path contains /netscape/, following what Chromium does.
+
+        Thanks to Evan Martin for the help on this!
+
+        * plugins/gtk/PluginPackageGtk.cpp:
+        (WebCore::PluginPackage::load):
+
 2010-02-25  Pavel Feldman  <pfeldman@chromium.org>
 
         Reviewed by Timothy Hatcher.
index 271a4a8..543251d 100644 (file)
@@ -116,6 +116,14 @@ bool PluginPackage::load()
         finalPath.set(g_file_get_path(resolvedFile.get()));
     }
 
+    // No joke. If there is a netscape component in the path, go back
+    // to the symlink, as flash breaks otherwise.
+    // See http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/plugins/plugin_list_posix.cc
+    GOwnPtr<gchar> baseName(g_path_get_basename(finalPath.get()));
+    if (!g_strcmp0(baseName.get(), "libflashplayer.so")
+        && g_strstr_len(finalPath.get(), -1, "/netscape/"))
+        finalPath.set(g_strdup(m_path.utf8().data()));
+
     m_module = g_module_open(finalPath.get(), G_MODULE_BIND_LOCAL);
 
     if (!m_module) {