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

Side by Side Diff: chrome/browser/plugin_service.h

Issue 2967007: Disable outdated plugins, block non-sandboxed plugins. (Closed)
Patch Set: '' Created 10 years, 4 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
« no previous file with comments | « chrome/browser/blocked_plugin_manager.cc ('k') | chrome/browser/plugin_service.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // This class responds to requests from renderers for the list of plugins, and 5 // This class responds to requests from renderers for the list of plugins, and
6 // also a proxy object for plugin instances. 6 // also a proxy object for plugin instances.
7 7
8 #ifndef CHROME_BROWSER_PLUGIN_SERVICE_H_ 8 #ifndef CHROME_BROWSER_PLUGIN_SERVICE_H_
9 #define CHROME_BROWSER_PLUGIN_SERVICE_H_ 9 #define CHROME_BROWSER_PLUGIN_SERVICE_H_
10 10
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 // Opens a channel to a plugin process for the given mime type, starting 77 // Opens a channel to a plugin process for the given mime type, starting
78 // a new plugin process if necessary. This must be called on the IO thread 78 // a new plugin process if necessary. This must be called on the IO thread
79 // or else a deadlock can occur. 79 // or else a deadlock can occur.
80 void OpenChannelToPlugin(ResourceMessageFilter* renderer_msg_filter, 80 void OpenChannelToPlugin(ResourceMessageFilter* renderer_msg_filter,
81 const GURL& url, 81 const GURL& url,
82 const std::string& mime_type, 82 const std::string& mime_type,
83 const std::wstring& locale, 83 const std::wstring& locale,
84 IPC::Message* reply_msg); 84 IPC::Message* reply_msg);
85 85
86 // Get the path to the plugin specified. policy_url is the URL of the page 86 // Returns true if the given plugin is allowed to be used by a page with
87 // requesting the plugin, so we can verify whether the plugin is allowed 87 // the given URL.
88 // on that page. 88 bool PrivatePluginAllowedForURL(const FilePath& plugin_path, const GURL& url);
89 FilePath GetPluginPath(const GURL& url,
90 const GURL& policy_url,
91 const std::string& mime_type,
92 std::string* actual_mime_type);
93 89
94 // The UI thread's message loop 90 // The UI thread's message loop
95 MessageLoop* main_message_loop() { return main_message_loop_; } 91 MessageLoop* main_message_loop() { return main_message_loop_; }
96 92
97 ResourceDispatcherHost* resource_dispatcher_host() const { 93 ResourceDispatcherHost* resource_dispatcher_host() const {
98 return resource_dispatcher_host_; 94 return resource_dispatcher_host_;
99 } 95 }
100 96
101 static void EnableChromePlugins(bool enable); 97 static void EnableChromePlugins(bool enable);
102 98
103 private: 99 private:
104 friend struct DefaultSingletonTraits<PluginService>; 100 friend struct DefaultSingletonTraits<PluginService>;
105 101
106 // Creates the PluginService object, but doesn't actually build the plugin 102 // Creates the PluginService object, but doesn't actually build the plugin
107 // list yet. It's generated lazily. 103 // list yet. It's generated lazily.
108 PluginService(); 104 PluginService();
109 ~PluginService(); 105 ~PluginService();
110 106
111 // base::WaitableEventWatcher::Delegate implementation. 107 // base::WaitableEventWatcher::Delegate implementation.
112 virtual void OnWaitableEventSignaled(base::WaitableEvent* waitable_event); 108 virtual void OnWaitableEventSignaled(base::WaitableEvent* waitable_event);
113 109
114 // NotificationObserver implementation 110 // NotificationObserver implementation
115 virtual void Observe(NotificationType type, const NotificationSource& source, 111 virtual void Observe(NotificationType type, const NotificationSource& source,
116 const NotificationDetails& details); 112 const NotificationDetails& details);
117 113
118 // Returns true if the given plugin is allowed to be used by a page with
119 // the given URL.
120 bool PluginAllowedForURL(const FilePath& plugin_path, const GURL& url);
121
122 void RegisterPepperPlugins(); 114 void RegisterPepperPlugins();
123 115
124 // mapping between plugin path and PluginProcessHost 116 // mapping between plugin path and PluginProcessHost
125 typedef base::hash_map<FilePath, PluginProcessHost*> PluginMap; 117 typedef base::hash_map<FilePath, PluginProcessHost*> PluginMap;
126 PluginMap plugin_hosts_; 118 PluginMap plugin_hosts_;
127 119
128 // The main thread's message loop. 120 // The main thread's message loop.
129 MessageLoop* main_message_loop_; 121 MessageLoop* main_message_loop_;
130 122
131 // The IO thread's resource dispatcher host. 123 // The IO thread's resource dispatcher host.
(...skipping 22 matching lines...) Expand all
154 base::WaitableEventWatcher hklm_watcher_; 146 base::WaitableEventWatcher hklm_watcher_;
155 #endif 147 #endif
156 148
157 // Set to true if chrome plugins are enabled. Defaults to true. 149 // Set to true if chrome plugins are enabled. Defaults to true.
158 static bool enable_chrome_plugins_; 150 static bool enable_chrome_plugins_;
159 151
160 DISALLOW_COPY_AND_ASSIGN(PluginService); 152 DISALLOW_COPY_AND_ASSIGN(PluginService);
161 }; 153 };
162 154
163 #endif // CHROME_BROWSER_PLUGIN_SERVICE_H_ 155 #endif // CHROME_BROWSER_PLUGIN_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/blocked_plugin_manager.cc ('k') | chrome/browser/plugin_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698