OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ | 5 #ifndef WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ |
6 #define WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ | 6 #define WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 // Get all the plugins | 111 // Get all the plugins |
112 void GetPlugins(bool refresh, std::vector<WebPluginInfo>* plugins); | 112 void GetPlugins(bool refresh, std::vector<WebPluginInfo>* plugins); |
113 | 113 |
114 // Returns true if a plugin is found for the given url and mime type. | 114 // Returns true if a plugin is found for the given url and mime type. |
115 // The mime type which corresponds to the URL is optionally returned | 115 // The mime type which corresponds to the URL is optionally returned |
116 // back. | 116 // back. |
117 // The allow_wildcard parameter controls whether this function returns | 117 // The allow_wildcard parameter controls whether this function returns |
118 // plugins which support wildcard mime types (* as the mime type). | 118 // plugins which support wildcard mime types (* as the mime type). |
119 bool GetPluginInfo(const GURL& url, | 119 bool GetPluginInfo(const GURL& url, |
120 const std::string& mime_type, | 120 const std::string& mime_type, |
121 const std::string& clsid, | |
122 bool allow_wildcard, | 121 bool allow_wildcard, |
123 WebPluginInfo* info, | 122 WebPluginInfo* info, |
124 std::string* actual_mime_type); | 123 std::string* actual_mime_type); |
125 | 124 |
126 // Get plugin info by plugin path. Returns true if the plugin is found and | 125 // Get plugin info by plugin path. Returns true if the plugin is found and |
127 // WebPluginInfo has been filled in |info|. | 126 // WebPluginInfo has been filled in |info|. |
128 bool GetPluginInfoByPath(const FilePath& plugin_path, | 127 bool GetPluginInfoByPath(const FilePath& plugin_path, |
129 WebPluginInfo* info); | 128 WebPluginInfo* info); |
130 | 129 |
131 // Load a specific plugin with full path. | 130 // Load a specific plugin with full path. |
(...skipping 10 matching lines...) Expand all Loading... |
142 // Load all plugins from a specific directory | 141 // Load all plugins from a specific directory |
143 void LoadPluginsFromDir(const FilePath& path, | 142 void LoadPluginsFromDir(const FilePath& path, |
144 std::vector<WebPluginInfo>* plugins); | 143 std::vector<WebPluginInfo>* plugins); |
145 | 144 |
146 // Returns true if we should load the given plugin, or false otherwise. | 145 // Returns true if we should load the given plugin, or false otherwise. |
147 // plugins is the list of plugins we have crawled in the current plugin | 146 // plugins is the list of plugins we have crawled in the current plugin |
148 // loading run. | 147 // loading run. |
149 bool ShouldLoadPlugin(const WebPluginInfo& info, | 148 bool ShouldLoadPlugin(const WebPluginInfo& info, |
150 std::vector<WebPluginInfo>* plugins); | 149 std::vector<WebPluginInfo>* plugins); |
151 | 150 |
152 // Load internal plugins. | 151 // Find a plugin by mime type. |
153 void LoadInternalPlugins(std::vector<WebPluginInfo>* plugins); | |
154 | |
155 // Find a plugin by mime type, and clsid. | |
156 // If clsid is empty, we will just find the plugin that supports mime type. | |
157 // Otherwise, if mime_type is application/x-oleobject etc that's supported by | |
158 // by our activex shim, we need to check if the specified ActiveX exists. | |
159 // If not we will not return the activex shim, instead we will let the | |
160 // default plugin handle activex installation. | |
161 // The allow_wildcard parameter controls whether this function returns | 152 // The allow_wildcard parameter controls whether this function returns |
162 // plugins which support wildcard mime types (* as the mime type) | 153 // plugins which support wildcard mime types (* as the mime type) |
163 bool FindPlugin(const std::string &mime_type, const std::string& clsid, | 154 bool FindPlugin(const std::string &mime_type, |
164 bool allow_wildcard, WebPluginInfo* info); | 155 bool allow_wildcard, |
| 156 WebPluginInfo* info); |
165 | 157 |
166 // Find a plugin by extension. Returns the corresponding mime type. | 158 // Find a plugin by extension. Returns the corresponding mime type. |
167 bool FindPlugin(const GURL &url, std::string* actual_mime_type, | 159 bool FindPlugin(const GURL &url, |
| 160 std::string* actual_mime_type, |
168 WebPluginInfo* info); | 161 WebPluginInfo* info); |
169 | 162 |
170 // Returns true if the given WebPluginInfo supports "mime-type". | 163 // Returns true if the given WebPluginInfo supports "mime-type". |
171 // mime_type should be all lower case. | 164 // mime_type should be all lower case. |
172 static bool SupportsType(const WebPluginInfo& info, | 165 static bool SupportsType(const WebPluginInfo& info, |
173 const std::string &mime_type, | 166 const std::string &mime_type, |
174 bool allow_wildcard); | 167 bool allow_wildcard); |
175 | 168 |
176 // Returns true if the given WebPluginInfo supports a given file extension. | 169 // Returns true if the given WebPluginInfo supports a given file extension. |
177 // extension should be all lower case. | 170 // extension should be all lower case. |
(...skipping 14 matching lines...) Expand all Loading... |
192 // Get the ordered list of directories from which to load plugins | 185 // Get the ordered list of directories from which to load plugins |
193 void GetPluginDirectories(std::vector<FilePath>* plugin_dirs); | 186 void GetPluginDirectories(std::vector<FilePath>* plugin_dirs); |
194 | 187 |
195 // | 188 // |
196 // Command-line switches | 189 // Command-line switches |
197 // | 190 // |
198 | 191 |
199 #if defined(OS_WIN) | 192 #if defined(OS_WIN) |
200 // true if we shouldn't load the new WMP plugin. | 193 // true if we shouldn't load the new WMP plugin. |
201 bool dont_load_new_wmp_; | 194 bool dont_load_new_wmp_; |
202 | |
203 // true if we should use our internal ActiveX shim | |
204 bool use_internal_activex_shim_; | |
205 #endif | 195 #endif |
206 | 196 |
207 // | 197 // |
208 // Internals | 198 // Internals |
209 // | 199 // |
210 | 200 |
211 bool plugins_loaded_; | 201 bool plugins_loaded_; |
212 | 202 |
213 // Contains information about the available plugins. | 203 // Contains information about the available plugins. |
214 std::vector<WebPluginInfo> plugins_; | 204 std::vector<WebPluginInfo> plugins_; |
(...skipping 12 matching lines...) Expand all Loading... |
227 Lock lock_; | 217 Lock lock_; |
228 | 218 |
229 friend struct base::DefaultLazyInstanceTraits<PluginList>; | 219 friend struct base::DefaultLazyInstanceTraits<PluginList>; |
230 | 220 |
231 DISALLOW_COPY_AND_ASSIGN(PluginList); | 221 DISALLOW_COPY_AND_ASSIGN(PluginList); |
232 }; | 222 }; |
233 | 223 |
234 } // namespace NPAPI | 224 } // namespace NPAPI |
235 | 225 |
236 #endif // WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ | 226 #endif // WEBKIT_GLUE_PLUGIN_PLUGIN_LIST_H__ |
OLD | NEW |