void NetscapePluginModule::shutdown() { ASSERT(m_isInitialized); m_shutdownProcPtr(); size_t pluginModuleIndex = initializedNetscapePluginModules().find(this); ASSERT(pluginModuleIndex != notFound); initializedNetscapePluginModules().remove(pluginModuleIndex); }
bool NetscapePluginModule::load() { if (!tryLoad()) { unload(); return false; } m_isInitialized = true; ASSERT(initializedNetscapePluginModules().find(this) == notFound); initializedNetscapePluginModules().append(this); return true; }
PassRefPtr<NetscapePluginModule> NetscapePluginModule::getOrCreate(const String& pluginPath) { // First, see if we already have a module with this plug-in path. for (size_t i = 0; i < initializedNetscapePluginModules().size(); ++i) { NetscapePluginModule* pluginModule = initializedNetscapePluginModules()[i]; if (pluginModule->m_pluginPath == pluginPath) return pluginModule; } RefPtr<NetscapePluginModule> pluginModule(adoptRef(new NetscapePluginModule(pluginPath))); // Try to load and initialize the plug-in module. if (!pluginModule->load()) return 0; return pluginModule.release(); }
NetscapePluginModule::~NetscapePluginModule() { ASSERT(initializedNetscapePluginModules().find(this) == notFound); }