RetroZilla/modules/plugin/samples/npthread/windows
2015-10-20 23:03:22 -04:00
..
action.cpp first commit 2015-10-20 23:03:22 -04:00
action.h first commit 2015-10-20 23:03:22 -04:00
dbg.cpp first commit 2015-10-20 23:03:22 -04:00
dbg.h first commit 2015-10-20 23:03:22 -04:00
np_entry.cpp first commit 2015-10-20 23:03:22 -04:00
npn_gate.cpp first commit 2015-10-20 23:03:22 -04:00
npp_gate.cpp first commit 2015-10-20 23:03:22 -04:00
npthread.def first commit 2015-10-20 23:03:22 -04:00
npthread.dsp first commit 2015-10-20 23:03:22 -04:00
npthread.dsw first commit 2015-10-20 23:03:22 -04:00
npthread.rc first commit 2015-10-20 23:03:22 -04:00
plugin.cpp first commit 2015-10-20 23:03:22 -04:00
plugin.h first commit 2015-10-20 23:03:22 -04:00
plugload.cpp first commit 2015-10-20 23:03:22 -04:00
plugload.h first commit 2015-10-20 23:03:22 -04:00
readme.txt first commit 2015-10-20 23:03:22 -04:00
resource.h first commit 2015-10-20 23:03:22 -04:00
thread.cpp first commit 2015-10-20 23:03:22 -04:00
thread.h first commit 2015-10-20 23:03:22 -04:00

03-05-2002

This sample is an attempt to write a wrapper plugin which would run the
real plugin in a separate thread. The current code is just a first prototype
version aimed to determine the very possibility of such thing. It is not
designed to handle more than one instance of one plugin. Another limitations
are: it only relays browser-to-plugin calls in thread event based matter
(calls from the plugin to the browser are just made directly by function
pointer; it does not implement notifications back from the plugin thread
to the calling thread, so it simply waits before each NPP_* call until
the plugin thread is done with the previous NPP_* call.

The wrapper tested with Basic plugin sample from the plugin
SDK, so some common plugin crashes can be modelled. Work is still
required to make it functional with more complicated plugins
like Flash.

Steps to see it in action:

  -- place the wrapper plugin (npthread.dll) in the plugins folder
  -- remove npnul32.dll from the plugins folder
  -- rename the plugin you want to run in a separate thread adding
     two zeroes at the beginnig (ren npbasic.dll 00npbasic.dll)
  -- run test case for the plugin in question