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

Side by Side Diff: webkit/glue/plugins/pepper_plugin_module.cc

Issue 4985001: Initial audio implementation. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years 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 | « webkit/glue/plugins/pepper_plugin_module.h ('k') | webkit/glue/webkit_glue.gypi » ('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 #include "webkit/glue/plugins/pepper_plugin_module.h" 5 #include "webkit/glue/plugins/pepper_plugin_module.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 scoped_refptr<PluginModule> lib(new PluginModule()); 347 scoped_refptr<PluginModule> lib(new PluginModule());
348 if (!lib->InitFromEntryPoints(entry_points)) 348 if (!lib->InitFromEntryPoints(entry_points))
349 return NULL; 349 return NULL;
350 350
351 return lib; 351 return lib;
352 } 352 }
353 353
354 // static 354 // static
355 scoped_refptr<PluginModule> PluginModule::CreateOutOfProcessModule( 355 scoped_refptr<PluginModule> PluginModule::CreateOutOfProcessModule(
356 MessageLoop* ipc_message_loop, 356 MessageLoop* ipc_message_loop,
357 base::ProcessHandle plugin_process_handle,
357 const IPC::ChannelHandle& handle, 358 const IPC::ChannelHandle& handle,
358 base::WaitableEvent* shutdown_event) { 359 base::WaitableEvent* shutdown_event) {
359 scoped_refptr<PluginModule> lib(new PluginModule); 360 scoped_refptr<PluginModule> lib(new PluginModule);
360 if (!lib->InitForOutOfProcess(ipc_message_loop, handle, shutdown_event)) 361 if (!lib->InitForOutOfProcess(ipc_message_loop, plugin_process_handle,
362 handle, shutdown_event))
361 return NULL; 363 return NULL;
362 return lib; 364 return lib;
363 } 365 }
364 366
365 // static 367 // static
366 const PPB_Core* PluginModule::GetCore() { 368 const PPB_Core* PluginModule::GetCore() {
367 return &core_interface; 369 return &core_interface;
368 } 370 }
369 371
370 bool PluginModule::InitFromEntryPoints(const EntryPoints& entry_points) { 372 bool PluginModule::InitFromEntryPoints(const EntryPoints& entry_points) {
(...skipping 27 matching lines...) Expand all
398 return false; 400 return false;
399 } 401 }
400 402
401 // We let InitFromEntryPoints() handle setting the all the internal state 403 // We let InitFromEntryPoints() handle setting the all the internal state
402 // of the object other than the |library_| reference. 404 // of the object other than the |library_| reference.
403 library_ = library; 405 library_ = library;
404 return true; 406 return true;
405 } 407 }
406 408
407 bool PluginModule::InitForOutOfProcess(MessageLoop* ipc_message_loop, 409 bool PluginModule::InitForOutOfProcess(MessageLoop* ipc_message_loop,
410 base::ProcessHandle remote_process,
408 const IPC::ChannelHandle& handle, 411 const IPC::ChannelHandle& handle,
409 base::WaitableEvent* shutdown_event) { 412 base::WaitableEvent* shutdown_event) {
410 const PPB_Var_Deprecated* var_interface = 413 const PPB_Var_Deprecated* var_interface =
411 reinterpret_cast<const PPB_Var_Deprecated*>( 414 reinterpret_cast<const PPB_Var_Deprecated*>(
412 GetInterface(PPB_VAR_DEPRECATED_INTERFACE)); 415 GetInterface(PPB_VAR_DEPRECATED_INTERFACE));
413 dispatcher_.reset(new pp::proxy::HostDispatcher(var_interface, 416 dispatcher_.reset(new pp::proxy::HostDispatcher(
414 pp_module(), &GetInterface)); 417 remote_process, var_interface, pp_module(), &GetInterface));
415 418
416 #if defined(OS_POSIX) 419 #if defined(OS_POSIX)
417 // If we received a ChannelHandle, register it now. 420 // If we received a ChannelHandle, register it now.
418 if (handle.socket.fd >= 0) 421 if (handle.socket.fd >= 0)
419 IPC::AddChannelSocket(handle.name, handle.socket.fd); 422 IPC::AddChannelSocket(handle.name, handle.socket.fd);
420 #endif 423 #endif
421 424
422 if (!dispatcher_->InitWithChannel(ipc_message_loop, handle.name, true, 425 if (!dispatcher_->InitWithChannel(ipc_message_loop, handle.name, true,
423 shutdown_event)) { 426 shutdown_event)) {
424 dispatcher_.reset(); 427 dispatcher_.reset();
425 return false; 428 return false;
426 } 429 }
427 430
428 bool init_result = false; 431 bool init_result = false;
429 dispatcher_->Send(new PpapiMsg_InitializeModule(pp_module(), &init_result)); 432 dispatcher_->Send(new PpapiMsg_InitializeModule(pp_module(), &init_result));
430
431 if (!init_result) { 433 if (!init_result) {
432 // TODO(brettw) does the module get unloaded in this case? 434 // TODO(brettw) does the module get unloaded in this case?
433 dispatcher_.reset(); 435 dispatcher_.reset();
434 return false; 436 return false;
435 } 437 }
436 return true; 438 return true;
437 } 439 }
438 440
439 // static 441 // static
440 bool PluginModule::LoadEntryPoints(const base::NativeLibrary& library, 442 bool PluginModule::LoadEntryPoints(const base::NativeLibrary& library,
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 live_plugin_objects_.insert(plugin_object); 546 live_plugin_objects_.insert(plugin_object);
545 } 547 }
546 548
547 void PluginModule::RemovePluginObject(PluginObject* plugin_object) { 549 void PluginModule::RemovePluginObject(PluginObject* plugin_object) {
548 // Don't actually verify that the object is in the set since during module 550 // Don't actually verify that the object is in the set since during module
549 // deletion we'll be in the process of freeing them. 551 // deletion we'll be in the process of freeing them.
550 live_plugin_objects_.erase(plugin_object); 552 live_plugin_objects_.erase(plugin_object);
551 } 553 }
552 554
553 } // namespace pepper 555 } // namespace pepper
OLDNEW
« no previous file with comments | « webkit/glue/plugins/pepper_plugin_module.h ('k') | webkit/glue/webkit_glue.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698