• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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