Title: [174564] releases/WebKitGTK/webkit-2.6/Source/WebKit2
Revision
174564
Author
carlo...@webkit.org
Date
2014-10-10 01:01:33 -0700 (Fri, 10 Oct 2014)

Log Message

Merge r174507 - [X11] Plugin process crashes in NetscapePlugin::platformPostInitialize()
https://bugs.webkit.org/show_bug.cgi?id=137426

Reviewed by Darin Adler.

For some reason flash crashes when NPP_GetValue is called with
NPPVpluginCancelSrcStream, but only in windowed mode. Not calling
NPP_GetValue and unconditionally loading the source URL in the
browser fixes the crash and plugins work normally. We can handle
this particular case with a new quirk.

* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::determineQuirks): Add
DoNotCancelSrcStreamInWindowedMode quirk if it's flash plugin.
* Shared/Plugins/PluginQuirks.h: Add
DoNotCancelSrcStreamInWindowedMode quirk.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::shouldLoadSrcURL): Return early if plugin
is windowed and DoNotCancelSrcStreamInWindowedMode quirk is present.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.6/Source/WebKit2/ChangeLog (174563 => 174564)


--- releases/WebKitGTK/webkit-2.6/Source/WebKit2/ChangeLog	2014-10-10 06:56:34 UTC (rev 174563)
+++ releases/WebKitGTK/webkit-2.6/Source/WebKit2/ChangeLog	2014-10-10 08:01:33 UTC (rev 174564)
@@ -1,3 +1,25 @@
+2014-10-09  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [X11] Plugin process crashes in NetscapePlugin::platformPostInitialize()
+        https://bugs.webkit.org/show_bug.cgi?id=137426
+
+        Reviewed by Darin Adler.
+
+        For some reason flash crashes when NPP_GetValue is called with
+        NPPVpluginCancelSrcStream, but only in windowed mode. Not calling
+        NPP_GetValue and unconditionally loading the source URL in the
+        browser fixes the crash and plugins work normally. We can handle
+        this particular case with a new quirk.
+
+        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
+        (WebKit::NetscapePluginModule::determineQuirks): Add
+        DoNotCancelSrcStreamInWindowedMode quirk if it's flash plugin.
+        * Shared/Plugins/PluginQuirks.h: Add
+        DoNotCancelSrcStreamInWindowedMode quirk.
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::shouldLoadSrcURL): Return early if plugin
+        is windowed and DoNotCancelSrcStreamInWindowedMode quirk is present.
+
 2014-09-25  Tim Horton  <timothy_hor...@apple.com>
 
         CommitLayerTree decode fails in 32-bit apps on 64-bit devices (TransformationMatrix alignment differs)

Modified: releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp (174563 => 174564)


--- releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp	2014-10-10 06:56:34 UTC (rev 174563)
+++ releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp	2014-10-10 08:01:33 UTC (rev 174564)
@@ -189,6 +189,7 @@
 #if PLATFORM(EFL)
             m_pluginQuirks.add(PluginQuirks::ForceFlashWindowlessMode);
 #endif
+            m_pluginQuirks.add(PluginQuirks::DoNotCancelSrcStreamInWindowedMode);
             break;
         }
     }

Modified: releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/PluginQuirks.h (174563 => 174564)


--- releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/PluginQuirks.h	2014-10-10 06:56:34 UTC (rev 174563)
+++ releases/WebKitGTK/webkit-2.6/Source/WebKit2/Shared/Plugins/PluginQuirks.h	2014-10-10 08:01:33 UTC (rev 174564)
@@ -92,6 +92,9 @@
         // Some ports don't support windowed plugins.
         ForceFlashWindowlessMode,
 
+        // Flash crashes when NPP_GetValue is called for NPPVpluginCancelSrcStream in windowed mode.
+        DoNotCancelSrcStreamInWindowedMode,
+
         // Windows specific quirks:
 #elif PLUGIN_ARCHITECTURE(WIN)
         // Whether NPN_UserAgent should always return a Mozilla user agent.

Modified: releases/WebKitGTK/webkit-2.6/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (174563 => 174564)


--- releases/WebKitGTK/webkit-2.6/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2014-10-10 06:56:34 UTC (rev 174563)
+++ releases/WebKitGTK/webkit-2.6/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2014-10-10 08:01:33 UTC (rev 174564)
@@ -507,6 +507,12 @@
 
 bool NetscapePlugin::shouldLoadSrcURL()
 {
+#if PLUGIN_ARCHITECTURE(X11)
+    // Flash crashes when NPP_GetValue is called for NPPVpluginCancelSrcStream in windowed mode.
+    if (m_isWindowed && m_pluginModule->pluginQuirks().contains(PluginQuirks::DoNotCancelSrcStreamInWindowedMode))
+        return true;
+#endif
+
     // Check if we should cancel the load
     NPBool cancelSrcStream = false;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to