Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: webkit/plugins/npapi/plugin_list.h

Issue 12163003: Add FilePath to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/npapi/plugin_lib_win.cc ('k') | webkit/plugins/npapi/plugin_list.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_ 5 #ifndef WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_
6 #define WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_ 6 #define WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 static bool SupportsType(const webkit::WebPluginInfo& plugin, 64 static bool SupportsType(const webkit::WebPluginInfo& plugin,
65 const std::string& mime_type, 65 const std::string& mime_type,
66 bool allow_wildcard); 66 bool allow_wildcard);
67 67
68 // Cause the plugin list to refresh next time they are accessed, regardless 68 // Cause the plugin list to refresh next time they are accessed, regardless
69 // of whether they are already loaded. 69 // of whether they are already loaded.
70 void RefreshPlugins(); 70 void RefreshPlugins();
71 71
72 // Add/Remove an extra plugin to load when we actually do the loading. Must 72 // Add/Remove an extra plugin to load when we actually do the loading. Must
73 // be called before the plugins have been loaded. 73 // be called before the plugins have been loaded.
74 void AddExtraPluginPath(const FilePath& plugin_path); 74 void AddExtraPluginPath(const base::FilePath& plugin_path);
75 void RemoveExtraPluginPath(const FilePath& plugin_path); 75 void RemoveExtraPluginPath(const base::FilePath& plugin_path);
76 76
77 // Same as above, but specifies a directory in which to search for plugins. 77 // Same as above, but specifies a directory in which to search for plugins.
78 void AddExtraPluginDir(const FilePath& plugin_dir); 78 void AddExtraPluginDir(const base::FilePath& plugin_dir);
79 79
80 // Get the ordered list of directories from which to load plugins 80 // Get the ordered list of directories from which to load plugins
81 void GetPluginDirectories(std::vector<FilePath>* plugin_dirs); 81 void GetPluginDirectories(std::vector<base::FilePath>* plugin_dirs);
82 82
83 // Register an internal plugin with the specified plugin information. 83 // Register an internal plugin with the specified plugin information.
84 // An internal plugin must be registered before it can 84 // An internal plugin must be registered before it can
85 // be loaded using PluginList::LoadPlugin(). 85 // be loaded using PluginList::LoadPlugin().
86 // If |add_at_beginning| is true the plugin will be added earlier in 86 // If |add_at_beginning| is true the plugin will be added earlier in
87 // the list so that it can override the MIME types of older registrations. 87 // the list so that it can override the MIME types of older registrations.
88 void RegisterInternalPlugin(const webkit::WebPluginInfo& info, 88 void RegisterInternalPlugin(const webkit::WebPluginInfo& info,
89 bool add_at_beginning); 89 bool add_at_beginning);
90 90
91 // This second version is for "plugins" that have been compiled directly into 91 // This second version is for "plugins" that have been compiled directly into
92 // the binary -- callers must provide the plugin information and the entry 92 // the binary -- callers must provide the plugin information and the entry
93 // points. 93 // points.
94 void RegisterInternalPluginWithEntryPoints( 94 void RegisterInternalPluginWithEntryPoints(
95 const webkit::WebPluginInfo& info, 95 const webkit::WebPluginInfo& info,
96 bool add_at_beginning, 96 bool add_at_beginning,
97 const PluginEntryPoints& entry_points); 97 const PluginEntryPoints& entry_points);
98 98
99 // Removes a specified internal plugin from the list. The search will match 99 // Removes a specified internal plugin from the list. The search will match
100 // on the path from the version info previously registered. 100 // on the path from the version info previously registered.
101 // 101 //
102 // This is generally only necessary for tests. 102 // This is generally only necessary for tests.
103 void UnregisterInternalPlugin(const FilePath& path); 103 void UnregisterInternalPlugin(const base::FilePath& path);
104 104
105 // Gets a list of all the registered internal plugins. 105 // Gets a list of all the registered internal plugins.
106 void GetInternalPlugins(std::vector<webkit::WebPluginInfo>* plugins); 106 void GetInternalPlugins(std::vector<webkit::WebPluginInfo>* plugins);
107 107
108 // Creates a WebPluginInfo structure given a plugin's path. On success 108 // Creates a WebPluginInfo structure given a plugin's path. On success
109 // returns true, with the information being put into "info". If it's an 109 // returns true, with the information being put into "info". If it's an
110 // internal plugin, "entry_points" is filled in as well with a 110 // internal plugin, "entry_points" is filled in as well with a
111 // internally-owned PluginEntryPoints pointer. 111 // internally-owned PluginEntryPoints pointer.
112 // Returns false if the library couldn't be found, or if it's not a plugin. 112 // Returns false if the library couldn't be found, or if it's not a plugin.
113 bool ReadPluginInfo(const FilePath& filename, 113 bool ReadPluginInfo(const base::FilePath& filename,
114 webkit::WebPluginInfo* info, 114 webkit::WebPluginInfo* info,
115 const PluginEntryPoints** entry_points); 115 const PluginEntryPoints** entry_points);
116 116
117 // In Windows plugins, the mime types are passed as a specially formatted list 117 // In Windows plugins, the mime types are passed as a specially formatted list
118 // of strings. This function parses those strings into a WebPluginMimeType 118 // of strings. This function parses those strings into a WebPluginMimeType
119 // vector. 119 // vector.
120 // TODO(evan): move this code into plugin_list_win. 120 // TODO(evan): move this code into plugin_list_win.
121 static bool ParseMimeTypes( 121 static bool ParseMimeTypes(
122 const std::string& mime_types, 122 const std::string& mime_types,
123 const std::string& file_extensions, 123 const std::string& file_extensions,
(...skipping 22 matching lines...) Expand all
146 // will be true iff the plug-in list was stale. 146 // will be true iff the plug-in list was stale.
147 void GetPluginInfoArray(const GURL& url, 147 void GetPluginInfoArray(const GURL& url,
148 const std::string& mime_type, 148 const std::string& mime_type,
149 bool allow_wildcard, 149 bool allow_wildcard,
150 bool* use_stale, 150 bool* use_stale,
151 std::vector<webkit::WebPluginInfo>* info, 151 std::vector<webkit::WebPluginInfo>* info,
152 std::vector<std::string>* actual_mime_types); 152 std::vector<std::string>* actual_mime_types);
153 153
154 // Load a specific plugin with full path. Return true iff loading the plug-in 154 // Load a specific plugin with full path. Return true iff loading the plug-in
155 // was successful. 155 // was successful.
156 bool LoadPluginIntoPluginList(const FilePath& filename, 156 bool LoadPluginIntoPluginList(const base::FilePath& filename,
157 std::vector<webkit::WebPluginInfo>* plugins, 157 std::vector<webkit::WebPluginInfo>* plugins,
158 webkit::WebPluginInfo* plugin_info); 158 webkit::WebPluginInfo* plugin_info);
159 159
160 // The following functions are used to support probing for WebPluginInfo 160 // The following functions are used to support probing for WebPluginInfo
161 // using a different instance of this class. 161 // using a different instance of this class.
162 162
163 // Computes a list of all plugins to potentially load from all sources. 163 // Computes a list of all plugins to potentially load from all sources.
164 void GetPluginPathsToLoad(std::vector<FilePath>* plugin_paths); 164 void GetPluginPathsToLoad(std::vector<base::FilePath>* plugin_paths);
165 165
166 // Clears the internal list of Plugins and copies them from the vector. 166 // Clears the internal list of Plugins and copies them from the vector.
167 void SetPlugins(const std::vector<webkit::WebPluginInfo>& plugins); 167 void SetPlugins(const std::vector<webkit::WebPluginInfo>& plugins);
168 168
169 void set_will_load_plugins_callback(const base::Closure& callback); 169 void set_will_load_plugins_callback(const base::Closure& callback);
170 170
171 virtual ~PluginList(); 171 virtual ~PluginList();
172 172
173 protected: 173 protected:
174 // Constructors are private for singletons but we expose this one 174 // Constructors are private for singletons but we expose this one
(...skipping 18 matching lines...) Expand all
193 // Implements all IO dependent operations of the LoadPlugins method so that 193 // Implements all IO dependent operations of the LoadPlugins method so that
194 // test classes can mock these out. 194 // test classes can mock these out.
195 virtual void LoadPluginsIntoPluginListInternal( 195 virtual void LoadPluginsIntoPluginListInternal(
196 std::vector<webkit::WebPluginInfo>* plugins); 196 std::vector<webkit::WebPluginInfo>* plugins);
197 197
198 // Load all plugins from the default plugins directory. 198 // Load all plugins from the default plugins directory.
199 void LoadPlugins(); 199 void LoadPlugins();
200 200
201 // Walks a directory and produces a list of all the plugins to potentially 201 // Walks a directory and produces a list of all the plugins to potentially
202 // load in that directory. 202 // load in that directory.
203 void GetPluginsInDir(const FilePath& path, std::vector<FilePath>* plugins); 203 void GetPluginsInDir(const base::FilePath& path,
204 std::vector<base::FilePath>* plugins);
204 205
205 // Returns true if we should load the given plugin, or false otherwise. 206 // Returns true if we should load the given plugin, or false otherwise.
206 // |plugins| is the list of plugins we have crawled in the current plugin 207 // |plugins| is the list of plugins we have crawled in the current plugin
207 // loading run. 208 // loading run.
208 bool ShouldLoadPluginUsingPluginList( 209 bool ShouldLoadPluginUsingPluginList(
209 const webkit::WebPluginInfo& info, 210 const webkit::WebPluginInfo& info,
210 std::vector<webkit::WebPluginInfo>* plugins); 211 std::vector<webkit::WebPluginInfo>* plugins);
211 212
212 // Returns true if the given plugin supports a given file extension. 213 // Returns true if the given plugin supports a given file extension.
213 // |extension| should be all lower case. If |mime_type| is not NULL, it will 214 // |extension| should be all lower case. If |mime_type| is not NULL, it will
(...skipping 13 matching lines...) Expand all
227 // 228 //
228 // Command-line switches 229 // Command-line switches
229 // 230 //
230 231
231 #if defined(OS_WIN) 232 #if defined(OS_WIN)
232 // true if we shouldn't load the new WMP plugin. 233 // true if we shouldn't load the new WMP plugin.
233 bool dont_load_new_wmp_; 234 bool dont_load_new_wmp_;
234 235
235 // Gets plugin paths registered under HKCU\Software\MozillaPlugins and 236 // Gets plugin paths registered under HKCU\Software\MozillaPlugins and
236 // HKLM\Software\MozillaPlugins. 237 // HKLM\Software\MozillaPlugins.
237 void GetPluginPathsFromRegistry(std::vector<FilePath>* plugins); 238 void GetPluginPathsFromRegistry(std::vector<base::FilePath>* plugins);
238 #endif 239 #endif
239 240
240 // 241 //
241 // Internals 242 // Internals
242 // 243 //
243 244
244 // States whether we will load the plug-in list the next time we try to access 245 // States whether we will load the plug-in list the next time we try to access
245 // it, whether we are currently in the process of loading it, or whether we 246 // it, whether we are currently in the process of loading it, or whether we
246 // consider it up-to-date. 247 // consider it up-to-date.
247 LoadingState loading_state_; 248 LoadingState loading_state_;
248 249
249 // Extra plugin paths that we want to search when loading. 250 // Extra plugin paths that we want to search when loading.
250 std::vector<FilePath> extra_plugin_paths_; 251 std::vector<base::FilePath> extra_plugin_paths_;
251 252
252 // Extra plugin directories that we want to search when loading. 253 // Extra plugin directories that we want to search when loading.
253 std::vector<FilePath> extra_plugin_dirs_; 254 std::vector<base::FilePath> extra_plugin_dirs_;
254 255
255 // Holds information about internal plugins. 256 // Holds information about internal plugins.
256 std::vector<InternalPlugin> internal_plugins_; 257 std::vector<InternalPlugin> internal_plugins_;
257 258
258 // A list holding all plug-ins. 259 // A list holding all plug-ins.
259 std::vector<webkit::WebPluginInfo> plugins_list_; 260 std::vector<webkit::WebPluginInfo> plugins_list_;
260 261
261 // Callback that is invoked whenever the PluginList will reload the plugins. 262 // Callback that is invoked whenever the PluginList will reload the plugins.
262 base::Closure will_load_plugins_callback_; 263 base::Closure will_load_plugins_callback_;
263 264
264 // Need synchronization for the above members since this object can be 265 // Need synchronization for the above members since this object can be
265 // accessed on multiple threads. 266 // accessed on multiple threads.
266 base::Lock lock_; 267 base::Lock lock_;
267 268
268 DISALLOW_COPY_AND_ASSIGN(PluginList); 269 DISALLOW_COPY_AND_ASSIGN(PluginList);
269 }; 270 };
270 271
271 } // namespace npapi 272 } // namespace npapi
272 } // namespace webkit 273 } // namespace webkit
273 274
274 #endif // WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_ 275 #endif // WEBKIT_PLUGINS_NPAPI_PLUGIN_LIST_H_
OLDNEW
« no previous file with comments | « webkit/plugins/npapi/plugin_lib_win.cc ('k') | webkit/plugins/npapi/plugin_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698