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

Side by Side Diff: ppapi/proxy/plugin_dispatcher.h

Issue 10984094: Hook up PpapiPermissions in more places. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | « ppapi/proxy/interface_list.cc ('k') | ppapi/proxy/plugin_dispatcher.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 PPAPI_PROXY_PLUGIN_DISPATCHER_H_ 5 #ifndef PPAPI_PROXY_PLUGIN_DISPATCHER_H_
6 #define PPAPI_PROXY_PLUGIN_DISPATCHER_H_ 6 #define PPAPI_PROXY_PLUGIN_DISPATCHER_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // Plugin dispatcher IDs will be used to dispatch messages from the browser. 76 // Plugin dispatcher IDs will be used to dispatch messages from the browser.
77 // Each call to Register() has to be matched with a call to Unregister(). 77 // Each call to Register() has to be matched with a call to Unregister().
78 virtual uint32 Register(PluginDispatcher* plugin_dispatcher) = 0; 78 virtual uint32 Register(PluginDispatcher* plugin_dispatcher) = 0;
79 virtual void Unregister(uint32 plugin_dispatcher_id) = 0; 79 virtual void Unregister(uint32 plugin_dispatcher_id) = 0;
80 }; 80 };
81 81
82 // Constructor for the plugin side. The init and shutdown functions will be 82 // Constructor for the plugin side. The init and shutdown functions will be
83 // will be automatically called when requested by the renderer side. The 83 // will be automatically called when requested by the renderer side. The
84 // module ID will be set upon receipt of the InitializeModule message. 84 // module ID will be set upon receipt of the InitializeModule message.
85 // 85 //
86 // Note about permissions: On the plugin side, the dispatcher and the plugin
87 // run in the same address space (including in nacl). This means that the
88 // permissions here are subject to malicious modification and bypass, and
89 // an exploited or malicious plugin could send any IPC messages and just
90 // bypass the permissions. All permissions must be checked "for realz" in the
91 // host process when receiving messages. We check them on the plugin side
92 // primarily to keep honest plugins honest, especially with respect to
93 // dev interfaces that they "shouldn't" be using.
94 //
86 // You must call InitPluginWithChannel after the constructor. 95 // You must call InitPluginWithChannel after the constructor.
87 PluginDispatcher(PP_GetInterface_Func get_interface, 96 PluginDispatcher(PP_GetInterface_Func get_interface,
97 const PpapiPermissions& permissions,
88 bool incognito); 98 bool incognito);
89 virtual ~PluginDispatcher(); 99 virtual ~PluginDispatcher();
90 100
91 // The plugin side maintains a mapping from PP_Instance to Dispatcher so 101 // The plugin side maintains a mapping from PP_Instance to Dispatcher so
92 // that we can send the messages to the right channel if there are multiple 102 // that we can send the messages to the right channel if there are multiple
93 // renderers sharing the same plugin. This mapping is maintained by 103 // renderers sharing the same plugin. This mapping is maintained by
94 // DidCreateInstance/DidDestroyInstance. 104 // DidCreateInstance/DidDestroyInstance.
95 static PluginDispatcher* GetForInstance(PP_Instance instance); 105 static PluginDispatcher* GetForInstance(PP_Instance instance);
96 106
97 // Same as GetForInstance but retrieves the instance from the given resource 107 // Same as GetForInstance but retrieves the instance from the given resource
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // incognito mode. 201 // incognito mode.
192 bool incognito_; 202 bool incognito_;
193 203
194 DISALLOW_COPY_AND_ASSIGN(PluginDispatcher); 204 DISALLOW_COPY_AND_ASSIGN(PluginDispatcher);
195 }; 205 };
196 206
197 } // namespace proxy 207 } // namespace proxy
198 } // namespace ppapi 208 } // namespace ppapi
199 209
200 #endif // PPAPI_PROXY_PLUGIN_DISPATCHER_H_ 210 #endif // PPAPI_PROXY_PLUGIN_DISPATCHER_H_
OLDNEW
« no previous file with comments | « ppapi/proxy/interface_list.cc ('k') | ppapi/proxy/plugin_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698