OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CONTENT_COMMON_PLUGIN_LIST_H_ | 5 #ifndef CONTENT_COMMON_PLUGIN_LIST_H_ |
6 #define CONTENT_COMMON_PLUGIN_LIST_H_ | 6 #define CONTENT_COMMON_PLUGIN_LIST_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 // Creates a WebPluginInfo structure given a plugin's path. On success | 68 // Creates a WebPluginInfo structure given a plugin's path. On success |
69 // returns true, with the information being put into "info". | 69 // returns true, with the information being put into "info". |
70 // Returns false if the library couldn't be found, or if it's not a plugin. | 70 // Returns false if the library couldn't be found, or if it's not a plugin. |
71 bool ReadPluginInfo(const base::FilePath& filename, | 71 bool ReadPluginInfo(const base::FilePath& filename, |
72 WebPluginInfo* info); | 72 WebPluginInfo* info); |
73 | 73 |
74 // Get all the plugins synchronously, loading them if necessary. | 74 // Get all the plugins synchronously, loading them if necessary. |
75 void GetPlugins(std::vector<WebPluginInfo>* plugins); | 75 void GetPlugins(std::vector<WebPluginInfo>* plugins); |
76 | 76 |
77 // Copies the list of plugins into |plugins| without loading them. | 77 // Copies the list of plugins into |plugins| without loading them. |
78 // Returns true if the list of plugins is up-to-date. | 78 // Returns true if the list of plugins is up to date. |
79 bool GetPluginsNoRefresh(std::vector<WebPluginInfo>* plugins); | 79 bool GetPluginsNoRefresh(std::vector<WebPluginInfo>* plugins); |
80 | 80 |
81 // Returns a list in |info| containing plugins that are found for | 81 // Returns a list in |info| containing plugins that are found for |
82 // the given url and mime type (including disabled plugins, for | 82 // the given url and mime type (including disabled plugins, for |
83 // which |info->enabled| is false). The mime type which corresponds | 83 // which |info->enabled| is false). The mime type which corresponds |
84 // to the URL is optionally returned back in |actual_mime_types| (if | 84 // to the URL is optionally returned back in |actual_mime_types| (if |
85 // it is non-NULL), one for each of the plugin info objects found. | 85 // it is non-NULL), one for each of the plugin info objects found. |
86 // The |allow_wildcard| parameter controls whether this function | 86 // The |allow_wildcard| parameter controls whether this function |
87 // returns plugins which support wildcard mime types (* as the mime | 87 // returns plugins which support wildcard mime types (* as the mime |
88 // type). The |info| parameter is required to be non-NULL. The | 88 // type). The |info| parameter is required to be non-NULL. The |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 // Removes |plugin_path| from the list of extra plugin paths. Should only be | 149 // Removes |plugin_path| from the list of extra plugin paths. Should only be |
150 // called while holding |lock_|. | 150 // called while holding |lock_|. |
151 void RemoveExtraPluginPathLocked(const base::FilePath& plugin_path); | 151 void RemoveExtraPluginPathLocked(const base::FilePath& plugin_path); |
152 | 152 |
153 // | 153 // |
154 // Internals | 154 // Internals |
155 // | 155 // |
156 | 156 |
157 // States whether we will load the plugin list the next time we try to access | 157 // States whether we will load the plugin list the next time we try to access |
158 // it, whether we are currently in the process of loading it, or whether we | 158 // it, whether we are currently in the process of loading it, or whether we |
159 // consider it up-to-date. | 159 // consider it up to date. |
160 LoadingState loading_state_; | 160 LoadingState loading_state_; |
161 | 161 |
162 // Extra plugin paths that we want to search when loading. | 162 // Extra plugin paths that we want to search when loading. |
163 std::vector<base::FilePath> extra_plugin_paths_; | 163 std::vector<base::FilePath> extra_plugin_paths_; |
164 | 164 |
165 // Holds information about internal plugins. | 165 // Holds information about internal plugins. |
166 std::vector<WebPluginInfo> internal_plugins_; | 166 std::vector<WebPluginInfo> internal_plugins_; |
167 | 167 |
168 // A list holding all plugins. | 168 // A list holding all plugins. |
169 std::vector<WebPluginInfo> plugins_list_; | 169 std::vector<WebPluginInfo> plugins_list_; |
170 | 170 |
171 // Callback that is invoked whenever the PluginList will reload the plugins. | 171 // Callback that is invoked whenever the PluginList will reload the plugins. |
172 base::Closure will_load_plugins_callback_; | 172 base::Closure will_load_plugins_callback_; |
173 | 173 |
174 // Need synchronization for the above members since this object can be | 174 // Need synchronization for the above members since this object can be |
175 // accessed on multiple threads. | 175 // accessed on multiple threads. |
176 base::Lock lock_; | 176 base::Lock lock_; |
177 | 177 |
178 DISALLOW_COPY_AND_ASSIGN(PluginList); | 178 DISALLOW_COPY_AND_ASSIGN(PluginList); |
179 }; | 179 }; |
180 | 180 |
181 } // namespace content | 181 } // namespace content |
182 | 182 |
183 #endif // CONTENT_COMMON_PLUGIN_LIST_H_ | 183 #endif // CONTENT_COMMON_PLUGIN_LIST_H_ |
OLD | NEW |