// Copyright (c) 2010 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. // NOTE: No header guards are used, since this file is intended to be expanded // directly into net_log.h. DO NOT include this file anywhere else. // -------------------------------------------------------------------------- // General pseudo-events // -------------------------------------------------------------------------- // Something got cancelled (we determine what is cancelled based on the // log context around it.) EVENT_TYPE(CANCELLED) // Marks the creation/destruction of a request (net::URLRequest or // SocketStream). EVENT_TYPE(REQUEST_ALIVE) // ------------------------------------------------------------------------ // HostResolverImpl // ------------------------------------------------------------------------ // The start/end of waiting on a host resolve (DNS) request. // The BEGIN phase contains the following parameters: // // { // "source_dependency": , // } EVENT_TYPE(HOST_RESOLVER_IMPL) // The start/end of a host resolve (DNS) request. Note that these events are // logged for all DNS requests, though not all requests result in the creation // of a HostResolvedImpl::Request object. // // The BEGIN phase contains the following parameters: // // { // "host": , // "source_dependency": , // } // // If an error occurred, the END phase will contain these parameters: // { // "net_error": , // "os_error": , // } EVENT_TYPE(HOST_RESOLVER_IMPL_REQUEST) // This event is logged when a request is handled by a cache entry. EVENT_TYPE(HOST_RESOLVER_IMPL_CACHE_HIT) // This event means a request was queued/dequeued for subsequent job creation, // because there are already too many active HostResolverImpl::Jobs. // // The BEGIN phase contains the following parameters: // // { // "priority": , // } EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_POOL_QUEUE) // This event is created when a new HostResolverImpl::Request is evicted from // JobPool without a Job being created, because the limit on number of queued // Requests was reached. EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_POOL_QUEUE_EVICTED) // This event is created when a new HostResolverImpl::Job is about to be created // for a request. EVENT_TYPE(HOST_RESOLVER_IMPL_CREATE_JOB) // This is logged for a request when it's attached to a // HostResolverImpl::Job. When this occurs without a preceding // HOST_RESOLVER_IMPL_CREATE_JOB entry, it means the request was attached to an // existing HostResolverImpl::Job. // // If the BoundNetLog used to create the event has a valid source id, the BEGIN // phase contains the following parameters: // // { // "source_dependency": , // } EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_ATTACH) // The creation/completion of a host resolve (DNS) job. // The BEGIN phase contains the following parameters: // // { // "host": , // "source_dependency": , // } // // On success, the END phase has these parameters: // { // "address_list": , // } // If an error occurred, the END phase will contain these parameters: // { // "net_error": , // "os_error": , // } EVENT_TYPE(HOST_RESOLVER_IMPL_JOB) // ------------------------------------------------------------------------ // InitProxyResolver // ------------------------------------------------------------------------ // The start/end of auto-detect + custom PAC URL configuration. EVENT_TYPE(INIT_PROXY_RESOLVER) // The start/end of when proxy autoconfig was artificially paused following // a network change event. (We wait some amount of time after being told of // network changes to avoid hitting spurious errors during auto-detect). EVENT_TYPE(INIT_PROXY_RESOLVER_WAIT) // The start/end of download of a PAC script. This could be the well-known // WPAD URL (if testing auto-detect), or a custom PAC URL. // // The START event has the parameters: // { // "url": , // } // // If the fetch failed, then the END phase has these parameters: // { // "error_code": , // } EVENT_TYPE(INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT) // The start/end of the testing of a PAC script (trying to parse the fetched // file as javascript). // // If the parsing of the script failed, the END phase will have parameters: // { // "error_code": , // } EVENT_TYPE(INIT_PROXY_RESOLVER_SET_PAC_SCRIPT) // This event means that initialization failed because there was no // configured script fetcher. (This indicates a configuration error). EVENT_TYPE(INIT_PROXY_RESOLVER_HAS_NO_FETCHER) // This event is emitted after deciding to fall-back to the next PAC // script in the list. EVENT_TYPE(INIT_PROXY_RESOLVER_FALLING_BACK_TO_NEXT_PAC_URL) // ------------------------------------------------------------------------ // ProxyService // ------------------------------------------------------------------------ // The start/end of a proxy resolve request. EVENT_TYPE(PROXY_SERVICE) // The time while a request is waiting on InitProxyResolver to configure // against either WPAD or custom PAC URL. The specifics on this time // are found from ProxyService::init_proxy_resolver_log(). EVENT_TYPE(PROXY_SERVICE_WAITING_FOR_INIT_PAC) // This event is emitted to show what the PAC script returned. It can contain // extra parameters that are either: // { // "pac_string": , // } // // Or if the the resolver failed: // { // "net_error": , // } EVENT_TYPE(PROXY_SERVICE_RESOLVED_PROXY_LIST) // This event is emitted whenever the proxy settings used by ProxyService // change. // // It contains these parameters: // { // "old_config": , // "new_config": , // } // // Note that the "old_config" key will be omitted on the first fetch of the // proxy settings (since there wasn't a previous value). EVENT_TYPE(PROXY_CONFIG_CHANGED) // ------------------------------------------------------------------------ // Proxy Resolver // ------------------------------------------------------------------------ // Measures the time taken to execute the "myIpAddress()" javascript binding. EVENT_TYPE(PAC_JAVASCRIPT_MY_IP_ADDRESS) // Measures the time taken to execute the "myIpAddressEx()" javascript binding. EVENT_TYPE(PAC_JAVASCRIPT_MY_IP_ADDRESS_EX) // Measures the time taken to execute the "dnsResolve()" javascript binding. EVENT_TYPE(PAC_JAVASCRIPT_DNS_RESOLVE) // Measures the time taken to execute the "dnsResolveEx()" javascript binding. EVENT_TYPE(PAC_JAVASCRIPT_DNS_RESOLVE_EX) // This event is emitted when a javascript error has been triggered by a // PAC script. It contains the following event parameters: // { // "line_number": , // "message": , // } EVENT_TYPE(PAC_JAVASCRIPT_ERROR) // This event is emitted when a PAC script called alert(). It contains the // following event parameters: // { // "message": , // } EVENT_TYPE(PAC_JAVASCRIPT_ALERT) // Measures the time that a proxy resolve request was stalled waiting for a // proxy resolver thread to free-up. EVENT_TYPE(WAITING_FOR_PROXY_RESOLVER_THREAD) // This event is emitted just before a PAC request is bound to a thread. It // contains these parameters: // // { // "thread_number": , // } EVENT_TYPE(SUBMITTED_TO_RESOLVER_THREAD) // ------------------------------------------------------------------------ // ClientSocket // ------------------------------------------------------------------------ // The start/end of a TCP connect(). This corresponds with a call to // TCPClientSocket::Connect(). // // The START event contains these parameters: // // { // "address_list": , // } // // And the END event will contain the following parameters on failure: // // { // "net_error": , // } EVENT_TYPE(TCP_CONNECT) // Nested within TCP_CONNECT, there may be multiple attempts to connect // to the individual addresses. The START event will describe the // address the attempt is for: // // { // "address": , // } // // And the END event will contain the system error code if it failed: // // { // "os_error": , // } EVENT_TYPE(TCP_CONNECT_ATTEMPT) // The start/end of a TCP connect(). This corresponds with a call to // TCPServerSocket::Accept(). // // The END event will contain the following parameters on success: // { // "address": , // } // On failure it contains the following parameters // { // "net_error": , // } EVENT_TYPE(TCP_ACCEPT) // Marks the begin/end of a socket (TCP/SOCKS/SSL). EVENT_TYPE(SOCKET_ALIVE) // This event is logged to the socket stream whenever the socket is // acquired/released via a ClientSocketHandle. // // The BEGIN phase contains the following parameters: // // { // "source_dependency": , // } EVENT_TYPE(SOCKET_IN_USE) // The start/end of a SOCKS connect(). EVENT_TYPE(SOCKS_CONNECT) // The start/end of a SOCKS5 connect(). EVENT_TYPE(SOCKS5_CONNECT) // This event is emitted when the SOCKS connect fails because the provided // was longer than 255 characters. EVENT_TYPE(SOCKS_HOSTNAME_TOO_BIG) // These events are emitted when insufficient data was read while // trying to establish a connection to the SOCKS proxy server // (during the greeting phase or handshake phase, respectively). EVENT_TYPE(SOCKS_UNEXPECTEDLY_CLOSED_DURING_GREETING) EVENT_TYPE(SOCKS_UNEXPECTEDLY_CLOSED_DURING_HANDSHAKE) // This event indicates that a bad version number was received in the // proxy server's response. The extra parameters show its value: // { // "version": , // } EVENT_TYPE(SOCKS_UNEXPECTED_VERSION) // This event indicates that the SOCKS proxy server returned an error while // trying to create a connection. The following parameters will be attached // to the event: // { // "error_code": , // } EVENT_TYPE(SOCKS_SERVER_ERROR) // This event indicates that the SOCKS proxy server asked for an authentication // method that we don't support. The following parameters are attached to the // event: // { // "method": , // } EVENT_TYPE(SOCKS_UNEXPECTED_AUTH) // This event indicates that the SOCKS proxy server's response indicated an // address type which we are not prepared to handle. // The following parameters are attached to the event: // { // "address_type": , // } EVENT_TYPE(SOCKS_UNKNOWN_ADDRESS_TYPE) // The start/end of a SSL connect(). EVENT_TYPE(SSL_CONNECT) // The start/end of a SSL accept(). EVENT_TYPE(SSL_ACCEPT) // An SSL error occurred while trying to do the indicated activity. // The following parameters are attached to the event: // { // "net_error": , // "ssl_lib_error": // } EVENT_TYPE(SSL_HANDSHAKE_ERROR) EVENT_TYPE(SSL_READ_ERROR) EVENT_TYPE(SSL_WRITE_ERROR) // An SSL Snap Start was attempted // The following parameters are attached to the event: // { // "type": , // } EVENT_TYPE(SSL_SNAP_START) // We found that our prediction of the server's certificates was correct and // we merged the verification with the SSLHostInfo. EVENT_TYPE(SSL_VERIFICATION_MERGED) // An SSL error occurred while calling an NSS function not directly related to // one of the above activities. Can also be used when more information than // is provided by just an error code is needed: // { // "function": , // "param": , // "ssl_lib_error": // } EVENT_TYPE(SSL_NSS_ERROR) // The specified number of bytes were sent on the socket. // The following parameters are attached: // { // "byte_count": , // "hex_encoded_bytes": , // } EVENT_TYPE(SOCKET_BYTES_SENT) // The specified number of bytes were received on the socket. // The following parameters are attached: // { // "byte_count": , // "hex_encoded_bytes": , // } EVENT_TYPE(SOCKET_BYTES_RECEIVED) // ------------------------------------------------------------------------ // ClientSocketPoolBase::ConnectJob // ------------------------------------------------------------------------ // The start/end of a ConnectJob. EVENT_TYPE(SOCKET_POOL_CONNECT_JOB) // The start/end of the ConnectJob::Connect(). // // The BEGIN phase has these parameters: // // { // "group_name": , // } EVENT_TYPE(SOCKET_POOL_CONNECT_JOB_CONNECT) // This event is logged whenever the ConnectJob gets a new socket // association. The event parameters point to that socket: // // { // "source_dependency": , // } EVENT_TYPE(CONNECT_JOB_SET_SOCKET) // Whether the connect job timed out. EVENT_TYPE(SOCKET_POOL_CONNECT_JOB_TIMED_OUT) // ------------------------------------------------------------------------ // ClientSocketPoolBaseHelper // ------------------------------------------------------------------------ // The start/end of a client socket pool request for a socket. EVENT_TYPE(SOCKET_POOL) // The request stalled because there are too many sockets in the pool. EVENT_TYPE(SOCKET_POOL_STALLED_MAX_SOCKETS) // The request stalled because there are too many sockets in the group. EVENT_TYPE(SOCKET_POOL_STALLED_MAX_SOCKETS_PER_GROUP) // Indicates that we reused an existing socket. Attached to the event are // the parameters: // { // "idle_ms": , // } EVENT_TYPE(SOCKET_POOL_REUSED_AN_EXISTING_SOCKET) // This event simply describes the host:port that were requested from the // socket pool. Its parameters are: // { // "host_and_port": , // } EVENT_TYPE(TCP_CLIENT_SOCKET_POOL_REQUESTED_SOCKET) // This event simply describes the host:port that were requested from the // socket pool. Its parameters are: // { // "host_and_port": , // } EVENT_TYPE(TCP_CLIENT_SOCKET_POOL_REQUESTED_SOCKETS) // A backup socket is created due to slow connect EVENT_TYPE(SOCKET_BACKUP_CREATED) // This event is sent when a connect job is eventually bound to a request // (because of late binding and socket backup jobs, we don't assign the job to // a request until it has completed). // // The event parameters are: // { // "source_dependency": , // } EVENT_TYPE(SOCKET_POOL_BOUND_TO_CONNECT_JOB) // Identifies the NetLog::Source() for the Socket assigned to the pending // request. The event parameters are: // { // "source_dependency": , // } EVENT_TYPE(SOCKET_POOL_BOUND_TO_SOCKET) // The start/end of a client socket pool request for multiple sockets. // The event parameters are: // { // "num_sockets": , // } EVENT_TYPE(SOCKET_POOL_CONNECTING_N_SOCKETS) // ------------------------------------------------------------------------ // URLRequest // ------------------------------------------------------------------------ // Measures the time it took a net::URLRequestJob to start. For the most part // this corresponds with the time between net::URLRequest::Start() and // net::URLRequest::ResponseStarted(), however it is also repeated for every // redirect, and every intercepted job that handles the request. // // For the BEGIN phase, the following parameters are attached: // { // "url": , // "method": , // "load_flags": , // } // // For the END phase, if there was an error, the following parameters are // attached: // { // "net_error": , // } EVENT_TYPE(URL_REQUEST_START_JOB) // This event is sent once a net::URLRequest receives a redirect. The parameters // attached to the event are: // { // "location": , // } EVENT_TYPE(URL_REQUEST_REDIRECTED) // Measures the time a net::URLRequest is blocked waiting for an extension to // respond to the onBefoteRequest extension event. EVENT_TYPE(URL_REQUEST_BLOCKED_ON_EXTENSION) // ------------------------------------------------------------------------ // HttpCache // ------------------------------------------------------------------------ // Measures the time while getting a reference to the back end. EVENT_TYPE(HTTP_CACHE_GET_BACKEND) // Measures the time while opening a disk cache entry. EVENT_TYPE(HTTP_CACHE_OPEN_ENTRY) // Measures the time while creating a disk cache entry. EVENT_TYPE(HTTP_CACHE_CREATE_ENTRY) // Measures the time it takes to add a HttpCache::Transaction to an http cache // entry's list of active Transactions. EVENT_TYPE(HTTP_CACHE_ADD_TO_ENTRY) // Measures the time while deleting a disk cache entry. EVENT_TYPE(HTTP_CACHE_DOOM_ENTRY) // Measures the time while reading/writing a disk cache entry's response headers // or metadata. EVENT_TYPE(HTTP_CACHE_READ_INFO) EVENT_TYPE(HTTP_CACHE_WRITE_INFO) // Measures the time while reading/writing a disk cache entry's body. EVENT_TYPE(HTTP_CACHE_READ_DATA) EVENT_TYPE(HTTP_CACHE_WRITE_DATA) // ------------------------------------------------------------------------ // Disk Cache / Memory Cache // ------------------------------------------------------------------------ // The creation/destruction of a disk_cache::EntryImpl object. The "creation" // is considered to be the point at which an Entry is first considered to be // good and associated with a key. Note that disk and memory cache entries // share event types. // // For the BEGIN phase, the following parameters are attached: // { // "created": , // "key": , // } EVENT_TYPE(DISK_CACHE_ENTRY_IMPL) EVENT_TYPE(DISK_CACHE_MEM_ENTRY_IMPL) // Logs the time required to read/write data from/to a cache entry. // // For the BEGIN phase, the following parameters are attached: // { // "index": , // "offset": , // "buf_len": , // "truncate": , // } // // For the END phase, the following parameters are attached: // { // "bytes_copied": , // "net_error": , // } EVENT_TYPE(ENTRY_READ_DATA) EVENT_TYPE(ENTRY_WRITE_DATA) // Logged when sparse read/write operation starts/stops for an Entry. // // For the BEGIN phase, the following parameters are attached: // { // "offset": , // "buff_len": , // } EVENT_TYPE(SPARSE_READ) EVENT_TYPE(SPARSE_WRITE) // Logged when a parent Entry starts/stops reading/writing a child Entry's data. // // For the BEGIN phase, the following parameters are attached: // { // "source_dependency": , // "child_len": , // } EVENT_TYPE(SPARSE_READ_CHILD_DATA) EVENT_TYPE(SPARSE_WRITE_CHILD_DATA) // Logged when sparse GetAvailableRange operation starts/stops for an Entry. // // For the BEGIN phase, the following parameters are attached: // { // "buff_len": , // "offset": , // } // // For the END phase, the following parameters are attached. No parameters are // attached when cancelled: // { // "length": , // "start": , // "net_error": , // } EVENT_TYPE(SPARSE_GET_RANGE) // Indicates the children of a sparse EntryImpl are about to be deleted. // Not logged for MemEntryImpls. EVENT_TYPE(SPARSE_DELETE_CHILDREN) // Logged when an EntryImpl is closed. Not logged for MemEntryImpls. EVENT_TYPE(ENTRY_CLOSE) // Logged when an entry is doomed. EVENT_TYPE(ENTRY_DOOM) // ------------------------------------------------------------------------ // HttpStreamFactoryImpl // ------------------------------------------------------------------------ // Measures the time taken to fulfill the HttpStreamRequest. EVENT_TYPE(HTTP_STREAM_REQUEST) // Measures the time taken to execute the HttpStreamFactoryImpl::Job EVENT_TYPE(HTTP_STREAM_JOB) // Identifies the NetLog::Source() for the Job that fulfilled the request. // request. The event parameters are: // { // "source_dependency": , // } EVENT_TYPE(HTTP_STREAM_REQUEST_BOUND_TO_JOB) // ------------------------------------------------------------------------ // HttpNetworkTransaction // ------------------------------------------------------------------------ // Measures the time taken to send the tunnel request to the server. EVENT_TYPE(HTTP_TRANSACTION_TUNNEL_SEND_REQUEST) // This event is sent for a tunnel request. // The following parameters are attached: // { // "line": , // "headers": , // } EVENT_TYPE(HTTP_TRANSACTION_SEND_TUNNEL_HEADERS) // Measures the time to read the tunnel response headers from the server. EVENT_TYPE(HTTP_TRANSACTION_TUNNEL_READ_HEADERS) // This event is sent on receipt of the HTTP response headers to a tunnel // request. // The following parameters are attached: // { // "headers": , // } EVENT_TYPE(HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS) // Measures the time taken to send the request to the server. EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST) // This event is sent for a HTTP request. // The following parameters are attached: // { // "line": , // "headers": , // } EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST_HEADERS) // Measures the time to read HTTP response headers from the server. EVENT_TYPE(HTTP_TRANSACTION_READ_HEADERS) // This event is sent on receipt of the HTTP response headers. // The following parameters are attached: // { // "headers": , // } EVENT_TYPE(HTTP_TRANSACTION_READ_RESPONSE_HEADERS) // Measures the time to read the entity body from the server. EVENT_TYPE(HTTP_TRANSACTION_READ_BODY) // Measures the time taken to read the response out of the socket before // restarting for authentication, on keep alive connections. EVENT_TYPE(HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART) // ------------------------------------------------------------------------ // SpdySession // ------------------------------------------------------------------------ // The start/end of a SpdySession. // { // "host": , // "proxy": , // } EVENT_TYPE(SPDY_SESSION) // This event is sent for a SPDY SYN_STREAM. // The following parameters are attached: // { // "flags": , // "headers": , // "id": , // } EVENT_TYPE(SPDY_SESSION_SYN_STREAM) // This event is sent for a SPDY SYN_STREAM pushed by the server, where a // net::URLRequest is already waiting for the stream. // The following parameters are attached: // { // "flags": , // "headers": , // "id": , // "associated_stream": , // } EVENT_TYPE(SPDY_SESSION_PUSHED_SYN_STREAM) // This event is sent for a SPDY HEADERS frame. // The following parameters are attached: // { // "flags": , // "headers": , // "id": , // } EVENT_TYPE(SPDY_SESSION_HEADERS) // This event is sent for a SPDY SYN_REPLY. // The following parameters are attached: // { // "flags": , // "headers": , // "id": , // } EVENT_TYPE(SPDY_SESSION_SYN_REPLY) // On sending a SPDY SETTINGS frame. // The following parameters are attached: // { // "settings": , // } EVENT_TYPE(SPDY_SESSION_SEND_SETTINGS) // Receipt of a SPDY SETTINGS frame. // The following parameters are attached: // { // "settings": , // } EVENT_TYPE(SPDY_SESSION_RECV_SETTINGS) // The receipt of a RST_STREAM // The following parameters are attached: // { // "stream_id": , // "status": , // } EVENT_TYPE(SPDY_SESSION_RST_STREAM) // Sending of a RST_STREAM // The following parameters are attached: // { // "stream_id": , // "status": , // } EVENT_TYPE(SPDY_SESSION_SEND_RST_STREAM) // Sending of a SPDY PING frame. // The following parameters are attached: // { // "unique_id": , // } EVENT_TYPE(SPDY_SESSION_PING) // Receipt of a SPDY GOAWAY frame. // The following parameters are attached: // { // "last_accepted_stream_id": , // "active_streams": , // "unclaimed_streams": , // } EVENT_TYPE(SPDY_SESSION_GOAWAY) // Receipt of a SPDY WINDOW_UPDATE frame (which controls the send window). // { // "stream_id": , // "delta" : , // "new_size" : , // } EVENT_TYPE(SPDY_SESSION_SEND_WINDOW_UPDATE) // Sending of a SPDY WINDOW_UPDATE frame (which controls the receive window). // { // "stream_id": , // "delta" : , // "new_size" : , // } EVENT_TYPE(SPDY_SESSION_RECV_WINDOW_UPDATE) // Sending a data frame // { // "stream_id": , // "length" : , // "flags" : , // } EVENT_TYPE(SPDY_SESSION_SEND_DATA) // Receiving a data frame // { // "stream_id": , // "length" : , // "flags" : , // } EVENT_TYPE(SPDY_SESSION_RECV_DATA) // Logs that a stream is stalled on the send window being closed. EVENT_TYPE(SPDY_SESSION_STALLED_ON_SEND_WINDOW) // Session is closing // { // "status": , // } EVENT_TYPE(SPDY_SESSION_CLOSE) // Event when the creation of a stream is stalled because we're at // the maximum number of concurrent streams. EVENT_TYPE(SPDY_SESSION_STALLED_MAX_STREAMS) // ------------------------------------------------------------------------ // SpdySessionPool // ------------------------------------------------------------------------ // This event indicates the pool is reusing an existing session // { // "id": , // } EVENT_TYPE(SPDY_SESSION_POOL_FOUND_EXISTING_SESSION) // This event indicates the pool is reusing an existing session from an // IP pooling match. // { // "id": , // } EVENT_TYPE(SPDY_SESSION_POOL_FOUND_EXISTING_SESSION_FROM_IP_POOL) // This event indicates the pool created a new session // { // "id": , // } EVENT_TYPE(SPDY_SESSION_POOL_CREATED_NEW_SESSION) // This event indicates that a SSL socket has been upgraded to a SPDY session. // { // "id": , // } EVENT_TYPE(SPDY_SESSION_POOL_IMPORTED_SESSION_FROM_SOCKET) // This event indicates that the session has been removed. // { // "id": , // } EVENT_TYPE(SPDY_SESSION_POOL_REMOVE_SESSION) // ------------------------------------------------------------------------ // SpdyStream // ------------------------------------------------------------------------ // The begin and end of a SPDY STREAM. EVENT_TYPE(SPDY_STREAM) // Logs that a stream attached to a pushed stream. EVENT_TYPE(SPDY_STREAM_ADOPTED_PUSH_STREAM) // This event indicates that the send window has been updated // { // "id": , // "delta": , // "new_window": , // } EVENT_TYPE(SPDY_STREAM_SEND_WINDOW_UPDATE) // This event indicates that the recv window has been updated // { // "id": , // "delta": , // "new_window": , // } EVENT_TYPE(SPDY_STREAM_RECV_WINDOW_UPDATE) // ------------------------------------------------------------------------ // HttpStreamParser // ------------------------------------------------------------------------ // Measures the time to read HTTP response headers from the server. EVENT_TYPE(HTTP_STREAM_PARSER_READ_HEADERS) // ------------------------------------------------------------------------ // SocketStream // ------------------------------------------------------------------------ // Measures the time between SocketStream::Connect() and // SocketStream::DidEstablishConnection() // // For the BEGIN phase, the following parameters are attached: // { // "url": , // } // // For the END phase, if there was an error, the following parameters are // attached: // { // "net_error": , // } EVENT_TYPE(SOCKET_STREAM_CONNECT) // A message sent on the SocketStream. EVENT_TYPE(SOCKET_STREAM_SENT) // A message received on the SocketStream. EVENT_TYPE(SOCKET_STREAM_RECEIVED) // ------------------------------------------------------------------------ // WebSocketJob // ------------------------------------------------------------------------ // This event is sent for a WebSocket handshake request. // The following parameters are attached: // { // "headers": , // } EVENT_TYPE(WEB_SOCKET_SEND_REQUEST_HEADERS) // This event is sent on receipt of the WebSocket handshake response headers. // The following parameters are attached: // { // "headers": , // } EVENT_TYPE(WEB_SOCKET_READ_RESPONSE_HEADERS) // ------------------------------------------------------------------------ // SOCKS5ClientSocket // ------------------------------------------------------------------------ // The time spent sending the "greeting" to the SOCKS server. EVENT_TYPE(SOCKS5_GREET_WRITE) // The time spent waiting for the "greeting" response from the SOCKS server. EVENT_TYPE(SOCKS5_GREET_READ) // The time spent sending the CONNECT request to the SOCKS server. EVENT_TYPE(SOCKS5_HANDSHAKE_WRITE) // The time spent waiting for the response to the CONNECT request. EVENT_TYPE(SOCKS5_HANDSHAKE_READ) // ------------------------------------------------------------------------ // HTTP Authentication // ------------------------------------------------------------------------ // The time spent authenticating to the proxy. EVENT_TYPE(AUTH_PROXY) // The time spent authentication to the server. EVENT_TYPE(AUTH_SERVER) // ------------------------------------------------------------------------ // HTML5 Application Cache // ------------------------------------------------------------------------ // This event is emitted whenever a request is satistifed directly from // the appache. EVENT_TYPE(APPCACHE_DELIVERING_CACHED_RESPONSE) // This event is emitted whenever the appcache uses a fallback response. EVENT_TYPE(APPCACHE_DELIVERING_FALLBACK_RESPONSE) // This event is emitted whenever the appcache generates an error response. EVENT_TYPE(APPCACHE_DELIVERING_ERROR_RESPONSE) // ------------------------------------------------------------------------ // Global events // ------------------------------------------------------------------------ // These are events which are not grouped by source id, as they have no // context. // This event is emitted whenever NetworkChangeNotifier determines that the // underlying network has changed. EVENT_TYPE(NETWORK_IP_ADDRESSES_CHANGED)