Index: device/serial/serial_io_handler_posix.cc |
diff --git a/device/serial/serial_io_handler_posix.cc b/device/serial/serial_io_handler_posix.cc |
index 7f0d45883d925cde2ea7313f8b21305bd2009496..a2ca2e2309630af6bfef68847675b8404a5c8a3d 100644 |
--- a/device/serial/serial_io_handler_posix.cc |
+++ b/device/serial/serial_io_handler_posix.cc |
@@ -7,6 +7,7 @@ |
#include <sys/ioctl.h> |
#include <termios.h> |
+#include "base/files/file_util.h" |
#include "base/posix/eintr_wrapper.h" |
#include "build/build_config.h" |
@@ -281,6 +282,15 @@ bool SerialIoHandlerPosix::ConfigurePortImpl() { |
return true; |
} |
+bool SerialIoHandlerPosix::PostOpen() { |
+#if defined(OS_CHROMEOS) |
+ // The Chrome OS permission broker does not open devices in async mode. |
+ return base::SetNonBlocking(file().GetPlatformFile()); |
+#else |
+ return true; |
+#endif |
+} |
+ |
SerialIoHandlerPosix::SerialIoHandlerPosix( |
scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, |
scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) |