diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp b/Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp index 2138131..f695969 100644 --- a/Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp +++ b/Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp @@ -27,6 +27,7 @@ #include "PluginInfoStore.h" #include "NetscapePluginModule.h" +#include <WebCore/PathWalker.h> #include <shlwapi.h> using namespace WebCore; @@ -254,37 +255,11 @@ Vector<String> PluginInfoStore::pluginsDirectories() return directories; } -class PathWalker { - WTF_MAKE_NONCOPYABLE(PathWalker); -public: - PathWalker(const String& directory) - { - String pattern = directory + "\\*"; - m_handle = ::FindFirstFileW(pattern.charactersWithNullTermination(), &m_data); - } - - ~PathWalker() - { - if (!isValid()) - return; - ::FindClose(m_handle); - } - - bool isValid() const { return m_handle != INVALID_HANDLE_VALUE; } - const WIN32_FIND_DATAW& data() const { return m_data; } - - bool step() { return ::FindNextFileW(m_handle, &m_data); } - -private: - HANDLE m_handle; - WIN32_FIND_DATAW m_data; -}; - Vector<String> PluginInfoStore::pluginPathsInDirectory(const String& directory) { Vector<String> paths; - PathWalker walker(directory); + PathWalker walker(directory, "*"); if (!walker.isValid()) return paths; @@ -385,6 +360,11 @@ bool PluginInfoStore::shouldUsePlugin(const Plugin& plugin) return false; } + if (equalIgnoringCase(plugin.info.file, "npwpf.dll")) { + // Bug 57119: Microsoft Windows Presentation Foundation (WPF) plug-in complains about missing xpcom.dll + return false; + } + if (plugin.info.name == "Yahoo Application State Plugin") { // https://bugs.webkit.org/show_bug.cgi?id=26860 // Bug in Yahoo Application State plug-in earlier than 1.0.0.6 leads to heap corruption. |