diff options
Diffstat (limited to 'Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp')
-rw-r--r-- | Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp b/Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp index 23120c4..98ef799 100644 --- a/Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp +++ b/Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp @@ -31,6 +31,8 @@ using namespace std; extern NPNetscapeFuncs *browser; +static void (*shutdownFunction)(); + PluginTest* PluginTest::create(NPP npp, const string& identifier) { if (identifier.empty()) @@ -47,12 +49,26 @@ PluginTest::PluginTest(NPP npp, const string& identifier) : m_npp(npp) , m_identifier(identifier) { + // Reset the shutdown function. + shutdownFunction = 0; } PluginTest::~PluginTest() { } +void PluginTest::NP_Shutdown() +{ + if (shutdownFunction) + shutdownFunction(); +} + +void PluginTest::registerNPShutdownFunction(void (*func)()) +{ + assert(!shutdownFunction); + shutdownFunction = func; +} + NPError PluginTest::NPP_New(NPMIMEType pluginType, uint16_t mode, int16_t argc, char *argn[], char *argv[], NPSavedData *saved) { return NPERR_NO_ERROR; |