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 syntax = "proto2"; 6 7 option optimize_for = LITE_RUNTIME; 8 9 package extensions.core_api.cast_channel.proto; 10 11 enum EventType { 12 EVENT_TYPE_UNKNOWN = 0; 13 CAST_SOCKET_CREATED = 1; 14 READY_STATE_CHANGED = 2; 15 CONNECTION_STATE_CHANGED = 3; 16 READ_STATE_CHANGED = 4; 17 WRITE_STATE_CHANGED = 5; 18 ERROR_STATE_CHANGED = 6; 19 CONNECT_FAILED = 7; 20 TCP_SOCKET_CONNECT = 8; // Logged with RV. 21 TCP_SOCKET_SET_KEEP_ALIVE = 9; 22 SSL_CERT_WHITELISTED = 10; 23 SSL_SOCKET_CONNECT = 11; // Logged with RV. 24 SSL_INFO_OBTAINED = 12; 25 DER_ENCODED_CERT_OBTAIN = 13; // Logged with RV. 26 RECEIVED_CHALLENGE_REPLY = 14; 27 AUTH_CHALLENGE_REPLY = 15; 28 CONNECT_TIMED_OUT = 16; 29 SEND_MESSAGE_FAILED = 17; 30 MESSAGE_ENQUEUED = 18; // Message 31 SOCKET_WRITE = 19; // Logged with RV. 32 MESSAGE_WRITTEN = 20; // Message 33 SOCKET_READ = 21; // Logged with RV. 34 MESSAGE_READ = 22; // Message 35 NOTIFY_ON_MESSAGE = 23; // Message 36 NOTIFY_ON_ERROR = 24; 37 SOCKET_CLOSED = 25; 38 } 39 40 enum ChannelAuth { 41 // SSL over TCP. 42 SSL = 1; 43 // SSL over TCP with challenge and receiver signature verification. 44 SSL_VERIFIED = 2; 45 } 46 47 enum ReadyState { 48 READY_STATE_NONE = 1; 49 READY_STATE_CONNECTING = 2; 50 READY_STATE_OPEN = 3; 51 READY_STATE_CLOSING = 4; 52 READY_STATE_CLOSED = 5; 53 } 54 55 enum ConnectionState { 56 CONN_STATE_NONE = 1; 57 CONN_STATE_TCP_CONNECT = 2; 58 CONN_STATE_TCP_CONNECT_COMPLETE = 3; 59 CONN_STATE_SSL_CONNECT = 4; 60 CONN_STATE_SSL_CONNECT_COMPLETE = 5; 61 CONN_STATE_AUTH_CHALLENGE_SEND = 6; 62 CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE = 7; 63 CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE = 8; 64 } 65 66 enum ReadState { 67 READ_STATE_NONE = 1; 68 READ_STATE_READ = 2; 69 READ_STATE_READ_COMPLETE = 3; 70 READ_STATE_DO_CALLBACK = 4; 71 READ_STATE_ERROR = 5; 72 } 73 74 enum WriteState { 75 WRITE_STATE_NONE = 1; 76 WRITE_STATE_WRITE = 2; 77 WRITE_STATE_WRITE_COMPLETE = 3; 78 WRITE_STATE_DO_CALLBACK = 4; 79 WRITE_STATE_ERROR = 5; 80 } 81 82 enum ErrorState { 83 CHANNEL_ERROR_NONE = 1; 84 CHANNEL_ERROR_CHANNEL_NOT_OPEN = 2; 85 CHANNEL_ERROR_AUTHENTICATION_ERROR = 3; 86 CHANNEL_ERROR_CONNECT_ERROR = 4; 87 CHANNEL_ERROR_SOCKET_ERROR = 5; 88 CHANNEL_ERROR_TRANSPORT_ERROR = 6; 89 CHANNEL_ERROR_INVALID_MESSAGE = 7; 90 CHANNEL_ERROR_INVALID_CHANNEL_ID = 8; 91 CHANNEL_ERROR_CONNECT_TIMEOUT = 9; 92 CHANNEL_ERROR_UNKNOWN = 10; 93 } 94 95 enum ChallengeReplyErrorType { 96 CHALLENGE_REPLY_ERROR_NONE = 1; 97 CHALLENGE_REPLY_ERROR_PEER_CERT_EMPTY = 2; 98 CHALLENGE_REPLY_ERROR_WRONG_PAYLOAD_TYPE = 3; 99 CHALLENGE_REPLY_ERROR_NO_PAYLOAD = 4; 100 CHALLENGE_REPLY_ERROR_PAYLOAD_PARSING_FAILED = 5; 101 CHALLENGE_REPLY_ERROR_MESSAGE_ERROR = 6; 102 CHALLENGE_REPLY_ERROR_NO_RESPONSE = 7; 103 CHALLENGE_REPLY_ERROR_FINGERPRINT_NOT_FOUND = 8; 104 CHALLENGE_REPLY_ERROR_NSS_CERT_PARSING_FAILED = 9; 105 CHALLENGE_REPLY_ERROR_NSS_CERT_NOT_SIGNED_BY_TRUSTED_CA = 10; 106 CHALLENGE_REPLY_ERROR_NSS_CANNOT_EXTRACT_PUBLIC_KEY = 11; 107 CHALLENGE_REPLY_ERROR_NSS_SIGNED_BLOBS_MISMATCH = 12; 108 } 109 110 message SocketEvent { 111 // Required 112 optional EventType type = 1; 113 optional int64 timestamp_micros = 2; 114 115 optional string details = 3; 116 117 optional int32 net_return_value = 4; 118 119 optional string message_namespace = 5; 120 121 optional ReadyState ready_state = 6; 122 optional ConnectionState connection_state = 7; 123 optional ReadState read_state = 8; 124 optional WriteState write_state = 9; 125 optional ErrorState error_state = 10; 126 127 optional ChallengeReplyErrorType challenge_reply_error_type = 11; 128 optional int32 nss_error_code = 12; 129 } 130 131 message AggregatedSocketEvent { 132 optional int32 id = 1; 133 optional int32 endpoint_id = 2; 134 optional ChannelAuth channel_auth_type = 3; 135 repeated SocketEvent socket_event = 4; 136 optional int64 bytes_read = 5; 137 optional int64 bytes_written = 6; 138 } 139 140 message Log { 141 // Each AggregatedSocketEvent represents events recorded for a socket. 142 repeated AggregatedSocketEvent aggregated_socket_event = 1; 143 144 // Number of socket log entries evicted by the logger due to size constraints. 145 optional int32 num_evicted_aggregated_socket_events = 2; 146 147 // Number of event log entries evicted by the logger due to size constraints. 148 optional int32 num_evicted_socket_events = 3; 149 } 150