diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/plugins/DOMPlugin.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/plugins/DOMPlugin.cpp')
-rw-r--r-- | Source/WebCore/plugins/DOMPlugin.cpp | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/Source/WebCore/plugins/DOMPlugin.cpp b/Source/WebCore/plugins/DOMPlugin.cpp index ef5ab4cd7..ef73c2838 100644 --- a/Source/WebCore/plugins/DOMPlugin.cpp +++ b/Source/WebCore/plugins/DOMPlugin.cpp @@ -25,10 +25,10 @@ namespace WebCore { -DOMPlugin::DOMPlugin(PluginData* pluginData, Frame* frame, unsigned index) +DOMPlugin::DOMPlugin(PluginData* pluginData, Frame* frame, PluginInfo pluginInfo) : FrameDestructionObserver(frame) , m_pluginData(pluginData) - , m_index(index) + , m_pluginInfo(WTFMove(pluginInfo)) { } @@ -38,55 +38,60 @@ DOMPlugin::~DOMPlugin() String DOMPlugin::name() const { - return pluginInfo().name; + return m_pluginInfo.name; } String DOMPlugin::filename() const { - return pluginInfo().file; + return m_pluginInfo.file; } String DOMPlugin::description() const { - return pluginInfo().desc; + return m_pluginInfo.desc; } unsigned DOMPlugin::length() const { - return pluginInfo().mimes.size(); + return m_pluginInfo.mimes.size(); } -PassRefPtr<DOMMimeType> DOMPlugin::item(unsigned index) +RefPtr<DOMMimeType> DOMPlugin::item(unsigned index) { - if (index >= pluginInfo().mimes.size()) - return 0; + if (index >= m_pluginInfo.mimes.size() || !m_frame || !m_frame->page()) + return nullptr; - const MimeClassInfo& mime = pluginInfo().mimes[index]; + MimeClassInfo mime = m_pluginInfo.mimes[index]; - const Vector<MimeClassInfo>& mimes = m_pluginData->mimes(); + Vector<MimeClassInfo> mimes; + Vector<size_t> mimePluginIndices; + Vector<PluginInfo> plugins = m_pluginData->webVisiblePlugins(); + m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices); for (unsigned i = 0; i < mimes.size(); ++i) { - if (mimes[i] == mime && m_pluginData->mimePluginIndices()[i] == m_index) - return DOMMimeType::create(m_pluginData.get(), m_frame, i).get(); + if (mimes[i] == mime && plugins[mimePluginIndices[i]] == m_pluginInfo) + return DOMMimeType::create(m_pluginData.get(), m_frame, i); } - return 0; + return nullptr; } -bool DOMPlugin::canGetItemsForName(const AtomicString& propertyName) +RefPtr<DOMMimeType> DOMPlugin::namedItem(const AtomicString& propertyName) { - const Vector<MimeClassInfo>& mimes = m_pluginData->mimes(); + if (!m_frame || !m_frame->page()) + return nullptr; + + Vector<MimeClassInfo> mimes; + Vector<size_t> mimePluginIndices; + m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices); for (unsigned i = 0; i < mimes.size(); ++i) if (mimes[i].type == propertyName) - return true; - return false; + return DOMMimeType::create(m_pluginData.get(), m_frame, i); + return nullptr; } -PassRefPtr<DOMMimeType> DOMPlugin::namedItem(const AtomicString& propertyName) +Vector<AtomicString> DOMPlugin::supportedPropertyNames() { - const Vector<MimeClassInfo>& mimes = m_pluginData->mimes(); - for (unsigned i = 0; i < mimes.size(); ++i) - if (mimes[i].type == propertyName) - return DOMMimeType::create(m_pluginData.get(), m_frame, i).get(); - return 0; + // FIXME: Should be implemented. + return Vector<AtomicString>(); } } // namespace WebCore |