1 /*
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19 #include "config.h"
20 #include "Plugin.h"
21
22 #include "AtomicString.h"
23 #include "PluginData.h"
24 #include "Frame.h"
25
26 namespace WebCore {
27
Plugin(PluginData * pluginData,unsigned index)28 Plugin::Plugin(PluginData* pluginData, unsigned index)
29 : m_pluginData(pluginData)
30 , m_index(index)
31 {
32 }
33
~Plugin()34 Plugin::~Plugin()
35 {
36 }
37
name() const38 String Plugin::name() const
39 {
40 return m_pluginData->plugins()[m_index]->name;
41 }
42
filename() const43 String Plugin::filename() const
44 {
45 return m_pluginData->plugins()[m_index]->file;
46 }
47
description() const48 String Plugin::description() const
49 {
50 return m_pluginData->plugins()[m_index]->desc;
51 }
52
length() const53 unsigned Plugin::length() const
54 {
55 return m_pluginData->plugins()[m_index]->mimes.size();
56 }
57
item(unsigned index)58 PassRefPtr<MimeType> Plugin::item(unsigned index)
59 {
60 const Vector<PluginInfo*>& plugins = m_pluginData->plugins();
61 if (index >= plugins[m_index]->mimes.size())
62 return 0;
63
64 MimeClassInfo* mime = plugins[m_index]->mimes[index];
65
66 const Vector<MimeClassInfo*>& mimes = m_pluginData->mimes();
67 for (unsigned i = 0; i < mimes.size(); ++i)
68 if (mimes[i] == mime)
69 return MimeType::create(m_pluginData.get(), i).get();
70 return 0;
71 }
72
canGetItemsForName(const AtomicString & propertyName)73 bool Plugin::canGetItemsForName(const AtomicString& propertyName)
74 {
75 const Vector<MimeClassInfo*>& mimes = m_pluginData->mimes();
76 for (unsigned i = 0; i < mimes.size(); ++i)
77 if (mimes[i]->type == propertyName)
78 return true;
79 return false;
80 }
81
namedItem(const AtomicString & propertyName)82 PassRefPtr<MimeType> Plugin::namedItem(const AtomicString& propertyName)
83 {
84 const Vector<MimeClassInfo*>& mimes = m_pluginData->mimes();
85 for (unsigned i = 0; i < mimes.size(); ++i)
86 if (mimes[i]->type == propertyName)
87 return MimeType::create(m_pluginData.get(), i).get();
88 return 0;
89 }
90
91 } // namespace WebCore
92