[2009/01/02] nspluginwrapper 1.2.2
Fix support for the VLC plug-in
Fix memory deallocation in NPN_GetStringIdentifiers()
Fix return value if stream creation failed in standalone player
[2008/12/26] nspluginwrapper 1.2.0
Drop obsolete mkruntime scripts
Use valgrind if NPW_USE_VALGRIND=yes
Add support for SunStudio compilers
Add support for Flash Player 10 on OpenSolaris 2008.11
Fix build on non-Linux platforms
Fix NPP_Destroy() to keep NPP instances longer
Fix NPP_Destroy() to destroy the plugin windows
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.
* Don't wrap root plugins to system locations, keep them private
* Fix support for Acrobat Reader 8 (focus problems)
* Fix support for mozplugger (in full-debug mode)
* Fix support for WebKit
* Fix crashes with Flash Player 9 Update 3 (9.0.115)
* Fix build with Intel compiler
* Add support for IBM XLC compiler
* Improve error handling during RPC initialization (possible memory leak
on error)
* Improve error handling in NPP_WriteReady() and NPP_Write()
[2007/08/26] nspluginwrapper 0.9.91.5
Fix a memory leak in NPP_Destroy()
Fix DiamondX XEmbed example plugin
Fix focus problems (Debian bug #435912)
Add support for 64-bit plugins (Martin Stransky)
Add support for newer NPAPI 0.17 functions and variables
Add support for broken 64-bit Konqueror versions (run-time detect)
[2007/04/03] nspluginwrapper 0.9.91.4
Dont try to wrap native plugins
Fix build on NetBSD (David Brownlee)
Fix build on DragonFlyBSD (Steve OHara-Smith)
Fix build on Linux systems with SSP enabled by default (Kristian Hermansen)
binaries and libraries.
Add dependencies on the base, gtk2 and x11 Linux modules, which provide
shared libraries needed by npviewer.bin.
Bump the PKGREVISION to 1.
You do not need nspluginwrapper if the ABI of the plugin and browser are the
same, such as running a 32 bit Linux firefox and flash plugin under NetBSD.
No change on other platforms, so skipped PKGREVISION bump. Steve
has already fed the patches back to the author.
Currently the package hardcodes some search paths from /usr/pkg - I have
an sent a question to the author as to how he would best like to handle
those in his framework.
nspluginwrapper is an Open Source compatibility plugin for Netscape
4 (NPAPI) plugins. It separates the execution environment of the
plugin from the browser, allowing a plugin compiled for one ABI to
be used in a browser compiled for another.
For example the linux 32bit Adobe Flash plugin can be used in a
native Firefox under Linux/x86_64, NetBSD and FreeBSD platforms.
To install the Linux flash player into a native Firefox browser:
- Also install multimedia/ns-flash and multimedia/libflashsupport
- Run "nspluginwrapper -i /usr/pkg/lib/netscape/plugins/libflashplayer.so"
- Run Firefox
This is working at least under NetBSD/i386 4.0_BETA with native and modular
x11.