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

Side by Side Diff: ppapi/nacl_irt/ppapi_dispatcher.cc

Issue 849523002: NaCl: Remove reliance on "init_done" SRPC call in the non-PNaCl case (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add comment Created 5 years, 11 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 | « no previous file | ppapi/native_client/src/trusted/plugin/plugin.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ppapi/nacl_irt/ppapi_dispatcher.h" 5 #include "ppapi/nacl_irt/ppapi_dispatcher.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 175 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
176 logging::InitLogging(settings); 176 logging::InitLogging(settings);
177 177
178 proxy::PluginGlobals::Get()->set_keepalive_throttle_interval_milliseconds( 178 proxy::PluginGlobals::Get()->set_keepalive_throttle_interval_milliseconds(
179 args.keepalive_throttle_interval_milliseconds); 179 args.keepalive_throttle_interval_milliseconds);
180 180
181 // Tell the process-global GetInterface which interfaces it can return to the 181 // Tell the process-global GetInterface which interfaces it can return to the
182 // plugin. 182 // plugin.
183 proxy::InterfaceList::SetProcessGlobalPermissions(args.permissions); 183 proxy::InterfaceList::SetProcessGlobalPermissions(args.permissions);
184 184
185 // Notify the renderer process, if necessary.
186 ManifestService* manifest_service = GetManifestService();
187 if (manifest_service)
188 manifest_service->StartupInitializationComplete();
189
185 int32_t error = ::PPP_InitializeModule( 190 int32_t error = ::PPP_InitializeModule(
186 0 /* module */, 191 0 /* module */,
187 &proxy::PluginDispatcher::GetBrowserInterface); 192 &proxy::PluginDispatcher::GetBrowserInterface);
188 if (error) 193 if (error)
189 ::exit(error); 194 ::exit(error);
190 195
191 proxy::PluginDispatcher* dispatcher = 196 proxy::PluginDispatcher* dispatcher =
192 new proxy::PluginDispatcher(::PPP_GetInterface, args.permissions, 197 new proxy::PluginDispatcher(::PPP_GetInterface, args.permissions,
193 args.off_the_record); 198 args.off_the_record);
194 IPC::ChannelHandle channel_handle( 199 IPC::ChannelHandle channel_handle(
195 "nacl", 200 "nacl",
196 base::FileDescriptor(renderer_ipc_fd_, false)); 201 base::FileDescriptor(renderer_ipc_fd_, false));
197 if (!dispatcher->InitPluginWithChannel(this, base::kNullProcessId, 202 if (!dispatcher->InitPluginWithChannel(this, base::kNullProcessId,
198 channel_handle, false)) { 203 channel_handle, false)) {
199 delete dispatcher; 204 delete dispatcher;
200 return; 205 return;
201 } 206 }
202 // From here, the dispatcher will manage its own lifetime according to the 207 // From here, the dispatcher will manage its own lifetime according to the
203 // lifetime of the attached channel. 208 // lifetime of the attached channel.
204
205 // Notify the renderer process, if necessary.
206 ManifestService* manifest_service = GetManifestService();
207 if (manifest_service)
208 manifest_service->StartupInitializationComplete();
209 } 209 }
210 210
211 void PpapiDispatcher::OnPluginDispatcherMessageReceived( 211 void PpapiDispatcher::OnPluginDispatcherMessageReceived(
212 const IPC::Message& msg) { 212 const IPC::Message& msg) {
213 // The first parameter should be a plugin dispatcher ID. 213 // The first parameter should be a plugin dispatcher ID.
214 PickleIterator iter(msg); 214 PickleIterator iter(msg);
215 uint32 id = 0; 215 uint32 id = 0;
216 if (!iter.ReadUInt32(&id)) { 216 if (!iter.ReadUInt32(&id)) {
217 NOTREACHED(); 217 NOTREACHED();
218 return; 218 return;
219 } 219 }
220 std::map<uint32, proxy::PluginDispatcher*>::iterator dispatcher = 220 std::map<uint32, proxy::PluginDispatcher*>::iterator dispatcher =
221 plugin_dispatchers_.find(id); 221 plugin_dispatchers_.find(id);
222 if (dispatcher != plugin_dispatchers_.end()) 222 if (dispatcher != plugin_dispatchers_.end())
223 dispatcher->second->OnMessageReceived(msg); 223 dispatcher->second->OnMessageReceived(msg);
224 } 224 }
225 225
226 } // namespace ppapi 226 } // namespace ppapi
OLDNEW
« no previous file with comments | « no previous file | ppapi/native_client/src/trusted/plugin/plugin.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698