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

Side by Side Diff: ppapi/proxy/plugin_main_nacl.cc

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/plugin_dispatcher.cc ('k') | ppapi/proxy/ppapi_messages.h » ('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 #include <map> 5 #include <map>
6 #include <set> 6 #include <set>
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 // Need to include this before most other files because it defines 9 // Need to include this before most other files because it defines
10 // IPC_MESSAGE_LOG_ENABLED. We need to use it to define 10 // IPC_MESSAGE_LOG_ENABLED. We need to use it to define
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 virtual IPC::Sender* GetBrowserSender() OVERRIDE; 69 virtual IPC::Sender* GetBrowserSender() OVERRIDE;
70 virtual std::string GetUILanguage() OVERRIDE; 70 virtual std::string GetUILanguage() OVERRIDE;
71 virtual void PreCacheFont(const void* logfontw) OVERRIDE; 71 virtual void PreCacheFont(const void* logfontw) OVERRIDE;
72 virtual void SetActiveURL(const std::string& url) OVERRIDE; 72 virtual void SetActiveURL(const std::string& url) OVERRIDE;
73 73
74 // IPC::Listener implementation. 74 // IPC::Listener implementation.
75 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 75 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
76 76
77 private: 77 private:
78 void OnMsgCreateNaClChannel(int renderer_id, 78 void OnMsgCreateNaClChannel(int renderer_id,
79 const ppapi::PpapiPermissions& permissions,
79 bool incognito, 80 bool incognito,
80 SerializedHandle handle); 81 SerializedHandle handle);
81 void OnPluginDispatcherMessageReceived(const IPC::Message& msg); 82 void OnPluginDispatcherMessageReceived(const IPC::Message& msg);
82 83
83 std::set<PP_Instance> instances_; 84 std::set<PP_Instance> instances_;
84 std::map<uint32, PluginDispatcher*> plugin_dispatchers_; 85 std::map<uint32, PluginDispatcher*> plugin_dispatchers_;
85 uint32 next_plugin_dispatcher_id_; 86 uint32 next_plugin_dispatcher_id_;
86 scoped_refptr<base::MessageLoopProxy> message_loop_; 87 scoped_refptr<base::MessageLoopProxy> message_loop_;
87 base::WaitableEvent shutdown_event_; 88 base::WaitableEvent shutdown_event_;
88 }; 89 };
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_RecvFromACK, 176 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_RecvFromACK,
176 OnPluginDispatcherMessageReceived(msg)) 177 OnPluginDispatcherMessageReceived(msg))
177 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_SendToACK, 178 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_SendToACK,
178 OnPluginDispatcherMessageReceived(msg)) 179 OnPluginDispatcherMessageReceived(msg))
179 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_BindACK, 180 IPC_MESSAGE_HANDLER_GENERIC(PpapiMsg_PPBUDPSocket_BindACK,
180 OnPluginDispatcherMessageReceived(msg)) 181 OnPluginDispatcherMessageReceived(msg))
181 IPC_END_MESSAGE_MAP() 182 IPC_END_MESSAGE_MAP()
182 return true; 183 return true;
183 } 184 }
184 185
185 void PpapiDispatcher::OnMsgCreateNaClChannel(int renderer_id, 186 void PpapiDispatcher::OnMsgCreateNaClChannel(
186 bool incognito, 187 int renderer_id,
187 SerializedHandle handle) { 188 const ppapi::PpapiPermissions& permissions,
189 bool incognito,
190 SerializedHandle handle) {
191 // Tell the process-global GetInterface which interfaces it can return to the
192 // plugin.
193 ppapi::proxy::InterfaceList::SetProcessGlobalPermissions(
194 permissions);
195
188 PluginDispatcher* dispatcher = 196 PluginDispatcher* dispatcher =
189 new PluginDispatcher(::PPP_GetInterface, incognito); 197 new PluginDispatcher(::PPP_GetInterface, permissions, incognito);
190 // The channel handle's true name is not revealed here. 198 // The channel handle's true name is not revealed here.
191 IPC::ChannelHandle channel_handle("nacl", handle.descriptor()); 199 IPC::ChannelHandle channel_handle("nacl", handle.descriptor());
192 if (!dispatcher->InitPluginWithChannel(this, channel_handle, false)) { 200 if (!dispatcher->InitPluginWithChannel(this, channel_handle, false)) {
193 delete dispatcher; 201 delete dispatcher;
194 return; 202 return;
195 } 203 }
196 // From here, the dispatcher will manage its own lifetime according to the 204 // From here, the dispatcher will manage its own lifetime according to the
197 // lifetime of the attached channel. 205 // lifetime of the attached channel.
198 } 206 }
199 207
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 PpapiDispatcher ppapi_dispatcher(io_thread.message_loop_proxy()); 270 PpapiDispatcher ppapi_dispatcher(io_thread.message_loop_proxy());
263 plugin_globals.set_plugin_proxy_delegate(&ppapi_dispatcher); 271 plugin_globals.set_plugin_proxy_delegate(&ppapi_dispatcher);
264 272
265 loop.Run(); 273 loop.Run();
266 274
267 NaClSrpcModuleFini(); 275 NaClSrpcModuleFini();
268 276
269 return 0; 277 return 0;
270 } 278 }
271 279
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_dispatcher.cc ('k') | ppapi/proxy/ppapi_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698