Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / mojo / apps / js / test / js_to_cpp.mojom
1 module js_to_cpp {
2
3 // This struct encompasses all of the basic types, so that they
4 // may be sent from C++ to JS and back for validation.
5 struct EchoArgs {
6   int64 si64;
7   int32 si32;
8   int16 si16;
9   int8  si8;
10   uint64 ui64;
11   uint32 ui32;
12   uint16 ui16;
13   uint8  ui8;
14   float float_val;
15   float float_inf;
16   float float_nan;
17   double double_val;
18   double double_inf;
19   double double_nan;
20   string? name;
21   string[]? string_array;
22   handle<message_pipe>? message_handle;
23   handle<data_pipe_consumer>? data_handle;
24 };
25
26 struct EchoArgsList {
27   EchoArgsList? next;
28   EchoArgs? item;
29 };
30
31 // Note: For messages which control test flow, pick numbers that are unlikely
32 // to be hit as a result of our deliberate corruption of response messages.
33 interface CppSide {
34   // Sent for all tests to notify that the JS side is now ready.
35   StartTest@88888888();
36
37   // Indicates end for echo, bit-flip, and back-pointer tests.
38   TestFinished@99999999();
39
40   // Responses from specific tests.
41   PingResponse();
42   EchoResponse(EchoArgsList list);
43   BitFlipResponse(EchoArgsList arg);
44   BackPointerResponse(EchoArgsList arg);
45 };
46
47 [Client=CppSide]
48 interface JsSide {
49   Ping();
50   Echo(int32 numIterations, EchoArgs arg);
51   BitFlip(EchoArgs arg);
52   BackPointer(EchoArgs arg);
53 };
54
55 }