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

Unified Diff: native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc

Issue 334983007: [NaCl SDK] Remove use of TIOCNACLINPUT from nacl_io/ppapi_simple. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc
diff --git a/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc b/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc
index bee1ed1fe2ba5faa6d3a1ae8efa3aa49a5bc872f..e9f800d2ccb0f32d42a33771c3a9011d95c13039 100644
--- a/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc
+++ b/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc
@@ -290,7 +290,7 @@ bool PSInstance::ProcessProperties() {
exit_message_ = getenv("PS_EXIT_MESSAGE");
- // If PS_EXIT_MESSAGE is set in the envionment then we perform a handshake
+ // If PS_EXIT_MESSAGE is set in the environment then we perform a handshake
// with JavaScript when program exits.
if (exit_message_ != NULL)
nacl_io_register_exit_handler(HandleExitStatic, this);
@@ -409,22 +409,6 @@ void PSInstance::MessageHandlerInput(const pp::Var& key,
const pp::Var& message) {
std::string key_string = key.AsString();
- if (message.is_string() && key_string == tty_prefix_) {
- std::string buffer = message.AsString();
-
- // Since our message may contain null characters, we can't send it as a
- // naked C string, so we package it up in this struct before sending it
- // to the ioctl.
- struct tioc_nacl_input_string ioctl_message;
- ioctl_message.length = buffer.size();
- ioctl_message.buffer = buffer.c_str();
- int ret = ioctl(tty_fd_, TIOCNACLINPUT, &ioctl_message);
- if (ret != 0 && errno != ENOTTY) {
- Error("ioctl returned unexpected error: %d.\n", ret);
- }
- return;
- }
-
if (!message.is_array_buffer()) {
Error("Expected ArrayBuffer object but got: %d", message.pp_var().type);
return;
@@ -453,12 +437,15 @@ void PSInstance::MessageHandlerInput(const pp::Var& key,
int ret = ioctl(fd, NACL_IOC_HANDLEMESSAGE, &message.pp_var());
if (ret != 0) {
Error("ioctl on %s failed: %d.\n", filename, ret);
+ close(fd);
return;
}
+
+ close(fd);
}
void PSInstance::HandleExitStatic(int status, void* user_data) {
- PSInstance* instance = reinterpret_cast<PSInstance*>(user_data);
+ PSInstance* instance = static_cast<PSInstance*>(user_data);
instance->ExitHandshake(status);
}
@@ -483,28 +470,28 @@ void PSInstance::MessageHandlerResize(const pp::Var& message) {
ssize_t PSInstance::TtyOutputHandlerStatic(const char* buf,
size_t count,
void* user_data) {
- PSInstance* instance = reinterpret_cast<PSInstance*>(user_data);
+ PSInstance* instance = static_cast<PSInstance*>(user_data);
return instance->TtyOutputHandler(buf, count);
}
void PSInstance::MessageHandlerExitStatic(const pp::Var& key,
const pp::Var& value,
void* user_data) {
- PSInstance* instance = reinterpret_cast<PSInstance*>(user_data);
+ PSInstance* instance = static_cast<PSInstance*>(user_data);
instance->MessageHandlerExit(value);
}
void PSInstance::MessageHandlerInputStatic(const pp::Var& key,
const pp::Var& value,
void* user_data) {
- PSInstance* instance = reinterpret_cast<PSInstance*>(user_data);
+ PSInstance* instance = static_cast<PSInstance*>(user_data);
instance->MessageHandlerInput(key, value);
}
void PSInstance::MessageHandlerResizeStatic(const pp::Var& key,
const pp::Var& value,
void* user_data) {
- PSInstance* instance = reinterpret_cast<PSInstance*>(user_data);
+ PSInstance* instance = static_cast<PSInstance*>(user_data);
instance->MessageHandlerResize(value);
}
@@ -525,21 +512,6 @@ void PSInstance::PostEvent(PSEventType type, const PP_Var& var) {
assert(PSE_INSTANCE_HANDLEMESSAGE == type);
pp::Var event(var);
- // Legacy support for passing TTY input as a string <prefix>:<payload>
- // TODO(sbc): remove this in a future release.
- if (tty_fd_ >= 0 && event.is_string()) {
- std::string message = event.AsString();
- size_t prefix_len = strlen(tty_prefix_);
- if (message.size() > prefix_len) {
- if (!strncmp(message.c_str(), tty_prefix_, prefix_len)) {
- LOG_WARN("Passing TTY data using a string prefix is deprecated. "
- "Use a JavaScript dictionary instead.");
- MessageHandlerInput(pp::Var(message.substr(0, prefix_len)),
- pp::Var(message.substr(prefix_len)));
- return;
- }
- }
- }
// If the message is a dictionary then see if it matches one
// of the specific handlers, then call that handler rather than
@@ -550,8 +522,7 @@ void PSInstance::PostEvent(PSEventType type, const PP_Var& var) {
if (keys.GetLength() == 1) {
pp::Var key = keys.Get(0);
Trace("calling handler for: %s", key.AsString().c_str());
- MessageHandlerMap::iterator iter =
- message_handlers_.find(key.AsString());
+ MessageHandlerMap::iterator iter = message_handlers_.find(key.AsString());
if (iter != message_handlers_.end()) {
MessageHandler_t handler = iter->second.handler;
void* user_data = iter->second.user_data;

Powered by Google App Engine
This is Rietveld 408576698