| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #include "native_client/src/trusted/plugin/service_runtime.h" | 7 #include "native_client/src/trusted/plugin/service_runtime.h" |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 #include "native_client/src/trusted/plugin/browser_interface.h" | 26 #include "native_client/src/trusted/plugin/browser_interface.h" |
| 27 #include "native_client/src/trusted/plugin/connected_socket.h" | 27 #include "native_client/src/trusted/plugin/connected_socket.h" |
| 28 #include "native_client/src/trusted/plugin/plugin.h" | 28 #include "native_client/src/trusted/plugin/plugin.h" |
| 29 #include "native_client/src/trusted/plugin/scriptable_handle.h" | 29 #include "native_client/src/trusted/plugin/scriptable_handle.h" |
| 30 #include "native_client/src/trusted/plugin/shared_memory.h" | 30 #include "native_client/src/trusted/plugin/shared_memory.h" |
| 31 #include "native_client/src/trusted/plugin/socket_address.h" | 31 #include "native_client/src/trusted/plugin/socket_address.h" |
| 32 #include "native_client/src/trusted/plugin/srt_socket.h" | 32 #include "native_client/src/trusted/plugin/srt_socket.h" |
| 33 #include "native_client/src/trusted/plugin/utility.h" | 33 #include "native_client/src/trusted/plugin/utility.h" |
| 34 | 34 |
| 35 #include "native_client/src/trusted/weak_ref/call_on_main_thread.h" |
| 36 |
| 35 #include "native_client/src/trusted/service_runtime/nacl_error_code.h" | 37 #include "native_client/src/trusted/service_runtime/nacl_error_code.h" |
| 36 #include "native_client/src/trusted/service_runtime/include/sys/nacl_imc_api.h" | 38 #include "native_client/src/trusted/service_runtime/include/sys/nacl_imc_api.h" |
| 37 | 39 |
| 38 #include "ppapi/c/pp_errors.h" | 40 #include "ppapi/c/pp_errors.h" |
| 39 #include "ppapi/cpp/core.h" | 41 #include "ppapi/cpp/core.h" |
| 40 #include "ppapi/cpp/completion_callback.h" | 42 #include "ppapi/cpp/completion_callback.h" |
| 41 | 43 |
| 42 using std::vector; | 44 using std::vector; |
| 43 | 45 |
| 44 namespace plugin { | 46 namespace plugin { |
| 45 | 47 |
| 46 typedef std::pair<Plugin*, nacl::string> LogCallbackData; | 48 typedef std::pair<Plugin*, nacl::string> LogCallbackData; |
| 47 | 49 |
| 48 struct LogToJavaScriptConsoleResource { | 50 struct LogToJavaScriptConsoleResource { |
| 49 public: | 51 public: |
| 50 LogToJavaScriptConsoleResource(std::string msg, Plugin* plugin_ptr) | 52 LogToJavaScriptConsoleResource(std::string msg, Plugin* plugin_ptr) |
| 51 : message(msg), | 53 : message(msg), |
| 52 plugin(plugin_ptr) {} | 54 plugin(plugin_ptr) {} |
| 53 std::string message; | 55 std::string message; |
| 54 Plugin* plugin; | 56 Plugin* plugin; |
| 55 }; | 57 }; |
| 56 | 58 |
| 57 // Must be called on the main thread. | 59 // Must be called on the main thread. |
| 58 void LogToJavaScriptConsole(nacl::WeakRef<LogToJavaScriptConsoleResource>* wr, | 60 void LogToJavaScriptConsole(LogToJavaScriptConsoleResource* p, |
| 59 int32_t err) { | 61 int32_t err) { |
| 60 UNREFERENCED_PARAMETER(err); | 62 UNREFERENCED_PARAMETER(err); |
| 61 nacl::scoped_ptr<LogToJavaScriptConsoleResource> p; | |
| 62 wr->ReleaseAndUnref(&p); | |
| 63 if (p == NULL) { | |
| 64 NaClLog(1, "LogToJavaScriptConsole: Weak ref died\n"); | |
| 65 return; | |
| 66 } | |
| 67 NaClLog(1, "LogToJavaScriptConsole: Weak ref okay: %p\n", | |
| 68 reinterpret_cast<void*>(p.get())); | |
| 69 p->plugin->browser_interface()->AddToConsole(p->plugin->instance_id(), | 63 p->plugin->browser_interface()->AddToConsole(p->plugin->instance_id(), |
| 70 p->message); | 64 p->message); |
| 71 } | 65 } |
| 72 | 66 |
| 73 void PluginReverseInterface::Log(nacl::string message) { | 67 void PluginReverseInterface::Log(nacl::string message) { |
| 74 (void) WeakRefCompletionCallback(anchor_, 0, | 68 (void) plugin::WeakRefCallOnMainThread( |
| 75 LogToJavaScriptConsole, | 69 anchor_, |
| 76 new LogToJavaScriptConsoleResource( | 70 0, /* delay in ms */ |
| 77 message, plugin_)); | 71 LogToJavaScriptConsole, |
| 72 new LogToJavaScriptConsoleResource( |
| 73 message, plugin_)); |
| 78 } | 74 } |
| 79 | 75 |
| 80 ServiceRuntime::ServiceRuntime(Plugin* plugin) | 76 ServiceRuntime::ServiceRuntime(Plugin* plugin) |
| 81 : default_socket_address_(NULL), | 77 : default_socket_address_(NULL), |
| 82 plugin_(plugin), | 78 plugin_(plugin), |
| 83 browser_interface_(plugin->browser_interface()), | 79 browser_interface_(plugin->browser_interface()), |
| 84 runtime_channel_(NULL), | 80 runtime_channel_(NULL), |
| 85 reverse_service_(NULL), | 81 reverse_service_(NULL), |
| 86 subprocess_(NULL), | 82 subprocess_(NULL), |
| 87 async_receive_desc_(NULL), | 83 async_receive_desc_(NULL), |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 SocketAddress::New(plugin, descs[0])); | 396 SocketAddress::New(plugin, descs[0])); |
| 401 cleanup: | 397 cleanup: |
| 402 // TODO(sehr,mseaborn): use scoped_ptr for management of DescWrappers. | 398 // TODO(sehr,mseaborn): use scoped_ptr for management of DescWrappers. |
| 403 delete imc_desc; | 399 delete imc_desc; |
| 404 PLUGIN_PRINTF(("ServiceRuntime::GetSocketAddress (return %p)\n", | 400 PLUGIN_PRINTF(("ServiceRuntime::GetSocketAddress (return %p)\n", |
| 405 static_cast<void*>(retval))); | 401 static_cast<void*>(retval))); |
| 406 return retval; | 402 return retval; |
| 407 } | 403 } |
| 408 | 404 |
| 409 } // namespace plugin | 405 } // namespace plugin |
| OLD | NEW |