gecko/modules/plugin/samples/npthread/windows
2008-07-11 14:24:43 -07:00
..
action.cpp Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
action.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
dbg.cpp Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
dbg.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
np_entry.cpp Landing part of the fix for bug 435334. Remove Java specific code that does nobody any good in our samples. r=joshmoz@gmail.com, sr=jonas@sicking.cc 2008-07-11 14:24:43 -07:00
npn_gate.cpp Landing part of the fix for bug 435334. Remove Java specific code that does nobody any good in our samples. r=joshmoz@gmail.com, sr=jonas@sicking.cc 2008-07-11 14:24:43 -07:00
npp_gate.cpp Landing part of the fix for bug 435334. Remove Java specific code that does nobody any good in our samples. r=joshmoz@gmail.com, sr=jonas@sicking.cc 2008-07-11 14:24:43 -07:00
npthread.def Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
npthread.dsp Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
npthread.dsw Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
npthread.rc Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
plugin.cpp Landing part of the fix for bug 435334. Remove Java specific code that does nobody any good in our samples. r=joshmoz@gmail.com, sr=jonas@sicking.cc 2008-07-11 14:24:43 -07:00
plugin.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
plugload.cpp Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
plugload.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
readme.txt Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
resource.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
thread.cpp Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00
thread.h Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07: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