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

Side by Side Diff: content/public/browser/plugin_service.h

Issue 19894003: Move webplugininfo.h to content/public. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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
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 CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_
6 #define CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_ 6 #define CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
13 #include "content/common/content_export.h" 13 #include "content/common/content_export.h"
14 14
15 class GURL; 15 class GURL;
16 16
17 namespace base { 17 namespace base {
18 class FilePath; 18 class FilePath;
19 } 19 }
20 20
21 namespace webkit {
22 struct WebPluginInfo;
23 }
24
25 namespace content { 21 namespace content {
26 22
27 class BrowserContext; 23 class BrowserContext;
28 class PluginProcessHost; 24 class PluginProcessHost;
29 class PluginServiceFilter; 25 class PluginServiceFilter;
30 class ResourceContext; 26 class ResourceContext;
31 struct PepperPluginInfo; 27 struct PepperPluginInfo;
28 struct WebPluginInfo;
32 29
33 // This must be created on the main thread but it's only called on the IO/file 30 // This must be created on the main thread but it's only called on the IO/file
34 // thread. This is an asynchronous wrapper around the PluginList interface for 31 // thread. This is an asynchronous wrapper around the PluginList interface for
35 // querying plugin information. This must be used instead of that to avoid 32 // querying plugin information. This must be used instead of that to avoid
36 // doing expensive disk operations on the IO/UI threads. 33 // doing expensive disk operations on the IO/UI threads.
37 class PluginService { 34 class PluginService {
38 public: 35 public:
39 typedef base::Callback<void(const std::vector<webkit::WebPluginInfo>&)> 36 typedef base::Callback<void(const std::vector<WebPluginInfo>&)>
40 GetPluginsCallback; 37 GetPluginsCallback;
41 38
42 // Returns the PluginService singleton. 39 // Returns the PluginService singleton.
43 CONTENT_EXPORT static PluginService* GetInstance(); 40 CONTENT_EXPORT static PluginService* GetInstance();
44 41
45 // Tells all the renderer processes associated with the given browser context 42 // Tells all the renderer processes associated with the given browser context
46 // to throw away their cache of the plugin list, and optionally also reload 43 // to throw away their cache of the plugin list, and optionally also reload
47 // all the pages with plugins. If |browser_context| is NULL, purges the cache 44 // all the pages with plugins. If |browser_context| is NULL, purges the cache
48 // in all renderers. 45 // in all renderers.
49 // NOTE: can only be called on the UI thread. 46 // NOTE: can only be called on the UI thread.
50 CONTENT_EXPORT static void PurgePluginListCache( 47 CONTENT_EXPORT static void PurgePluginListCache(
51 BrowserContext* browser_context, 48 BrowserContext* browser_context,
52 bool reload_pages); 49 bool reload_pages);
53 50
54 virtual ~PluginService() {} 51 virtual ~PluginService() {}
55 52
56 // Must be called on the instance to finish initialization. 53 // Must be called on the instance to finish initialization.
57 virtual void Init() = 0; 54 virtual void Init() = 0;
58 55
59 // Starts watching for changes in the list of installed plug-ins. 56 // Starts watching for changes in the list of installed plug-ins.
60 virtual void StartWatchingPlugins() = 0; 57 virtual void StartWatchingPlugins() = 0;
61 58
62 // Gets the plugin in the list of plugins that matches the given url and mime 59 // Gets the plugin in the list of plugins that matches the given url and mime
63 // type. Returns true if the data is frome a stale plugin list, false if it 60 // type. Returns true if the data is frome a stale plugin list, false if it
64 // is up to date. This can be called from any thread. 61 // is up to date. This can be called from any thread.
65 virtual bool GetPluginInfoArray( 62 virtual bool GetPluginInfoArray(
66 const GURL& url, 63 const GURL& url,
67 const std::string& mime_type, 64 const std::string& mime_type,
68 bool allow_wildcard, 65 bool allow_wildcard,
69 std::vector<webkit::WebPluginInfo>* info, 66 std::vector<WebPluginInfo>* info,
70 std::vector<std::string>* actual_mime_types) = 0; 67 std::vector<std::string>* actual_mime_types) = 0;
71 68
72 // Gets plugin info for an individual plugin and filters the plugins using 69 // Gets plugin info for an individual plugin and filters the plugins using
73 // the |context| and renderer IDs. This will report whether the data is stale 70 // the |context| and renderer IDs. This will report whether the data is stale
74 // via |is_stale| and returns whether or not the plugin can be found. 71 // via |is_stale| and returns whether or not the plugin can be found.
75 virtual bool GetPluginInfo(int render_process_id, 72 virtual bool GetPluginInfo(int render_process_id,
76 int render_view_id, 73 int render_view_id,
77 ResourceContext* context, 74 ResourceContext* context,
78 const GURL& url, 75 const GURL& url,
79 const GURL& page_url, 76 const GURL& page_url,
80 const std::string& mime_type, 77 const std::string& mime_type,
81 bool allow_wildcard, 78 bool allow_wildcard,
82 bool* is_stale, 79 bool* is_stale,
83 webkit::WebPluginInfo* info, 80 WebPluginInfo* info,
84 std::string* actual_mime_type) = 0; 81 std::string* actual_mime_type) = 0;
85 82
86 // Get plugin info by plugin path (including disabled plugins). Returns true 83 // Get plugin info by plugin path (including disabled plugins). Returns true
87 // if the plugin is found and WebPluginInfo has been filled in |info|. This 84 // if the plugin is found and WebPluginInfo has been filled in |info|. This
88 // will use cached data in the plugin list. 85 // will use cached data in the plugin list.
89 virtual bool GetPluginInfoByPath(const base::FilePath& plugin_path, 86 virtual bool GetPluginInfoByPath(const base::FilePath& plugin_path,
90 webkit::WebPluginInfo* info) = 0; 87 WebPluginInfo* info) = 0;
91 88
92 // Returns the display name for the plugin identified by the given path. If 89 // Returns the display name for the plugin identified by the given path. If
93 // the path doesn't identify a plugin, or the plugin has no display name, 90 // the path doesn't identify a plugin, or the plugin has no display name,
94 // this will attempt to generate a display name from the path. 91 // this will attempt to generate a display name from the path.
95 virtual string16 GetPluginDisplayNameByPath( 92 virtual string16 GetPluginDisplayNameByPath(
96 const base::FilePath& plugin_path) = 0; 93 const base::FilePath& plugin_path) = 0;
97 94
98 // Asynchronously loads plugins if necessary and then calls back to the 95 // Asynchronously loads plugins if necessary and then calls back to the
99 // provided function on the calling MessageLoop on completion. 96 // provided function on the calling MessageLoop on completion.
100 virtual void GetPlugins(const GetPluginsCallback& callback) = 0; 97 virtual void GetPlugins(const GetPluginsCallback& callback) = 0;
(...skipping 24 matching lines...) Expand all
125 virtual void RemoveExtraPluginPath(const base::FilePath& path) = 0; 122 virtual void RemoveExtraPluginPath(const base::FilePath& path) = 0;
126 123
127 // Same as above, but specifies a directory in which to search for plugins. 124 // Same as above, but specifies a directory in which to search for plugins.
128 virtual void AddExtraPluginDir(const base::FilePath& path) = 0; 125 virtual void AddExtraPluginDir(const base::FilePath& path) = 0;
129 126
130 // Register an internal plugin with the specified plugin information. 127 // Register an internal plugin with the specified plugin information.
131 // An internal plugin must be registered before it can 128 // An internal plugin must be registered before it can
132 // be loaded using PluginList::LoadPlugin(). 129 // be loaded using PluginList::LoadPlugin().
133 // If |add_at_beginning| is true the plugin will be added earlier in 130 // If |add_at_beginning| is true the plugin will be added earlier in
134 // the list so that it can override the MIME types of older registrations. 131 // the list so that it can override the MIME types of older registrations.
135 virtual void RegisterInternalPlugin(const webkit::WebPluginInfo& info, 132 virtual void RegisterInternalPlugin(const WebPluginInfo& info,
136 bool add_at_beginning) = 0; 133 bool add_at_beginning) = 0;
137 134
138 // Removes a specified internal plugin from the list. The search will match 135 // Removes a specified internal plugin from the list. The search will match
139 // on the path from the version info previously registered. 136 // on the path from the version info previously registered.
140 virtual void UnregisterInternalPlugin(const base::FilePath& path) = 0; 137 virtual void UnregisterInternalPlugin(const base::FilePath& path) = 0;
141 138
142 // Gets a list of all the registered internal plugins. 139 // Gets a list of all the registered internal plugins.
143 virtual void GetInternalPlugins( 140 virtual void GetInternalPlugins(std::vector<WebPluginInfo>* plugins) = 0;
144 std::vector<webkit::WebPluginInfo>* plugins) = 0;
145 141
146 // Returns true iff NPAPI plugins are supported on the current platform. 142 // Returns true iff NPAPI plugins are supported on the current platform.
147 // This can be called from any thread. 143 // This can be called from any thread.
148 virtual bool NPAPIPluginsSupported() = 0; 144 virtual bool NPAPIPluginsSupported() = 0;
149 145
150 // This is equivalent to specifying kDisablePluginsDiscovery, but is useful 146 // This is equivalent to specifying kDisablePluginsDiscovery, but is useful
151 // for unittests. 147 // for unittests.
152 virtual void DisablePluginsDiscoveryForTesting() = 0; 148 virtual void DisablePluginsDiscoveryForTesting() = 0;
153 149
154 #if defined(OS_MACOSX) 150 #if defined(OS_MACOSX)
155 // Called when the application is made active so that modal plugin windows can 151 // Called when the application is made active so that modal plugin windows can
156 // be made forward too. 152 // be made forward too.
157 virtual void AppActivated() = 0; 153 virtual void AppActivated() = 0;
158 #elif defined(OS_WIN) 154 #elif defined(OS_WIN)
159 // Returns the name and version of a plugin HWND. If the HWND isn't a valid 155 // Returns the name and version of a plugin HWND. If the HWND isn't a valid
160 // plugin, returns false. 156 // plugin, returns false.
161 // This can be called from any thread. 157 // This can be called from any thread.
162 virtual bool GetPluginInfoFromWindow(HWND window, 158 virtual bool GetPluginInfoFromWindow(HWND window,
163 base::string16* plugin_name, 159 base::string16* plugin_name,
164 base::string16* plugin_version) = 0; 160 base::string16* plugin_version) = 0;
165 #endif 161 #endif
166 }; 162 };
167 163
168 } // namespace content 164 } // namespace content
169 165
170 #endif // CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_ 166 #endif // CONTENT_PUBLIC_BROWSER_PLUGIN_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698