RESOLVED WONTFIX30078
[GTK] Gtk-directfb and plugins
https://bugs.webkit.org/show_bug.cgi?id=30078
Summary [GTK] Gtk-directfb and plugins
vladimir
Reported 2009-10-05 09:36:54 PDT
It is impossible to build nightly webkit for gtk-directfb target, port is broken. That's because Netscape plugins call to low-level windowing subsystem directly, instead of calling to gtk or QT "wrapping stuff". The problem can be described as follows: 1) Compile-time problems: There are no X11-headers(problem lines looks like "#include X11/*" ), mainly used by npapi.h 2) There are no X11 libs, so even if you provide X11-headers at compile time, you will get link-time errors. The solution is to add some ifdefs to source files, plus some preprocessor macrodefinitions. Provided patches work pretty well for me (I use WebKit-r49078), at least GtkLauncher works good with "plugin-free" pages.
Attachments
GNUmakefile.am patch (432 bytes, patch)
2009-10-05 09:38 PDT, vladimir
no flags
npapi patch (802 bytes, patch)
2009-10-05 09:38 PDT, vladimir
no flags
PluginPackageGtk patch (483 bytes, patch)
2009-10-05 09:39 PDT, vladimir
no flags
PluginViewGtk patch (2.22 KB, patch)
2009-10-05 09:40 PDT, vladimir
no flags
fixed all-in-one patch (5.59 KB, patch)
2009-10-06 03:44 PDT, vladimir
eric: review-
cummulative patch, Changelog filled with detailed comments (7.45 KB, patch)
2009-10-07 06:02 PDT, vladimir
gustavo: review-
vladimir
Comment 1 2009-10-05 09:38:22 PDT
Created attachment 40634 [details] GNUmakefile.am patch
vladimir
Comment 2 2009-10-05 09:38:44 PDT
Created attachment 40635 [details] npapi patch
vladimir
Comment 3 2009-10-05 09:39:38 PDT
Created attachment 40636 [details] PluginPackageGtk patch
vladimir
Comment 4 2009-10-05 09:40:03 PDT
Created attachment 40637 [details] PluginViewGtk patch
vladimir
Comment 5 2009-10-06 03:44:21 PDT
Created attachment 40707 [details] fixed all-in-one patch
Eric Seidel (no email)
Comment 6 2009-10-06 09:47:06 PDT
Comment on attachment 40707 [details] fixed all-in-one patch This change has a bunch fo changes which are not explained by the ChangeLog. Like the XP_UNIX stuff? Please add a more detailed ChangeLog explaining why your'e adding these #ifs to various sections.
vladimir
Comment 7 2009-10-07 06:02:18 PDT
Created attachment 40780 [details] cummulative patch, Changelog filled with detailed comments
Gustavo Noronha (kov)
Comment 8 2009-10-08 16:03:32 PDT
Comment on attachment 40780 [details] cummulative patch, Changelog filled with detailed comments > Index: WebCore/plugins/npapi.cpp > =================================================================== > --- WebCore/plugins/npapi.cpp (revision 49240) > +++ WebCore/plugins/npapi.cpp (working copy) > @@ -108,9 +108,11 @@ const char* NPN_UserAgent(NPP instance) > { > PluginView* view = pluginViewForInstance(instance); > > +#if ENABLE(NETSCAPE_PLUGIN_API) > if (!view) > return PluginView::userAgentStatic(); > > +#endif > return view->userAgent(); > } > > @@ -138,8 +140,10 @@ NPError NPN_GetValue(NPP instance, NPNVa > { > PluginView* view = pluginViewForInstance(instance); > > +#if ENABLE(NETSCAPE_PLUGIN_API) > if (!view) > return PluginView::getValueStatic(variable, value); > +#endif > > return pluginViewForInstance(instance)->getValue(variable, value); > } These two changes look a bit weird to me. This file is supposed to implement the netscape plugin API, so disabling it should probably not include the files at all, or have empty implementations for everything? Can these checks be moved up? The changelog is pretty detailed, thanks for that! I think you'll want to wrap the lines at a reasonable width, though, say, between 80 and 100 characters. > +#if ENABLE(NETSCAPE_PLUGIN_API) > initializeBrowserFuncs(); > +#endif This is a bit strange, too, specially given that just a few lines bellow NPAPI seems to be being called: > > #if defined(XP_UNIX) > npErr = NP_Initialize(&m_browserFuncs, &m_pluginFuncs); Thanks,
Martin Robinson
Comment 9 2010-10-12 16:41:49 PDT
Any update on this?
Martin Robinson
Comment 10 2014-03-25 15:31:39 PDT
The directfb backend of GTK+ is long gone.
Note You need to log in before you can comment on or make changes to this bug.