Subject: CVS commit: pkgsrc/www/nspluginwrapper
From: Jared D. McNeill
Date: 2008-12-18 20:59:31
Message id: 20081218195931.DEA6B175D0@cvs.netbsd.org

Log Message:
Update nspluginwrapper to 1.1.10, ok abs@.

Changes:

2008-12-07 22:35  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Destroy plugin window only if PluginInstance
	  is finalize'd. This is because an NPPVpluginScriptableNPObject
	  can still hold a reference to it (and a call to
	  NPClass::Invalidate() would fail in that case).

2008-12-07 22:30  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime-impl.h, src/npruntime.c: Use NPW memory allocator
	  for NPObjectInfo objects. Reference count PluginInstance bound
	  to an NPObject if it is known at NPClass::allocate() time.

2008-12-07 22:02  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c: Re-add refcount debugging
	  info for NPN_{Create,Retain,Release}Object().

2008-12-07 21:48  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Remove delayed NPN_InvalidateRect() code as
	  it's no longer necessary with RPC synchronous messaging.

2008-12-07 19:25  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Make NPN_ReleaseObject() use
	  rpc_method_invoke_possible() to check whether we can send it
	  immediately. This detects the case where a call is made after
	  rpc_method_send_reply() but before we return from the
	  rpc_dispatch() handler.

2008-12-07 19:22  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c, src/rpc.h: Implement synchronous messaging. aka turns
	  an async call (i.e. an rpc_method_invoke() with a connection in
	  server mode) into a synchronous one. That way, the browser is
	  notified that the plugin wants to make a call and then puts self
	  into condition to receive the message (normal rpc_dispatch() or
	  at the end of a toplevel NPP_*() function).

	  This makes it RPC protocol v2.6.

2008-12-07 15:30  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-concurrent.c: Improve concurrent test to check we
	  get the right answers (in case nested handling got wrong).
	  Besides, make sure the client waits for all server's incoming
	  calls prior to rpc_test_exit()'ing.

2008-12-07 15:24  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-common.c: Make sure to handle RPC on both ends,
	  including the client's side.

2008-12-07 08:12  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Fix NPP_HandleEvent() return value on error.

2008-12-07 08:10  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c: Add checks
	  for all rpc_method_invoke() functions.

2008-12-07 08:06  Gwenole Beauchesne <gb.public@free.fr>

	* src/debug.h: Add npw_return_if_fail() and
	  npw_return_val_if_fail() helpers.

2008-12-07 07:16  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c, src/rpc.h, tests/test-rpc-nested-2.c: Add
	  rpc_method_invoke_possible() interface to check whether we are
	  ready to call rpc_method_invoke() or not. i.e. in particular, if
	  we are not trying to invoke functions after
	  rpc_method_send_reply() and before we return from an RPC method
	  handler.

2008-12-06 18:21  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-common.c, tests/test-rpc-concurrent.c,
	  tests/test-rpc-nested-1.c, tests/test-rpc-types.c: Use helpers.
	  In particular, don't use g_assert() but rather RPC_TEST_ENSURE()
	  or RPC_TEST_ENSURE_NO_ERROR() which always evaluate.

2008-12-06 18:13  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, tests/test-rpc-nested-2.c: Add another testcase for
	  nested rpc_method_invoke(). This time, we are also emitting a
	  call just after an rpc_method_send_reply(). Note: this is not
	  fixed yet.

2008-12-06 18:11  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-common.h: Add helpers.

2008-12-06 18:10  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, tests/test-rpc-nested-1.c, tests/test-rpc-nested.c:
	  Rename.

2008-12-06 09:08  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Rework the XEMBED hack. Don't let the browser
	  cause Gtk to kill our window. i.e. don't process WM_DELETE_EVENT
	  sent by the browser GtkSocket. That way, we will kill the window
	  ourselves in NPP_Destroy().

2008-12-04 21:31  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Process delayed calls in NPP_Destroy() only if
	  PluginInstances match. Besides, don't care about pending
	  NPN_InvalidateRect() requests if we already know the instance
	  will pass away soon (i.e. we are in NPP_Destroy()).

2008-12-03 22:56  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Delay all NPN_InvalidateRect() messages. An
	  intermediate solution may be to delay the messages only if there
	  is actually incoming RPC. Postpone this optimization for a
	  future version (and smarter strategy to "compress" the
	  region/requests).

2008-12-03 20:51  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime-impl.h, src/npruntime.c: Add debug messages for
	  NPClass::invoke_*() functions.

2008-12-02 21:49  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c: Fix invalid RPC beyond
	  NPP_Destroy(). This fixes the following scenario:

	  Browser: NPP_Destroy()
	  -> rpc_method_invoke()
	  Viewer: NPN_InvalidateRect()
	  -> rpc_method_invoke()
	  -> rpc_dispatch() pending messages
	  -> handle_NPP_Destroy()
	  -> PluginInstance is killed
	  -> send PluginInstance but it was killed...

	  Now, with the help of reference counting, we can hold the
	  PluginInstance. Besides, NPP_Destroy() will reset instance_id,
	  thus RPC won't be sending a "valid" PluginInstance to the other
	  side, thus reducing the other side call to a no-op. i.e. don't
	  try to do anything with the browser NPP instance that was killed
	  previously (the NPP_Destroy() call would have completed by the
	  time the browser-side needs to handle incoming RPC).

2008-12-02 21:00  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Preserve PluginInstance objects during
	  invoke_NPN_*() function calls. This is because
	  rpc_method_invoke() can handle pending messages, among which an
	  NPP_Destroy() is possible. Since the latter unref the
	  PluginInstance, we could arrive in a situation where we are
	  dereferencing deallocated data.

2008-12-02 20:44  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.h, src/npw-viewer.c, src/npw-wrapper.c: Replace
	  all RPC_TYPE_NPP with RPC_TYPE_NPW_PLUGIN_INSTANCE.

2008-12-02 20:15  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-rpc.h: Add RPC_TYPE_NPW_PLUGIN_INSTANCE
	  to marshal PluginInstance objects.

2008-12-01 23:01  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Pass PluginInstance to invoke_NP*() functions.
	  The next step is to replace RPC_TYPE_NPP with
	  RPC_TYPE_NPW_PLUGIN_INSTANCE.

2008-12-01 21:55  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c: Minor cleanups. Make sure
	  plugin->instance is NULL on exit from NPP_Destroy().

2008-12-01 21:47  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.h: Remove extraneous "extern" linkage keyword,
	  this is default behaviour.

2008-12-01 21:46  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.c, src/npw-common.h, src/npw-viewer.c,
	  src/npw-wrapper.c: Add infrastructure to refcount PlugInstances.

2008-12-01 20:28  Gwenole Beauchesne <gb.public@free.fr>

	* configure, src/npruntime.c, src/npw-viewer.c: Disable PID check,
	  this is not really useful unless a plugin does fork() without
	  exec(). This could be reactivated with --enable-pid-check though.

2008-12-01 20:06  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix pid_check() for USE_PID_CHECK == 0 (thanks
	  Martin Stransky).

2008-12-01 20:03  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Bump release for development.

2008-11-30 23:03  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-11-30 23:00  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Drop use of "extern inline" as some (older)
	  compilers don't support ISO C semantics.

2008-11-30 22:54  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS, nspluginwrapper.spec: Updates for 1.1.8.

2008-11-30 22:39  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Process all pending calls in NPP_Destroy() as
	  the data could become junk afterwards.

2008-11-30 22:34  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Don't delay call to NPN_ReleaseObject() if we
	  can handle it now.

2008-11-30 21:52  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c: Add rpc_method_*_valist() variants, internal only for
	  now.

2008-11-30 21:24  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Slightly improved delayed call mechanism. This
	  is not fully satisfying yet as I believe a pipe should be better
	  (glib GSource creation is slow). Fortunately, there doesn't seem
	  to be that many calls to NPN_ReleaseObject().

2008-11-30 21:07  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-malloc.h: Fix typo.

2008-11-30 20:47  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c: Delay calls to
	  NPN_ReleaseObject. Revert:

	  2008-11-22 10:43 Gwenole Beauchesne <gb.public@free.fr>

	  * src/npw-wrapper.c: Fix NPN_ReleaseObject() reply, i.e. don't
	  dereference npobj after the real call to NPN handler as it could
	  be deallocated.

2008-11-30 17:38  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c: Add
	  missing debugging messages.

2008-11-30 17:21  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c: Fix pid_check() for the browser-side
	  implementation.

2008-11-30 17:14  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c: Extend PID check to npruntime
	  bridge.

2008-11-30 15:52  Gwenole Beauchesne <gb.public@free.fr>

	* lsb-build/stub_libs/libc_main.c: Add dirfd() for
	  npw_close_all_open_files().

2008-11-30 15:47  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Check that processes fork()'ed off
	  npviewer.bin don't issue RPC calls. Initial patch by Martin
	  Stransky.

2008-11-30 14:56  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c: Rename is_npclass_valid() to
	  is_valid_npobject_class().

2008-11-30 14:50  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-wrapper.c: Remove wrong comment. The
	  errors previously noticed were due to the fact that NPObjects
	  were looked up in the wrong (previously deallocated) hash table.
	  We now preserve that hash table.

2008-11-30 14:33  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Likewise for npobject_bridge_destroy().

2008-11-30 14:18  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Move id_init() into NP_Initialize(), likewise
	  for id_kill() into NP_Shutdown(). Those functions are guaranteed
	  to be called only once. g_NP_Initialize() and g_NP_Shutdown()
	  could be called several times for the restart machinery but we
	  don't want to clobber with IDs generated previously.

2008-11-30 13:17  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Kill viewer if the parent browser died (Martin
	  Stransky).

2008-11-30 13:08  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-wrapper.c: Use
	  rpc_connection_set_error_callback() to detect and handle an RPC
	  connection loss (Martin Stransky). In that case, all NPObjects
	  are invalidated. XXX: this is too global.

2008-11-30 12:10  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime-impl.h, src/npruntime.c: Add a mechanism to stop
	  calls to NPClass functions if the other end died. We get
	  notified of this situation through npruntime_deactivate().
	  Initial patch by Martin Stransky.

2008-11-30 11:09  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c, src/rpc.h: Introduce
	  rpc_connection_set_error_callback() to register a callback for
	  RPC errors (Martin Stransky).

2008-11-30 10:41  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Warn out when we explicitly don't support
	  specific variables for XPCOM in NPN_GetValue() (Martin Stransky).

2008-11-30 09:18  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c: Add SOCK_CLOEXEC to socket() flags. This is a Linux
	  >= 2.6.27 extension.

2008-11-30 09:01  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c, src/utils.c, src/utils.h: Close all open
	  files on fork(). Initial patch by Dan Walsh.

2008-11-29 14:49  Gwenole Beauchesne <gb.public@free.fr>

	* utils/npw-shadow.c: Nuke dead file.

2008-11-29 14:47  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Make it possible to execute native plugins
	  directly (i.e. without npviewer.bin) if either "NPW_DIRECT_EXEC"
	  or "NPW_DIRECT_EXECUTION" environment variable is set.

2008-11-29 14:03  Gwenole Beauchesne <gb.public@free.fr>

	* src/utils.c: Fix id_init() to create a new hash if it does not
	  exist already.

2008-11-25 22:11  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.sh: Make `which' failures silent for
	  soudwrappers. It's also correct to work without a soundwrapper
	  if the audio device is correctly multiplexed (Stanislav Brabec).

2008-11-25 21:20  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Bump release for development.

2008-11-24 18:35  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS: Fix typo.

2008-11-23 21:57  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-11-23 06:43  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix a warning (enumeration value not handled
	  in switch).

2008-11-23 06:39  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS, nspluginwrapper.spec: Updates for 1.1.6.
	* README: Fix typos and mention trademark as there are commercial
	  interests (and be on the safe side).

2008-11-22 15:33  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-11-22 15:20  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c: Fix string_of_NPVariant() for NULL arguments.

2008-11-22 15:04  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c: Release args variants prior to calling
	  rpc_method_send_reply().

2008-11-22 13:49  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c, src/utils.c, src/utils.h:
	  Improve debug info for NP[PN]_[SG]etValue().

2008-11-22 13:23  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Fix debug message in NPN_Write().

2008-11-22 10:52  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Fix memory leak in NPN_GetStringIdentifiers()
	  RPC handler.

2008-11-22 10:50  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-malloc.h: Add NPW_MemNew() and NPW_MemNew0() helpers.

2008-11-22 10:43  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Fix NPN_ReleaseObject() reply, i.e. don't
	  dereference npobj after the real call to NPN handler as it could
	  be deallocated.

2008-11-22 10:01  Gwenole Beauchesne <gb.public@free.fr>

	* src/debug.c, src/debug.h, src/npruntime.c, src/npw-viewer.c,
	  src/npw-wrapper.c: Indent debugging messages.

2008-11-22 08:54  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c: Improve
	  debugging messages. Nested invocations could confuse what the
	  return value actually refers to.

2008-11-22 07:54  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Don't make the sync message a WARNING.

2008-11-22 07:52  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Always synchronize NPObject::referenceCount in
	  case the plugin wants to inspect that. Synchronization through
	  NPN_RetainObject()/NPN_ReleaseObject() should be enough though.

2008-11-22 07:37  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix plugin window resize in XEMBED hack mode.

2008-11-17 21:55  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-plugins.html: Newer demo for the SqueakVM plugin.

2008-11-17 21:40  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c: Lower priority of RPC
	  handlers.

2008-11-15 21:50  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-player.c: Fix for "javascript:" requests. Don't make
	  them fail because we are starting those streams manually.

2008-11-15 21:45  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.h: Fix npw_get_stream_instance().

2008-11-09 17:02  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Update NPP_Write() comment for negative array
	  lengths.

2008-11-09 16:56  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Propagate NPP_Write() with negative lengths
	  since the plugin may want to handle that case (e.g. close a
	  stream?). In practise, this doesn't make much sense either.
	  NPAPI specs need to be updated to mean "close the stream" if
	  NPP_WriteReady() returns a negative value.

2008-11-09 16:46  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c, tests/test-rpc-types.c: Actually, since an array of
	  negative size doesn't make sense, let it be the responsibility
	  of the caller to check for bounds.

2008-11-09 16:38  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c, tests/test-rpc-types.c: Size of the array to
	  RPC_TYPE_ARRAY argument is now an int32. Allow for NULL arrays
	  or arrays of negative length. In that case, the returned array
	  pointer in the other size is NULL.

2008-11-09 15:26  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-types.c: Add tests for arrays. Fix
	  rpc_test_signature() for arrays.

2008-11-09 15:24  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c: Allow arrays of uint64 or double.

2008-11-09 14:29  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-common.c, tests/test-rpc-common.h,
	  tests/test-rpc-concurrent.c, tests/test-rpc-nested.c,
	  tests/test-rpc-types.c: Fix indentation (8-char tabs, not 4).

2008-11-09 14:18  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Enable glib memory hooks by default if not
	  configuring with --enable-generic.

2008-11-09 14:13  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Bump version for development.

2008-11-06 22:36  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-11-06 22:28  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS, README, nspluginwrapper.spec: Updates for 1.1.4.

2008-11-06 22:06  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Build glib memory hooks only if system glib supports
	  g_slice_alloc().

2008-11-04 23:16  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-common.c, src/npw-rpc.c,
	  src/npw-wrapper.c: Fix remaining memory leaks in npruntime
	  bridge.

	  The strategy with NPVariants assumes that NPObject methods will
	  preserve the NPVariant value by copying it (e.g. a string) or
	  increasing the refcount of the underlying NPObject. IOW, they
	  don't assume the value is live beyond the call to that method
	  without preserving it.

	  Based on this assumption, we can write the following rules:
	  - Any NPVariant value shall be released if it comes from an
	  rpc_method_get_args(). That's an nspluginwrapper requirement
	  - Any NPVariant result value shall be released when the plugin
	  no longer needs it. That's an NPAPI requirement, implemented by
	  the plugin.

	  Thus, we deal with NPObjects as follows:
	  - Prior to sending an NPObject (in an NPVariant), the browser
	  ref()'s it
	  - After having received an NPObject, the browser ref()'s it i.e.
	  since this is a browser-side object, it's browser side
	  responsibility to ref()' the object.

	  The plugin will unref() the NPObject "naturally" when (i) the
	  NPVariant got from rpc_method_get_args() is released, or (ii)
	  the NPVariant is explicitly unref()'ed per NPAPI specs for
	  NPVariant result values.

2008-11-04 21:21  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-malloc.c: Fix copy-paste error.

2008-11-03 23:04  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Don't try to NPP_Write() erroneous buffers of
	  supposedly negative length.

	  Actually, we can get to that case if NPP_WriteReady() returned
	  -1 or another negative value, in general. Some browsers
	  (Konqueror, Google Chrome) send data through NPP_Write() anyway.
	  Others (Firefox, WebKit) actually suspend the stream temporarily.

	  Note that returning -1 here will destroy the stream. This is
	  compatible with the expected behaviour. e.g. the DiamondX test
	  plugin wants that. Is there any other "real" plugin in that case
	  too?

2008-11-03 22:29  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Use the XEMBED hack (GTK_WINDOW_POPUP toplevel
	  widget instead of GtkPlug) only with Gtk2-based browsers. IOW,
	  this restores the older behaviour for Konqueror as this causes
	  problems there.

2008-11-03 22:20  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Fix NPN_GetValue() with NPNVToolkit.

	  Actually, it was not a problem before because we used to always
	  return NPNVGtk2. However, we now want to detect what toolkit the
	  parent browser is using.

2008-11-02 15:42  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix XEMBED support. Actually, workaround Gtk
	  and Firefox bugs. i.e. don't let them kill the plugin window by
	  killing the old page window without calling either NPP_Destroy()
	  or SetWindow(instance, NULL) first.

2008-11-02 15:04  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.h: Fix npw_get_plugin_instance() for CrossOver
	  Plugin. They make a local copy of the original instance in stack
	  while preserving the same plugin private data (our
	  PluginInstance, fortunately!).

2008-10-29 05:40  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-common.h, src/npw-wrapper.c: Don't
	  claim we support interfaces we currently don't, i.e. NPAPI >=
	  0.18 is not fully implemented yet.

2008-10-29 05:26  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix NPP_URLNotify() (thanks to Bennet Yee).

2008-10-29 05:18  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.c, src/npw-common.h: Add an NPW_Identifier type
	  useful for implementing local NPIdentifier cache. It's silly to
	  do an RPC round trip simply to retrieve an integer or string
	  value. The NPRuntime caching strategy is not fully settled yet
	  though.

2008-10-29 05:14  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-rpc.h, src/npw-viewer.c,
	  src/npw-wrapper.c: Create a specific NPUTF8 string marshaler.
	  The difference with normal RPC_TYPE_STRING is the recv()
	  allocates the string with NPN memory allocators.

	  Besides, it's technically possible to pass a NULL argument to
	  the recv() handler and means "I don't care of the data you
	  received. Drop it, thanks". In practise, this is not useful but
	  all marshalers should be safe to NULL arguments and still work
	  afterwards (i.e. do receive data) in that case.

2008-10-29 04:05  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-malloc.c: Revert to libc free() if we don't have the
	  'Glib' magic in memblock.

2008-10-27 23:22  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Use new memory allocators.

2008-10-27 23:14  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, configure, src/npw-common.c, src/npw-malloc.c,
	  src/npw-malloc.h: Add memory allocation wrappers over standard
	  libc or glib.

2008-10-27 21:50  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.c: Remove checks, those functions shall be used
	  only if they are known to be usable in the first place.

2008-10-26 23:07  Gwenole Beauchesne <gb.public@free.fr>

	* TODO: Updates.

2008-10-26 23:01  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-rpc.c: Use NPN memory allocation
	  routines for NPVariant (NPString).

2008-10-26 22:31  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Use common instance stuff.

2008-10-26 22:26  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.h, src/npw-viewer.c, src/npw-wrapper.c: Add
	  common PluginInstance|StreamInstance code.

2008-10-26 22:23  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-common.c: Add memory allocation wrappers.

2008-10-26 21:36  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, src/npruntime.c, src/npw-common.c, src/npw-common.h,
	  src/npw-viewer.c, src/npw-wrapper.c, src/sysdeps.h: Clean up
	  common code.

2008-10-26 20:51  Gwenole Beauchesne <gb.public@free.fr>

	* src/debug.h: Add very verbose debug mode with filename:line
	  additional specification. Disabled by default, for developers
	  that want to debug things. Note this uses a GNU C extension.

2008-10-26 17:01  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c: Cosmetics. Also fix some memory leaks.

2008-10-26 16:26  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Print returned pointer in NPN_MemAlloc() for
	  debugging.

2008-10-26 16:23  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime-impl.h, src/npruntime.c, src/npw-viewer.c,
	  src/npw-wrapper.c: Move NPVariant helpers to npruntime.c. Fix
	  string_of_NPVariant() for NPString. Define
	  NPN_ReleaseVariantValue() and NPN_ReleaseObject() appropriately
	  in both the wrapper and the viewer.

2008-10-26 15:38  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Allocate an empty string ('') for
	  NPString::utf8length == 0. This is what Firefox does.

2008-10-26 07:55  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Avoid double object destruction with the Flash
	  Player plugin.

2008-10-25 17:42  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/utils.c, src/utils.h: Add
	  string_of_NPEvent_type() for debug.

2008-10-25 17:36  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Fix typo for debug.

2008-10-25 17:31  Gwenole Beauchesne <gb.public@free.fr>

	* src/gtk2xtbin.c, src/gtk2xtbin.h: Sync with firefox3 sources.

2008-10-21 21:45  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Check for the X Toolkit correctly (fully).

2008-10-13 19:56  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Bump version for development.

2008-10-12 16:10  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile: Fix make tarball.

2008-10-12 16:07  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-10-12 16:01  Gwenole Beauchesne <gb.public@free.fr>

	* README: Mention the standalone plugins player.

2008-10-12 15:59  Gwenole Beauchesne <gb.public@free.fr>

	* README, src/npw-config.c: Update doc for nspluginwrapper
	  -n|--native flag.

2008-10-12 15:21  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS, nspluginwrapper.spec: Updates for 1.1.2 release.

2008-10-12 15:19  Gwenole Beauchesne <gb.public@free.fr>

	* README: Flash Player 10 release candidate also works.

2008-10-12 15:05  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, configure, src/npw-config.c: Add support for Open
	  Solaris (2008.05).

2008-10-12 15:04  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.sh: Fix architecture detection on Solaris/i386.

2008-10-12 15:03  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-config.c: Allow wrapping of native plugins through the
	  -n|--native option.

2008-10-12 15:00  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-config-template.h: Try to guess Solaris binaries with
	  .SUNW_version sections.

2008-10-12 13:55  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, utils/install.sh: Add install program.

2008-10-12 08:31  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Fix build on NetBSD 3.1.

2008-10-12 08:22  Gwenole Beauchesne <gb.public@free.fr>

	* configure, src/rpc.c: Fix calculation of sockaddr_un length.

2008-10-06 21:55  Gwenole Beauchesne <gb.public@free.fr>

	* configure, src/rpc.c: Make it possible to define the maximum of
	  time (in seconds) to wait for the plugin to connect. This can be
	  set both at configure-time (--rpc-init-timeout) or at run-time
	  (NPW_INIT_TIMEOUT) (Initial patch by Geraint North).

2008-10-06 21:25  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Detect ARM (Geraint North).

2008-10-05 21:45  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c: Revert rev
	  647 (renaming of g_rpc_connection to g_npn_connection).

2008-10-05 21:43  Gwenole Beauchesne <gb.public@free.fr>

	* src/rpc.c: Handle possible _rpc_dispatch_until() errors in
	  rpc_method_invoke().

2008-10-05 21:39  Gwenole Beauchesne <gb.public@free.fr>

	* TODO, src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c,
	  src/rpc.c, tests/test-rpc-concurrent.c, tests/test-rpc-nested.c,
	  tests/test-rpc-types.c: Rework RPC code to cope with concurrent
	  rpc_method_invoke(). This function is now atomic. That is,
	  method id and its arguments are marshalled in one shot, there is
	  no intermediate wait for MSG_ACK.

	  Notable change also includes the fact that optimization for
	  no-argument or no-return value cases is now gone. i.e. each
	  rpc_method_invoke() shall have an rpc_method_get_args() on the
	  other side, even if there is no arg passed. Besides, each
	  rpc_method_wait_for_reply() shall have an
	  rpc_method_send_reply() on the other side, even if the function
	  normally doesn't return anything.

	  This optimization could be brought back into V3 protocol
	  specification. Current revision is now V2.5.

2008-10-05 21:03  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-common.c: Cleaner exit code path.

2008-10-05 16:32  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-concurrent.c: Error out early for invalid message
	  types.

2008-10-05 16:27  Gwenole Beauchesne <gb.public@free.fr>

	* tests/test-rpc-concurrent.c: Default to silent mode and 5000
	  messages.

2008-10-05 16:08  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile, tests/test-rpc-common.c, tests/test-rpc-common.h,
	  tests/test-rpc-concurrent.c, tests/test-rpc-nested.c,
	  tests/test-rpc-types.c: Add tests for new RPC implementation.

2008-10-04 13:31  Gwenole Beauchesne <gb.public@free.fr>

	* lsb-build/headers/glib-2.0/glib.h,
	  lsb-build/stub_libs/libglib-2.0.c: Add basic GSlice support
	  thunks.

2008-10-04 13:30  Gwenole Beauchesne <gb.public@free.fr>

	* src/utils.c, src/utils.h: Add npw_asprintf().

2008-10-04 08:02  Gwenole Beauchesne <gb.public@free.fr>

	* src/npruntime.c, src/npw-viewer.c, src/npw-wrapper.c: Rename
	  g_rpc_connection to g_npn_connection.

2008-09-29 22:03  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c: Fix X visual marshaling (Flash
	  10, initial patch by Martin Stransky).

2008-07-07 19:37  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Bump version for development.

2008-07-06 20:59  Gwenole Beauchesne <gb.public@free.fr>

	* ChangeLog: Generated by svn2cl.

2008-07-06 20:55  Gwenole Beauchesne <gb.public@free.fr>

	* nspluginwrapper.spec: Add libnoxshm.so to filelist.

2008-07-06 20:53  Gwenole Beauchesne <gb.public@free.fr>

	* NEWS, README, TODO, nspluginwrapper.spec: Updates for 1.1.0
	  release.

2008-07-06 20:38  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Add ALLOW_WINDOWLESS_PLUGINS compile-time
	  macro to allow/forbid windowless plugins.

2008-07-06 20:14  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile: Add LN_S definition for ln -sf command.

2008-07-06 20:09  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c, src/npw-wrapper.c: Implement
	  NPN_InvalidateRect() for Flash Player 10 beta 2.

2008-07-06 19:52  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-wrapper.c: Flush the X output buffer so that the call to
	  gdk_pixmap_foreign_new() (and thus XGetGeometry()) can work in
	  the viewer. Otherwise, we sometimes get a BadDrawable.

2008-07-06 19:47  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Fix NPNVnetscapeWindow wrapper to create a
	  GdkWindow from it as windowless plugins expect to find a
	  toplevel gdk window (and gtk window TBD).

2008-07-06 19:16  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Synchronize more NPWindow items in successive
	  NPP_SetWindow() calls, i.e. updates case.
	  create_window_attributes() and destroy_window_attributes() now
	  operate on an NPSetWindowCallbackStruct directly.

2008-07-06 17:05  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Make sure to commit the pixmap in
	  NPN_HandleEvent() for GraphicsExpose events.

2008-07-06 17:02  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-viewer.c: Add support for windowless plugins.

2008-07-06 14:55  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c, src/npw-wrapper.c: Implement
	  NPP_HandleEvent().

2008-07-06 14:28  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.h: Add missing method and type ids for windowless
	  plugins.

2008-07-06 14:23  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c: Marshal
	  NPSetWindowCallbackStruct: only reconstruct XVisual based on the
	  visualID we pass-through RPC. This will be useful for windowless
	  plugins support.

2008-07-06 13:14  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c, src/npw-wrapper.c: Propagate
	  NPNVnetscapeWindow.

2008-07-04 20:57  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c: Propagate
	  NPNVSupportsWindowless.

2008-07-04 20:52  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c, src/npw-viewer.c, src/npw-wrapper.c: Implement
	  NPN_SetValue() for boolean variables only.

2008-07-04 20:31  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.c: Add fix for Mozilla bug #406251:
	  NPVariant.intValue is now a signed int.

2008-07-04 20:26  Gwenole Beauchesne <gb.public@free.fr>

	* src/npw-rpc.h: Add missing methods for NPN_SetValue(),
	  NPN_Enumerate() and NPN_Construct().

2008-07-04 20:20  Gwenole Beauchesne <gb.public@free.fr>

	* npapi/npapi.h, npapi/npruntime.h, npapi/npupp.h: Update NPAPI
	  headers to 0.19.

2008-07-01 20:38  Gwenole Beauchesne <gb.public@free.fr>

	* Makefile: Fix build on platforms that are not biarch devel
	  capable.

2008-06-29 21:17  Gwenole Beauchesne <gb.public@free.fr>

	* configure: Document --enable-strip.

Files:
RevisionActionfile
1.11modifypkgsrc/www/nspluginwrapper/Makefile
1.2modifypkgsrc/www/nspluginwrapper/PLIST
1.6modifypkgsrc/www/nspluginwrapper/distinfo
1.5modifypkgsrc/www/nspluginwrapper/patches/patch-aa
1.3addpkgsrc/www/nspluginwrapper/patches/patch-ab