| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module lite_js_test.mojom; |
| |
| struct TestStruct { |
| enum StructEnum { |
| kZero = 0, |
| kOne = 1, |
| }; |
| |
| const int32 kStructConst = 2; |
| |
| int32 x; |
| int32 y = kStructConst; |
| StructEnum z = StructEnum.kOne; |
| const bool isValid = false; |
| }; |
| |
| union TestUnion { |
| int32 x; |
| TestStruct s; |
| }; |
| |
| // An interface whose definition covers various types of message signatures in |
| // order to exercise the lite JS mojom bindings. |
| interface TestMessageTarget { |
| enum NestedEnum { |
| kFoo, |
| kBar, |
| }; |
| |
| // Zero arguments, no reply. |
| Poke(); |
| |
| // Zero-argument request, zero-argument reply. |
| Ping() => (); |
| |
| // Request and reply both with arguments. |
| Repeat(string? message, array<int32>? numbers) |
| => (string? message, array<int32>? numbers); |
| |
| Echo(NestedEnum nested) => (NestedEnum nested); |
| |
| Deconstruct(TestStruct test_struct) |
| => (int32 x, int32 y, |
| // Using TestStruct.StructEnum causes a compile failure. Use |
| // int32 instead. |
| // TODO(crbug.com/40102018): Change |z| to TestStruct.StructEnum. |
| int32 z); |
| |
| Flatten(array<TestStruct> values) => (array<int32> values); |
| FlattenUnions(array<TestUnion> unions) => (array<int32> x, array<int32> s); |
| FlattenMap(map<int32, int32> test_map) |
| => (array<int32> keys, array<int32> values); |
| |
| RequestSubinterface(pending_receiver<Subinterface> receiver, |
| pending_remote<SubinterfaceClient> client); |
| |
| // This ensures we properly handle method parameters that have reserved |
| // javascript names when generating js bindings. |
| MethodWithReservedNameParameter(array<int32> arguments) |
| => (array<int32> arguments); |
| |
| // Returns true for success case, and -1 for error case. |
| TestResult(bool simulateSuccess) => result<bool, int32>; |
| }; |
| |
| interface Subinterface { |
| Push(int32 value); |
| Flush(); |
| }; |
| |
| interface SubinterfaceClient { |
| DidFlush(array<int32> values); |
| }; |