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.
Created attachment 40634 [details] GNUmakefile.am patch
Created attachment 40635 [details] npapi patch
Created attachment 40636 [details] PluginPackageGtk patch
Created attachment 40637 [details] PluginViewGtk patch
Created attachment 40707 [details] fixed all-in-one patch
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.
Created attachment 40780 [details] cummulative patch, Changelog filled with detailed comments
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,
Any update on this?
The directfb backend of GTK+ is long gone.