SupervisedUser SafeSites: Switch to the new SafeSearch API
[chromium-blink-merge.git] / mojo / services / network / public / interfaces / http_connection.mojom
blob2cb79bd9ee7b384a249ef4d4e1dd03a0f50d6a6e
1 // Copyright 2015 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.
5 module mojo;
7 import "network/public/interfaces/http_message.mojom";
8 import "network/public/interfaces/network_error.mojom";
9 import "network/public/interfaces/web_socket.mojom";
11 interface HttpConnection {
12   // Sets the OS send buffer size (in bytes) for the underlying socket.
13   SetSendBufferSize(uint32 size) => (NetworkError result);
15   // Sets the OS receive buffer size (in bytes) for the underlying socket.
16   SetReceiveBufferSize(uint32 size) => (NetworkError result);
19 interface HttpConnectionDelegate {
20   // Called when an HTTP request is received.
21   OnReceivedRequest(HttpRequest request) => (HttpResponse response);
23   // Called when an WebSocket request is received.
24   //
25   // If the delegate decides to accept the request, it should respond with
26   // non-null arguments in the callback. |send_stream| is a data pipe which
27   // should remain open for the lifetime of the WebSocket. Data to send over the
28   // WebSocket should be written to the producer end of the |send_stream|.
29   // |web_socket| will be already connected. There is no need to call Connect()
30   // on it. But |client| will still receive a DidConnect() notification.
31   //
32   // NOTE: WebSocket server support is not fully implemented. For now the
33   // following are not supported:
34   // - negotiating subprotocol or extension;
35   // - fragmented or non-text messages;
36   // - failure or close notification;
37   // - flow control.
38   OnReceivedWebSocketRequest(HttpRequest request)
39       => (WebSocket&? web_socket,
40           handle<data_pipe_consumer>? send_stream,
41           WebSocketClient? client);