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.
7 import "mojo/services/public/interfaces/network/network_error.mojom";
15 const uint16 kAbnormalCloseCode = 1006; // stolen from websocket_bridge
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
22 array<string> protocols,
24 handle<data_pipe_consumer> send_stream,
25 WebSocketClient client);
27 // Called after writing |num_bytes| worth of data to the WebSocket's
29 Send(bool fin, MessageType type, uint32 num_bytes);
31 FlowControl(int64 quota);
33 Close(uint16 code, string reason);
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.
41 string selected_subprotocol,
43 handle<data_pipe_consumer> receive_stream);
45 // Called when there is |num_bytes| worth of incoming data available on the
47 DidReceiveData(bool fin, WebSocket.MessageType type, uint32 num_bytes);
49 DidReceiveFlowControl(int64 quota);
51 DidFail(string message);
53 DidClose(bool was_clean, uint16 code, string reason);
55 // Blink has 3 extra methods that we don't implement, because they are used
57 // didStartOpeningHandshake
58 // didFinishOpeningHandshake
59 // didStartClosingHandshake