This patch contains further fixes to the browser plugin:(1) As Dan suggested, use -module -avoid-version. This still installs a static library and the linker script, both of which are unhelpful to have in the plugins directory, so I have to delete them by hand. Couldn't see any option in the libtool info to not have it build or install those.
(2) Use the global ENABLE_DEBUG setting to turn on/off debug messages. (3) Move the debug() function into a common header file. (4) Include test.html, which I missed out from the first patch.(5) Put #if 1 ... #endif around the Gtk toolkit test. I'll probably remove this test altogether in future since (in theory) XEmbed should let you embed a widget from any toolkit in any other toolkit, so this test doesn't really matter.
Rich. -- Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/ Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 03798903
diff -r 1b674865392b .hgignore --- a/.hgignore Fri Jan 11 09:41:04 2008 -0600 +++ b/.hgignore Fri Jan 11 16:15:14 2008 +0000 @@ -33,8 +33,8 @@ Makefile\.in$ ^src/vncmarshal\.[ch]$ ^plugin/\.deps/ ^plugin/\.libs/ -^plugin/libgtk_vnc_plugin.la$ -^plugin/libgtk_vnc_plugin_la-.* +^plugin/gtk-vnc-plugin.la$ +^plugin/gtk_vnc_plugin_la-.* ^plugin/gtk-vnc-plugin.so syntax: glob diff -r 1b674865392b plugin/Makefile.am --- a/plugin/Makefile.am Fri Jan 11 09:41:04 2008 -0600 +++ b/plugin/Makefile.am Fri Jan 11 16:15:14 2008 +0000 @@ -1,34 +1,29 @@ if ENABLE_PLUGIN if ENABLE_PLUGIN -# What we really want is 'noinst_LTLIBRARIES', so that it builds the -# shared library but lets us control how we install it. However -# if you do that, automake thinks you're trying to build a "libtool -# convenience library" and no longer builds a shared library at all. -# Very unhelpful. So instead build and install the library in libdir -# but delete it in the install hook below and install it where we want. -# I hate automake and libtool. -lib_LTLIBRARIES = libgtk-vnc-plugin.la +plugindir = $(libdir)/mozilla/plugins +plugin_LTLIBRARIES = gtk-vnc-plugin.la -libgtk_vnc_plugin_la_SOURCES = \ +gtk_vnc_plugin_la_SOURCES = \ gtk-vnc-plugin.c gtk-vnc-plugin.h npshell.c npunix.c -libgtk_vnc_plugin_la_LIBADD = \ +gtk_vnc_plugin_la_LIBADD = \ ../src/libgtk-vnc-1.0.la @GTK_LIBS@ @FIREFOX_PLUGIN_LIBS@ -libgtk_vnc_plugin_la_CFLAGS = \ +gtk_vnc_plugin_la_LDFLAGS = \ + -module -avoid-version +gtk_vnc_plugin_la_CFLAGS = \ -I$(top_srcdir)/src @GTK_CFLAGS@ @FIREFOX_PLUGIN_CFLAGS@ \ - @WARNING_CFLAGS@ @WERROR_CFLAGS@ + @WARNING_CFLAGS@ @WERROR_CFLAGS@ @DEBUG_CFLAGS@ all-local: gtk-vnc-plugin.so -gtk-vnc-plugin.so: libgtk-vnc-plugin.la - cp .libs/libgtk-vnc-plugin.so.0.0.0 $@ +gtk-vnc-plugin.so: gtk-vnc-plugin.la + cp .libs/gtk-vnc-plugin.so $@ -install-exec-hook: - rm -f $(libdir)/libgtk-vnc-plugin.* - $(install_sh) -d $(libdir)/mozilla/plugins - $(install_sh) -c -m 0755 gtk-vnc-plugin.so $(libdir)/mozilla/plugins +# Only leave the .so file in the plugins directory. +install-data-hook: + rm -f $(plugindir)/gtk-vnc-plugin.a $(plugindir)/gtk-vnc-plugin.la EXTRA_DIST = README CLEANFILES = gtk-vnc-plugin.so -endif \ No newline at end of file +endif diff -r 1b674865392b plugin/gtk-vnc-plugin.c --- a/plugin/gtk-vnc-plugin.c Fri Jan 11 09:41:04 2008 -0600 +++ b/plugin/gtk-vnc-plugin.c Fri Jan 11 16:15:14 2008 +0000 @@ -40,18 +40,6 @@ #include "gtk-vnc-plugin.h" static void -debug (const char *msg, ...) -{ - va_list args; - - va_start (args, msg); - vfprintf (stderr, msg, args); - va_end (args); - fprintf (stderr, "\n"); - fflush (stderr); -} - -static void vnc_connected (GtkWidget *vnc G_GNUC_UNUSED, void *Thisv) { PluginInstance *This = (PluginInstance *) Thisv; diff -r 1b674865392b plugin/gtk-vnc-plugin.h --- a/plugin/gtk-vnc-plugin.h Fri Jan 11 09:41:04 2008 -0600 +++ b/plugin/gtk-vnc-plugin.h Fri Jan 11 16:15:14 2008 +0000 @@ -63,4 +64,20 @@ extern NPError GtkVNCDestroyWindow (NPP extern NPError GtkVNCDestroyWindow (NPP instance); extern int16 GtkVNCXHandleEvent (NPP instance, void* event); +#ifdef ENABLE_DEBUG +static inline void +debug (const char *msg, ...) +{ + va_list args; + + va_start (args, msg); + vfprintf (stderr, msg, args); + va_end (args); + fprintf (stderr, "\n"); + fflush (stderr); +} +#else +static inline void debug (const char *msg G_GNUC_UNUSED, ...) { } +#endif + #endif /* GTK_VNC_PLUGIN_H */ diff -r 1b674865392b plugin/npshell.c --- a/plugin/npshell.c Fri Jan 11 09:41:04 2008 -0600 +++ b/plugin/npshell.c Fri Jan 11 16:15:14 2008 +0000 @@ -84,18 +84,6 @@ Contributor(s): Adobe Systems Incorporat #include <npupp.h> #include "gtk-vnc-plugin.h" - -static void -debug (const char *msg, ...) -{ - va_list args; - - va_start (args, msg); - vfprintf (stderr, msg, args); - va_end (args); - fprintf (stderr, "\n"); - fflush (stderr); -} /*********************************************************************** * @@ -186,11 +174,13 @@ NPP_New(NPMIMEType pluginType G_GNUC_UNU if (err != NPERR_NO_ERROR || supportsXEmbed != PR_TRUE) return NPERR_INCOMPATIBLE_VERSION_ERROR; +#if 1 err = NPN_GetValue (instance, NPNVToolkit, (void *)&toolkit); if (err != NPERR_NO_ERROR || toolkit != NPNVGtk2) return NPERR_INCOMPATIBLE_VERSION_ERROR; +#endif instance->pdata = NPN_MemAlloc(sizeof(PluginInstance)); diff -r 1b674865392b plugin/test.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/test.html Fri Jan 11 16:15:14 2008 +0000 @@ -0,0 +1,18 @@ +<html> +<body> + + <h1>Gtk-VNC test</h1> + + <p>You will need to edit the source to + set <code>host</code>, <code>port</code> etc.</p> + + <embed type="application/x-gtk-vnc" + width="800" + height="600" + host="192.168.2.129" port="5900"> + </embed> + + <p>End of page</p> + +</body> +</html>
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature