diff options
Diffstat (limited to 'WebCore/plugins/PluginDatabase.cpp')
-rw-r--r-- | WebCore/plugins/PluginDatabase.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/WebCore/plugins/PluginDatabase.cpp b/WebCore/plugins/PluginDatabase.cpp index 414f1ba..f7304df 100644 --- a/WebCore/plugins/PluginDatabase.cpp +++ b/WebCore/plugins/PluginDatabase.cpp @@ -29,6 +29,7 @@ #include "Frame.h" #include "KURL.h" +#include "PluginDatabaseClient.h" #include "PluginPackage.h" #include <stdlib.h> @@ -41,6 +42,11 @@ namespace WebCore { typedef HashMap<String, RefPtr<PluginPackage> > PluginPackageByNameMap; +PluginDatabase::PluginDatabase() + : m_client(0) +{ +} + PluginDatabase* PluginDatabase::installedPlugins(bool populate) { static PluginDatabase* plugins = 0; @@ -116,9 +122,11 @@ bool PluginDatabase::refresh() remove(oldPackage.get()); } - RefPtr<PluginPackage> package = PluginPackage::createPackage(*it, lastModified); - if (package && add(package.release())) - pluginSetChanged = true; + if (!m_client || m_client->shouldLoadPluginAtPath(*it)) { + RefPtr<PluginPackage> package = PluginPackage::createPackage(*it, lastModified); + if (package && (!m_client || m_client->shouldLoadPluginPackage(package.get())) && add(package.release())) + pluginSetChanged = true; + } } // Cache all the paths we found with their timestamps for next time. @@ -352,6 +360,8 @@ Vector<String> PluginDatabase::defaultPluginDirectories() paths.append("/usr/lib/netscape/plugins-libc6"); paths.append("/usr/lib64/netscape/plugins"); paths.append("/usr/lib64/mozilla/plugins"); + paths.append("/usr/lib/nsbrowser/plugins"); + paths.append("/usr/lib64/nsbrowser/plugins"); String mozHome(getenv("MOZILLA_HOME")); mozHome.append("/plugins"); |