| // Copyright 2017 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. |
| |
| // IDL for mojo core module. This is not a specced IDL. |
| |
| typedef unsigned long MojoResult; |
| |
| enum MojoScope { |
| // Refers to the InterfaceProvider associated with the current execution |
| // context. Either a Document or WorkerGlobalScope. |
| "context", |
| // Refers to the InterfaceProvider of the current process. |
| // |
| // Note: A "process" is not a web concept. In some cases the browser process |
| // concept of a "site instance" may be useful however there is currently no |
| // InterfaceProvider per site instance. |
| "process", |
| }; |
| |
| [ |
| ContextEnabled=MojoJS, |
| Exposed=(Window,Worker), |
| RuntimeEnabled=MojoJS |
| ] interface Mojo { |
| 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; |
| |
| static MojoCreateMessagePipeResult createMessagePipe(); |
| static MojoCreateDataPipeResult createDataPipe(MojoCreateDataPipeOptions options); |
| static MojoCreateSharedBufferResult createSharedBuffer(unsigned long numBytes); |
| |
| [CallWith=ScriptState] static void bindInterface(DOMString interfaceName, MojoHandle request_handle, optional MojoScope scope = "context"); |
| }; |