diff options
Diffstat (limited to 'abs/core-testing/qt/QtWebKit_Flash.patch')
-rw-r--r-- | abs/core-testing/qt/QtWebKit_Flash.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/abs/core-testing/qt/QtWebKit_Flash.patch b/abs/core-testing/qt/QtWebKit_Flash.patch deleted file mode 100644 index 102f73c..0000000 --- a/abs/core-testing/qt/QtWebKit_Flash.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- PluginPackageQt.cpp.orig 2010-06-30 21:29:47.178707288 +0000 -+++ PluginPackageQt.cpp 2010-06-30 21:35:40.185441603 +0000 -@@ -36,6 +36,8 @@ - - namespace WebCore { - -+typedef void gtkInitFunc(int *argc, char ***argv); -+ - bool PluginPackage::fetchInfo() - { - if (!load()) -@@ -100,7 +102,8 @@ - - NP_InitializeFuncPtr NP_Initialize; - NPError npErr; -- -+ gtkInitFunc* gtkInit; -+ - NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize"); - m_NPP_Shutdown = (NPP_ShutdownProcPtr)m_module->resolve("NP_Shutdown"); - -@@ -157,6 +160,26 @@ - m_browserFuncs.enumerate = _NPN_Enumerate; - m_browserFuncs.construct = _NPN_Construct; - -+ // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by -+ // explicitly forcing the initializing of Gtk, i.e. calling gtk_init, -+ // whenver the symbol is present in the plugin library loaded above. -+ // Note that this workaround is based on code from the NSPluginClass ctor -+ // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file. -+ gtkInit = (gtkInitFunc*)m_module->resolve("gtk_init"); -+ if (gtkInit) { -+ // Prevent gtk_init() from replacing the X error handlers, since the Gtk -+ // handlers abort when they receive an X error, thus killing the viewer. -+#ifdef Q_WS_X11 -+ int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0); -+ int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0); -+#endif -+ gtkInit(0, 0); -+#ifdef Q_WS_X11 -+ XSetErrorHandler(old_error_handler); -+ XSetIOErrorHandler(old_io_error_handler); -+#endif -+} -+ - #if defined(XP_UNIX) - npErr = NP_Initialize(&m_browserFuncs, &m_pluginFuncs); - #else |