Index: third_party/WebKit/Source/core/mojo/Mojo.idl |
diff --git a/third_party/WebKit/Source/core/mojo/Mojo.idl b/third_party/WebKit/Source/core/mojo/Mojo.idl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fcca210443e70d56087bdf6583e9c566d449b362 |
--- /dev/null |
+++ b/third_party/WebKit/Source/core/mojo/Mojo.idl |
@@ -0,0 +1,48 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+typedef unsigned long MojoResult; |
+typedef unsigned long MojoHandleSignals; |
+typedef unsigned long MojoCreateMessagePipeOptionsFlags; |
+typedef unsigned long MojoWriteMessageFlags; |
+typedef unsigned long MojoReadMessageFlags; |
+ |
+callback MojoWatchCallback = void (MojoResult result); |
+ |
+interface Mojo { |
jbroman
2016/12/20 23:21:57
Should all of these interfaces have [NoInterfaceOb
alokp
2017/01/09 23:33:09
We do need to install MojoHandle interface so that
jbroman
2017/01/10 20:46:30
1. My main concern here is that I do not want all
alokp
2017/01/11 21:53:01
Is this concern about cluttering the context with
jbroman
2017/01/11 23:00:00
Right, I don't want the interface to be visible in
alokp
2017/01/12 01:20:26
OK - Agreed.
jbroman
2017/01/12 02:21:10
OK, it sounds like esprehn sees this as a "real AP
alokp
2017/01/13 01:07:55
Not sure if it makes any difference. But we also n
|
+ const MojoResult RESULT_OK = 0; |
+ const MojoResult RESULT_CANCELLED = 1; |
+ const MojoResult RESULT_UNKNOWN = 2; |
+ const MojoResult RESULT_INVALID_ARGUMENT = 3; |
+ const MojoResult RESULT_DEADLINE_EXCEEDED = 4; |
+ const MojoResult RESULT_NOT_FOUND = 5; |
+ const MojoResult RESULT_ALREADY_EXISTS = 6; |
+ const MojoResult RESULT_PERMISSION_DENIED = 7; |
+ const MojoResult RESULT_RESOURCE_EXHAUSTED = 8; |
+ const MojoResult RESULT_FAILED_PRECONDITION = 9; |
+ const MojoResult RESULT_ABORTED = 10; |
+ const MojoResult RESULT_OUT_OF_RANGE = 11; |
+ const MojoResult RESULT_UNIMPLEMENTED = 12; |
+ const MojoResult RESULT_INTERNAL = 13; |
+ const MojoResult RESULT_UNAVAILABLE = 14; |
+ const MojoResult RESULT_DATA_LOSS = 15; |
+ const MojoResult RESULT_BUSY = 16; |
+ const MojoResult RESULT_SHOULD_WAIT = 17; |
+ |
+ const MojoHandleSignals HANDLE_SIGNAL_NONE = 0; |
+ const MojoHandleSignals HANDLE_SIGNAL_READABLE = 1; |
+ const MojoHandleSignals HANDLE_SIGNAL_WRITABLE = 2; |
+ const MojoHandleSignals HANDLE_SIGNAL_PEER_CLOSED = 4; |
+ |
+ const MojoCreateMessagePipeOptionsFlags CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE = 0; |
+ const MojoWriteMessageFlags WRITE_MESSAGE_FLAG_NONE = 0; |
+ const MojoReadMessageFlags READ_MESSAGE_FLAG_NONE = 0; |
+ const MojoReadMessageFlags READ_MESSAGE_FLAG_MAY_DISCARD = 1; |
+ |
+ [CallWith=ScriptState] MojoWatcher watch(MojoHandle handle, MojoHandleSignals signals, MojoWatchCallback callback); |
jbroman
2016/12/21 18:09:48
Most of these look like they could be interface me
alokp
2017/01/09 23:33:09
Good idea. Moved watch, read/writeMessage to MojoH
|
+ |
+ MojoCreateMessagePipeResult createMessagePipe(MojoCreateMessagePipeOptions options); |
+ MojoResult writeMessage(MojoHandle pipe, BufferSource buffer, sequence<MojoHandle> handles, MojoWriteMessageFlags flags); |
jbroman
2016/12/21 18:09:48
We can probably reduce type confusion by making a
alokp
2017/01/09 23:33:09
Type of MojoHandle is not available when reading a
jbroman
2017/01/10 20:46:30
interface MojoMessagePipeHandle : MojoHandle {};
alokp
2017/01/11 21:53:01
We do not know the type of handle when they are re
|
+ MojoReadMessageResult readMessage(MojoHandle pipe, MojoReadMessageFlags flags); |
+}; |