Index: ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc |
diff --git a/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc b/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc |
index 486696bce53f2683a345a62652508840ffa6e73e..7fcfa916e40ee31b6875504118691477dbccbd45 100644 |
--- a/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc |
+++ b/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc |
@@ -3,11 +3,11 @@ |
// found in the LICENSE file. |
#include "native_client/src/include/nacl_macros.h" |
+#include "ppapi/c/pp_errors.h" |
+#include "ppapi/cpp/module.h" |
#include "ppapi/native_client/src/trusted/plugin/nacl_entry_points.h" |
#include "ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h" |
-#include "ppapi/cpp/var.h" |
- |
LaunchNaClProcessFunc launch_nacl_process = NULL; |
namespace plugin { |
@@ -17,7 +17,7 @@ bool SelLdrLauncherChrome::Start(const char* url) { |
return false; |
} |
-bool SelLdrLauncherChrome::Start(PP_Instance instance, |
+void SelLdrLauncherChrome::Start(PP_Instance instance, |
const char* url, |
bool uses_irt, |
bool uses_ppapi, |
@@ -25,29 +25,23 @@ bool SelLdrLauncherChrome::Start(PP_Instance instance, |
bool enable_dyncode_syscalls, |
bool enable_exception_handling, |
bool enable_crash_throttling, |
- nacl::string* error_message) { |
- *error_message = ""; |
- if (!launch_nacl_process) |
- return false; |
- PP_Var var_error_message; |
- // send a synchronous message to the browser process |
- if (launch_nacl_process(instance, |
- url, |
- PP_FromBool(uses_irt), |
- PP_FromBool(uses_ppapi), |
- PP_FromBool(enable_ppapi_dev), |
- PP_FromBool(enable_dyncode_syscalls), |
- PP_FromBool(enable_exception_handling), |
- PP_FromBool(enable_crash_throttling), |
- &channel_, |
- &var_error_message) != PP_EXTERNAL_PLUGIN_OK) { |
- pp::Var var_error_message_cpp(pp::PASS_REF, var_error_message); |
- if (var_error_message_cpp.is_string()) { |
- *error_message = var_error_message_cpp.AsString(); |
- } |
- return false; |
+ PP_Var* error_message, |
+ pp::CompletionCallback callback) { |
+ if (!launch_nacl_process) { |
+ pp::Module::Get()->core()->CallOnMainThread(0, callback, PP_ERROR_FAILED); |
+ return; |
} |
- return true; |
+ launch_nacl_process(instance, |
+ url, |
+ PP_FromBool(uses_irt), |
+ PP_FromBool(uses_ppapi), |
+ PP_FromBool(enable_ppapi_dev), |
+ PP_FromBool(enable_dyncode_syscalls), |
+ PP_FromBool(enable_exception_handling), |
+ PP_FromBool(enable_crash_throttling), |
+ &channel_, |
+ error_message, |
+ callback.pp_completion_callback()); |
} |
} // namespace plugin |