OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 module mojo; | |
6 | |
7 import "mojo/services/public/interfaces/network/network_error.mojom"; | |
8 | |
9 interface WebSocket { | |
10 enum MessageType { | |
11 CONTINUATION, | |
12 TEXT, | |
13 BINARY | |
14 }; | |
15 const uint16 kAbnormalCloseCode = 1006; // stolen from websocket_bridge | |
16 | |
17 // Initiates a WebSocket connection to the given url. |send_stream| is a data | |
18 // pipe which should remain open for the lifetime of the WebSocket. Data | |
19 // to send over the WebSocket should be written to the producer end of the | |
20 // |send_stream|. | |
21 Connect(string url, | |
22 array<string> protocols, | |
23 string origin, | |
24 handle<data_pipe_consumer> send_stream, | |
25 WebSocketClient client); | |
26 | |
27 // Called after writing |num_bytes| worth of data to the WebSocket's | |
28 // |send_stream|. | |
29 Send(bool fin, MessageType type, uint32 num_bytes); | |
30 | |
31 FlowControl(int64 quota); | |
32 | |
33 Close(uint16 code, string reason); | |
34 }; | |
35 | |
36 interface WebSocketClient { | |
37 // Called in response to a WebSocket.Connect call to indicate success or | |
38 // failure. |receive_stream| is a data pipe which where incoming data from | |
39 // the server is written. | |
40 DidConnect(bool fail, | |
41 string selected_subprotocol, | |
42 string extensions, | |
43 handle<data_pipe_consumer> receive_stream); | |
44 | |
45 // Called when there is |num_bytes| worth of incoming data available on the | |
46 // |receive_stream|. | |
47 DidReceiveData(bool fin, WebSocket.MessageType type, uint32 num_bytes); | |
48 | |
49 DidReceiveFlowControl(int64 quota); | |
50 | |
51 DidFail(string message); | |
52 | |
53 DidClose(bool was_clean, uint16 code, string reason); | |
54 | |
55 // Blink has 3 extra methods that we don't implement, because they are used | |
56 // for the inspector: | |
57 // didStartOpeningHandshake | |
58 // didFinishOpeningHandshake | |
59 // didStartClosingHandshake | |
60 }; | |
OLD | NEW |