Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2010 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 // NOTE: No header guards are used, since this file is intended to be expanded
      6 // directly into net_log.h. DO NOT include this file anywhere else.
      7 
      8 // --------------------------------------------------------------------------
      9 // General pseudo-events
     10 // --------------------------------------------------------------------------
     11 
     12 // Something got cancelled (we determine what is cancelled based on the
     13 // log context around it.)
     14 EVENT_TYPE(CANCELLED)
     15 
     16 // Marks the creation/destruction of a request (net::URLRequest or
     17 // SocketStream).
     18 EVENT_TYPE(REQUEST_ALIVE)
     19 
     20 // ------------------------------------------------------------------------
     21 // HostResolverImpl
     22 // ------------------------------------------------------------------------
     23 
     24 // The start/end of waiting on a host resolve (DNS) request.
     25 // The BEGIN phase contains the following parameters:
     26 //
     27 //   {
     28 //     "source_dependency": <Source id of the request being waited on>,
     29 //   }
     30 EVENT_TYPE(HOST_RESOLVER_IMPL)
     31 
     32 // The start/end of a host resolve (DNS) request.  Note that these events are
     33 // logged for all DNS requests, though not all requests result in the creation
     34 // of a HostResolvedImpl::Request object.
     35 //
     36 // The BEGIN phase contains the following parameters:
     37 //
     38 //   {
     39 //     "host": <Hostname associated with the request>,
     40 //     "source_dependency": <Source id, if any, of what created the request>,
     41 //   }
     42 //
     43 // If an error occurred, the END phase will contain these parameters:
     44 //   {
     45 //     "net_error": <The net error code integer for the failure>,
     46 //     "os_error": <The exact error code integer that getaddrinfo() returned>,
     47 //   }
     48 
     49 EVENT_TYPE(HOST_RESOLVER_IMPL_REQUEST)
     50 
     51 // This event is logged when a request is handled by a cache entry.
     52 EVENT_TYPE(HOST_RESOLVER_IMPL_CACHE_HIT)
     53 
     54 // This event means a request was queued/dequeued for subsequent job creation,
     55 // because there are already too many active HostResolverImpl::Jobs.
     56 //
     57 // The BEGIN phase contains the following parameters:
     58 //
     59 //   {
     60 //     "priority": <Priority of the queued request>,
     61 //   }
     62 EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_POOL_QUEUE)
     63 
     64 // This event is created when a new HostResolverImpl::Request is evicted from
     65 // JobPool without a Job being created, because the limit on number of queued
     66 // Requests was reached.
     67 EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_POOL_QUEUE_EVICTED)
     68 
     69 // This event is created when a new HostResolverImpl::Job is about to be created
     70 // for a request.
     71 EVENT_TYPE(HOST_RESOLVER_IMPL_CREATE_JOB)
     72 
     73 // This is logged for a request when it's attached to a
     74 // HostResolverImpl::Job.  When this occurs without a preceding
     75 // HOST_RESOLVER_IMPL_CREATE_JOB entry, it means the request was attached to an
     76 // existing HostResolverImpl::Job.
     77 //
     78 // If the BoundNetLog used to create the event has a valid source id, the BEGIN
     79 // phase contains the following parameters:
     80 //
     81 //   {
     82 //     "source_dependency": <Source identifier for the attached Job>,
     83 //   }
     84 EVENT_TYPE(HOST_RESOLVER_IMPL_JOB_ATTACH)
     85 
     86 // The creation/completion of a host resolve (DNS) job.
     87 // The BEGIN phase contains the following parameters:
     88 //
     89 //   {
     90 //     "host": <Hostname associated with the request>,
     91 //     "source_dependency": <Source id, if any, of what created the request>,
     92 //   }
     93 //
     94 // On success, the END phase has these parameters:
     95 //   {
     96 //     "address_list": <The host name being resolved>,
     97 //   }
     98 // If an error occurred, the END phase will contain these parameters:
     99 //   {
    100 //     "net_error": <The net error code integer for the failure>,
    101 //     "os_error": <The exact error code integer that getaddrinfo() returned>,
    102 //   }
    103 EVENT_TYPE(HOST_RESOLVER_IMPL_JOB)
    104 
    105 // ------------------------------------------------------------------------
    106 // InitProxyResolver
    107 // ------------------------------------------------------------------------
    108 
    109 // The start/end of auto-detect + custom PAC URL configuration.
    110 EVENT_TYPE(INIT_PROXY_RESOLVER)
    111 
    112 // The start/end of when proxy autoconfig was artificially paused following
    113 // a network change event. (We wait some amount of time after being told of
    114 // network changes to avoid hitting spurious errors during auto-detect).
    115 EVENT_TYPE(INIT_PROXY_RESOLVER_WAIT)
    116 
    117 // The start/end of download of a PAC script. This could be the well-known
    118 // WPAD URL (if testing auto-detect), or a custom PAC URL.
    119 //
    120 // The START event has the parameters:
    121 //   {
    122 //     "url": <URL string of script being fetched>,
    123 //   }
    124 //
    125 // If the fetch failed, then the END phase has these parameters:
    126 //   {
    127 //      "error_code": <Net error code integer>,
    128 //   }
    129 EVENT_TYPE(INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)
    130 
    131 // The start/end of the testing of a PAC script (trying to parse the fetched
    132 // file as javascript).
    133 //
    134 // If the parsing of the script failed, the END phase will have parameters:
    135 //   {
    136 //      "error_code": <Net error code integer>,
    137 //   }
    138 EVENT_TYPE(INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)
    139 
    140 // This event means that initialization failed because there was no
    141 // configured script fetcher. (This indicates a configuration error).
    142 EVENT_TYPE(INIT_PROXY_RESOLVER_HAS_NO_FETCHER)
    143 
    144 // This event is emitted after deciding to fall-back to the next PAC
    145 // script in the list.
    146 EVENT_TYPE(INIT_PROXY_RESOLVER_FALLING_BACK_TO_NEXT_PAC_URL)
    147 
    148 // ------------------------------------------------------------------------
    149 // ProxyService
    150 // ------------------------------------------------------------------------
    151 
    152 // The start/end of a proxy resolve request.
    153 EVENT_TYPE(PROXY_SERVICE)
    154 
    155 // The time while a request is waiting on InitProxyResolver to configure
    156 // against either WPAD or custom PAC URL. The specifics on this time
    157 // are found from ProxyService::init_proxy_resolver_log().
    158 EVENT_TYPE(PROXY_SERVICE_WAITING_FOR_INIT_PAC)
    159 
    160 // This event is emitted to show what the PAC script returned. It can contain
    161 // extra parameters that are either:
    162 //   {
    163 //      "pac_string": <List of valid proxy servers, in PAC format>,
    164 //   }
    165 //
    166 //  Or if the the resolver failed:
    167 //   {
    168 //      "net_error": <Net error code that resolver failed with>,
    169 //   }
    170 EVENT_TYPE(PROXY_SERVICE_RESOLVED_PROXY_LIST)
    171 
    172 // This event is emitted whenever the proxy settings used by ProxyService
    173 // change.
    174 //
    175 // It contains these parameters:
    176 //  {
    177 //     "old_config": <Dump of the previous proxy settings>,
    178 //     "new_config": <Dump of the new proxy settings>,
    179 //  }
    180 //
    181 // Note that the "old_config" key will be omitted on the first fetch of the
    182 // proxy settings (since there wasn't a previous value).
    183 EVENT_TYPE(PROXY_CONFIG_CHANGED)
    184 
    185 // ------------------------------------------------------------------------
    186 // Proxy Resolver
    187 // ------------------------------------------------------------------------
    188 
    189 // Measures the time taken to execute the "myIpAddress()" javascript binding.
    190 EVENT_TYPE(PAC_JAVASCRIPT_MY_IP_ADDRESS)
    191 
    192 // Measures the time taken to execute the "myIpAddressEx()" javascript binding.
    193 EVENT_TYPE(PAC_JAVASCRIPT_MY_IP_ADDRESS_EX)
    194 
    195 // Measures the time taken to execute the "dnsResolve()" javascript binding.
    196 EVENT_TYPE(PAC_JAVASCRIPT_DNS_RESOLVE)
    197 
    198 // Measures the time taken to execute the "dnsResolveEx()" javascript binding.
    199 EVENT_TYPE(PAC_JAVASCRIPT_DNS_RESOLVE_EX)
    200 
    201 // This event is emitted when a javascript error has been triggered by a
    202 // PAC script. It contains the following event parameters:
    203 //   {
    204 //      "line_number": <The line number in the PAC script
    205 //                      (or -1 if not applicable)>,
    206 //      "message": <The error message>,
    207 //   }
    208 EVENT_TYPE(PAC_JAVASCRIPT_ERROR)
    209 
    210 // This event is emitted when a PAC script called alert(). It contains the
    211 // following event parameters:
    212 //   {
    213 //      "message": <The string of the alert>,
    214 //   }
    215 EVENT_TYPE(PAC_JAVASCRIPT_ALERT)
    216 
    217 // Measures the time that a proxy resolve request was stalled waiting for a
    218 // proxy resolver thread to free-up.
    219 EVENT_TYPE(WAITING_FOR_PROXY_RESOLVER_THREAD)
    220 
    221 // This event is emitted just before a PAC request is bound to a thread. It
    222 // contains these parameters:
    223 //
    224 //   {
    225 //     "thread_number": <Identifier for the PAC thread that is going to
    226 //                       run this request>,
    227 //   }
    228 EVENT_TYPE(SUBMITTED_TO_RESOLVER_THREAD)
    229 
    230 // ------------------------------------------------------------------------
    231 // ClientSocket
    232 // ------------------------------------------------------------------------
    233 
    234 // The start/end of a TCP connect(). This corresponds with a call to
    235 // TCPClientSocket::Connect().
    236 //
    237 // The START event contains these parameters:
    238 //
    239 //   {
    240 //     "address_list": <List of network address strings>,
    241 //   }
    242 //
    243 // And the END event will contain the following parameters on failure:
    244 //
    245 //   {
    246 //     "net_error": <Net integer error code>,
    247 //   }
    248 EVENT_TYPE(TCP_CONNECT)
    249 
    250 // Nested within TCP_CONNECT, there may be multiple attempts to connect
    251 // to the individual addresses. The START event will describe the
    252 // address the attempt is for:
    253 //
    254 //   {
    255 //     "address": <String of the network address>,
    256 //   }
    257 //
    258 // And the END event will contain the system error code if it failed:
    259 //
    260 //   {
    261 //     "os_error": <Integer error code the operating system returned>,
    262 //   }
    263 EVENT_TYPE(TCP_CONNECT_ATTEMPT)
    264 
    265 // The start/end of a TCP connect(). This corresponds with a call to
    266 // TCPServerSocket::Accept().
    267 //
    268 // The END event will contain the following parameters on success:
    269 //   {
    270 //     "address": <Remote address of the accepted connection>,
    271 //   }
    272 // On failure it contains the following parameters
    273 //   {
    274 //     "net_error": <Net integer error code>,
    275 //   }
    276 EVENT_TYPE(TCP_ACCEPT)
    277 
    278 // Marks the begin/end of a socket (TCP/SOCKS/SSL).
    279 EVENT_TYPE(SOCKET_ALIVE)
    280 
    281 // This event is logged to the socket stream whenever the socket is
    282 // acquired/released via a ClientSocketHandle.
    283 //
    284 // The BEGIN phase contains the following parameters:
    285 //
    286 //   {
    287 //     "source_dependency": <Source identifier for the controlling entity>,
    288 //   }
    289 EVENT_TYPE(SOCKET_IN_USE)
    290 
    291 // The start/end of a SOCKS connect().
    292 EVENT_TYPE(SOCKS_CONNECT)
    293 
    294 // The start/end of a SOCKS5 connect().
    295 EVENT_TYPE(SOCKS5_CONNECT)
    296 
    297 // This event is emitted when the SOCKS connect fails because the provided
    298 // was longer than 255 characters.
    299 EVENT_TYPE(SOCKS_HOSTNAME_TOO_BIG)
    300 
    301 // These events are emitted when insufficient data was read while
    302 // trying to establish a connection to the SOCKS proxy server
    303 // (during the greeting phase or handshake phase, respectively).
    304 EVENT_TYPE(SOCKS_UNEXPECTEDLY_CLOSED_DURING_GREETING)
    305 EVENT_TYPE(SOCKS_UNEXPECTEDLY_CLOSED_DURING_HANDSHAKE)
    306 
    307 // This event indicates that a bad version number was received in the
    308 // proxy server's response. The extra parameters show its value:
    309 //   {
    310 //     "version": <Integer version number in the response>,
    311 //   }
    312 EVENT_TYPE(SOCKS_UNEXPECTED_VERSION)
    313 
    314 // This event indicates that the SOCKS proxy server returned an error while
    315 // trying to create a connection. The following parameters will be attached
    316 // to the event:
    317 //   {
    318 //     "error_code": <Integer error code returned by the server>,
    319 //   }
    320 EVENT_TYPE(SOCKS_SERVER_ERROR)
    321 
    322 // This event indicates that the SOCKS proxy server asked for an authentication
    323 // method that we don't support. The following parameters are attached to the
    324 // event:
    325 //   {
    326 //     "method": <Integer method code>,
    327 //   }
    328 EVENT_TYPE(SOCKS_UNEXPECTED_AUTH)
    329 
    330 // This event indicates that the SOCKS proxy server's response indicated an
    331 // address type which we are not prepared to handle.
    332 // The following parameters are attached to the event:
    333 //   {
    334 //     "address_type": <Integer code for the address type>,
    335 //   }
    336 EVENT_TYPE(SOCKS_UNKNOWN_ADDRESS_TYPE)
    337 
    338 // The start/end of a SSL connect().
    339 EVENT_TYPE(SSL_CONNECT)
    340 
    341 // The start/end of a SSL accept().
    342 EVENT_TYPE(SSL_ACCEPT)
    343 
    344 // An SSL error occurred while trying to do the indicated activity.
    345 // The following parameters are attached to the event:
    346 //   {
    347 //     "net_error": <Integer code for the specific error type>,
    348 //     "ssl_lib_error": <SSL library's integer code for the specific error type>
    349 //   }
    350 EVENT_TYPE(SSL_HANDSHAKE_ERROR)
    351 EVENT_TYPE(SSL_READ_ERROR)
    352 EVENT_TYPE(SSL_WRITE_ERROR)
    353 
    354 // An SSL Snap Start was attempted
    355 // The following parameters are attached to the event:
    356 //   {
    357 //     "type": <Integer code for the Snap Start result>,
    358 //   }
    359 EVENT_TYPE(SSL_SNAP_START)
    360 
    361 // We found that our prediction of the server's certificates was correct and
    362 // we merged the verification with the SSLHostInfo.
    363 EVENT_TYPE(SSL_VERIFICATION_MERGED)
    364 
    365 // An SSL error occurred while calling an NSS function not directly related to
    366 // one of the above activities.  Can also be used when more information than
    367 // is provided by just an error code is needed:
    368 //   {
    369 //     "function": <Name of the NSS function, as a string>,
    370 //     "param": <Most relevant parameter, if any>,
    371 //     "ssl_lib_error": <NSS library's integer code for the specific error type>
    372 //   }
    373 EVENT_TYPE(SSL_NSS_ERROR)
    374 
    375 // The specified number of bytes were sent on the socket.
    376 // The following parameters are attached:
    377 //   {
    378 //     "byte_count": <Number of bytes that were just sent>,
    379 //     "hex_encoded_bytes": <The exact bytes sent, as a hexadecimal string.
    380 //                           Only present when byte logging is enabled>,
    381 //   }
    382 EVENT_TYPE(SOCKET_BYTES_SENT)
    383 
    384 // The specified number of bytes were received on the socket.
    385 // The following parameters are attached:
    386 //   {
    387 //     "byte_count": <Number of bytes that were just received>,
    388 //     "hex_encoded_bytes": <The exact bytes received, as a hexadecimal string.
    389 //                           Only present when byte logging is enabled>,
    390 //   }
    391 EVENT_TYPE(SOCKET_BYTES_RECEIVED)
    392 
    393 // ------------------------------------------------------------------------
    394 // ClientSocketPoolBase::ConnectJob
    395 // ------------------------------------------------------------------------
    396 
    397 // The start/end of a ConnectJob.
    398 EVENT_TYPE(SOCKET_POOL_CONNECT_JOB)
    399 
    400 // The start/end of the ConnectJob::Connect().
    401 //
    402 // The BEGIN phase has these parameters:
    403 //
    404 //   {
    405 //     "group_name": <The group name for the socket request.>,
    406 //   }
    407 EVENT_TYPE(SOCKET_POOL_CONNECT_JOB_CONNECT)
    408 
    409 // This event is logged whenever the ConnectJob gets a new socket
    410 // association. The event parameters point to that socket:
    411 //
    412 //   {
    413 //     "source_dependency": <The source identifier for the new socket.>,
    414 //   }
    415 EVENT_TYPE(CONNECT_JOB_SET_SOCKET)
    416 
    417 // Whether the connect job timed out.
    418 EVENT_TYPE(SOCKET_POOL_CONNECT_JOB_TIMED_OUT)
    419 
    420 // ------------------------------------------------------------------------
    421 // ClientSocketPoolBaseHelper
    422 // ------------------------------------------------------------------------
    423 
    424 // The start/end of a client socket pool request for a socket.
    425 EVENT_TYPE(SOCKET_POOL)
    426 
    427 // The request stalled because there are too many sockets in the pool.
    428 EVENT_TYPE(SOCKET_POOL_STALLED_MAX_SOCKETS)
    429 
    430 // The request stalled because there are too many sockets in the group.
    431 EVENT_TYPE(SOCKET_POOL_STALLED_MAX_SOCKETS_PER_GROUP)
    432 
    433 // Indicates that we reused an existing socket. Attached to the event are
    434 // the parameters:
    435 //   {
    436 //     "idle_ms": <The number of milliseconds the socket was sitting idle for>,
    437 //   }
    438 EVENT_TYPE(SOCKET_POOL_REUSED_AN_EXISTING_SOCKET)
    439 
    440 // This event simply describes the host:port that were requested from the
    441 // socket pool. Its parameters are:
    442 //   {
    443 //     "host_and_port": <String encoding the host and port>,
    444 //   }
    445 EVENT_TYPE(TCP_CLIENT_SOCKET_POOL_REQUESTED_SOCKET)
    446 
    447 // This event simply describes the host:port that were requested from the
    448 // socket pool. Its parameters are:
    449 //   {
    450 //     "host_and_port": <String encoding the host and port>,
    451 //   }
    452 EVENT_TYPE(TCP_CLIENT_SOCKET_POOL_REQUESTED_SOCKETS)
    453 
    454 
    455 // A backup socket is created due to slow connect
    456 EVENT_TYPE(SOCKET_BACKUP_CREATED)
    457 
    458 // This event is sent when a connect job is eventually bound to a request
    459 // (because of late binding and socket backup jobs, we don't assign the job to
    460 // a request until it has completed).
    461 //
    462 // The event parameters are:
    463 //   {
    464 //      "source_dependency": <Source identifer for the connect job we are
    465 //                            bound to>,
    466 //   }
    467 EVENT_TYPE(SOCKET_POOL_BOUND_TO_CONNECT_JOB)
    468 
    469 // Identifies the NetLog::Source() for the Socket assigned to the pending
    470 // request. The event parameters are:
    471 //   {
    472 //      "source_dependency": <Source identifier for the socket we acquired>,
    473 //   }
    474 EVENT_TYPE(SOCKET_POOL_BOUND_TO_SOCKET)
    475 
    476 // The start/end of a client socket pool request for multiple sockets.
    477 // The event parameters are:
    478 //   {
    479 //      "num_sockets": <Number of sockets we're trying to ensure are connected>,
    480 //   }
    481 EVENT_TYPE(SOCKET_POOL_CONNECTING_N_SOCKETS)
    482 
    483 // ------------------------------------------------------------------------
    484 // URLRequest
    485 // ------------------------------------------------------------------------
    486 
    487 // Measures the time it took a net::URLRequestJob to start. For the most part
    488 // this corresponds with the time between net::URLRequest::Start() and
    489 // net::URLRequest::ResponseStarted(), however it is also repeated for every
    490 // redirect, and every intercepted job that handles the request.
    491 //
    492 // For the BEGIN phase, the following parameters are attached:
    493 //   {
    494 //      "url": <String of URL being loaded>,
    495 //      "method": <The method ("POST" or "GET" or "HEAD" etc..)>,
    496 //      "load_flags": <Numeric value of the combined load flags>,
    497 //   }
    498 //
    499 // For the END phase, if there was an error, the following parameters are
    500 // attached:
    501 //   {
    502 //      "net_error": <Net error code of the failure>,
    503 //   }
    504 EVENT_TYPE(URL_REQUEST_START_JOB)
    505 
    506 // This event is sent once a net::URLRequest receives a redirect. The parameters
    507 // attached to the event are:
    508 //   {
    509 //     "location": <The URL that was redirected to>,
    510 //   }
    511 EVENT_TYPE(URL_REQUEST_REDIRECTED)
    512 
    513 // Measures the time a net::URLRequest is blocked waiting for an extension to
    514 // respond to the onBefoteRequest extension event.
    515 EVENT_TYPE(URL_REQUEST_BLOCKED_ON_EXTENSION)
    516 
    517 // ------------------------------------------------------------------------
    518 // HttpCache
    519 // ------------------------------------------------------------------------
    520 
    521 // Measures the time while getting a reference to the back end.
    522 EVENT_TYPE(HTTP_CACHE_GET_BACKEND)
    523 
    524 // Measures the time while opening a disk cache entry.
    525 EVENT_TYPE(HTTP_CACHE_OPEN_ENTRY)
    526 
    527 // Measures the time while creating a disk cache entry.
    528 EVENT_TYPE(HTTP_CACHE_CREATE_ENTRY)
    529 
    530 // Measures the time it takes to add a HttpCache::Transaction to an http cache
    531 // entry's list of active Transactions.
    532 EVENT_TYPE(HTTP_CACHE_ADD_TO_ENTRY)
    533 
    534 // Measures the time while deleting a disk cache entry.
    535 EVENT_TYPE(HTTP_CACHE_DOOM_ENTRY)
    536 
    537 // Measures the time while reading/writing a disk cache entry's response headers
    538 // or metadata.
    539 EVENT_TYPE(HTTP_CACHE_READ_INFO)
    540 EVENT_TYPE(HTTP_CACHE_WRITE_INFO)
    541 
    542 // Measures the time while reading/writing a disk cache entry's body.
    543 EVENT_TYPE(HTTP_CACHE_READ_DATA)
    544 EVENT_TYPE(HTTP_CACHE_WRITE_DATA)
    545 
    546 // ------------------------------------------------------------------------
    547 // Disk Cache / Memory Cache
    548 // ------------------------------------------------------------------------
    549 
    550 // The creation/destruction of a disk_cache::EntryImpl object.  The "creation"
    551 // is considered to be the point at which an Entry is first considered to be
    552 // good and associated with a key.  Note that disk and memory cache entries
    553 // share event types.
    554 //
    555 // For the BEGIN phase, the following parameters are attached:
    556 //   {
    557 //     "created": <true if the Entry was created, rather than being opened>,
    558 //     "key": <The Entry's key>,
    559 //   }
    560 EVENT_TYPE(DISK_CACHE_ENTRY_IMPL)
    561 EVENT_TYPE(DISK_CACHE_MEM_ENTRY_IMPL)
    562 
    563 // Logs the time required to read/write data from/to a cache entry.
    564 //
    565 // For the BEGIN phase, the following parameters are attached:
    566 //   {
    567 //     "index": <Index being read/written>,
    568 //     "offset": <Offset being read/written>,
    569 //     "buf_len": <Length of buffer being read to/written from>,
    570 //     "truncate": <If present for a write, the truncate flag is set to true.
    571 //                  Not present in reads or writes where it is false>,
    572 //   }
    573 //
    574 // For the END phase, the following parameters are attached:
    575 //   {
    576 //     "bytes_copied": <Number of bytes copied.  Not present on error>,
    577 //     "net_error": <Network error code.  Only present on error>,
    578 //   }
    579 EVENT_TYPE(ENTRY_READ_DATA)
    580 EVENT_TYPE(ENTRY_WRITE_DATA)
    581 
    582 // Logged when sparse read/write operation starts/stops for an Entry.
    583 //
    584 // For the BEGIN phase, the following parameters are attached:
    585 //   {
    586 //     "offset": <Offset at which to start reading>,
    587 //     "buff_len": <Bytes to read/write>,
    588 //   }
    589 EVENT_TYPE(SPARSE_READ)
    590 EVENT_TYPE(SPARSE_WRITE)
    591 
    592 // Logged when a parent Entry starts/stops reading/writing a child Entry's data.
    593 //
    594 // For the BEGIN phase, the following parameters are attached:
    595 //   {
    596 //     "source_dependency": <Source id of the child entry>,
    597 //     "child_len": <Bytes to read/write from/to child>,
    598 //   }
    599 EVENT_TYPE(SPARSE_READ_CHILD_DATA)
    600 EVENT_TYPE(SPARSE_WRITE_CHILD_DATA)
    601 
    602 // Logged when sparse GetAvailableRange operation starts/stops for an Entry.
    603 //
    604 // For the BEGIN phase, the following parameters are attached:
    605 //   {
    606 //     "buff_len": <Bytes to read/write>,
    607 //     "offset": <Offset at which to start reading>,
    608 //   }
    609 //
    610 // For the END phase, the following parameters are attached.  No parameters are
    611 // attached when cancelled:
    612 //   {
    613 //     "length": <Length of returned range. Only present on success>,
    614 //     "start": <Position where returned range starts. Only present on success>,
    615 //     "net_error": <Resulting error code. Only present on failure. This may be
    616 //                   "OK" when there's no error, but no available bytes in the
    617 //                   range>,
    618 //   }
    619 EVENT_TYPE(SPARSE_GET_RANGE)
    620 
    621 // Indicates the children of a sparse EntryImpl are about to be deleted.
    622 // Not logged for MemEntryImpls.
    623 EVENT_TYPE(SPARSE_DELETE_CHILDREN)
    624 
    625 // Logged when an EntryImpl is closed.  Not logged for MemEntryImpls.
    626 EVENT_TYPE(ENTRY_CLOSE)
    627 
    628 // Logged when an entry is doomed.
    629 EVENT_TYPE(ENTRY_DOOM)
    630 
    631 // ------------------------------------------------------------------------
    632 // HttpStreamFactoryImpl
    633 // ------------------------------------------------------------------------
    634 
    635 // Measures the time taken to fulfill the HttpStreamRequest.
    636 EVENT_TYPE(HTTP_STREAM_REQUEST)
    637 
    638 // Measures the time taken to execute the HttpStreamFactoryImpl::Job
    639 EVENT_TYPE(HTTP_STREAM_JOB)
    640 
    641 // Identifies the NetLog::Source() for the Job that fulfilled the request.
    642 // request. The event parameters are:
    643 //   {
    644 //      "source_dependency": <Source identifier for the job we acquired>,
    645 //   }
    646 EVENT_TYPE(HTTP_STREAM_REQUEST_BOUND_TO_JOB)
    647 
    648 // ------------------------------------------------------------------------
    649 // HttpNetworkTransaction
    650 // ------------------------------------------------------------------------
    651 
    652 // Measures the time taken to send the tunnel request to the server.
    653 EVENT_TYPE(HTTP_TRANSACTION_TUNNEL_SEND_REQUEST)
    654 
    655 // This event is sent for a tunnel request.
    656 // The following parameters are attached:
    657 //   {
    658 //     "line": <The HTTP request line, CRLF terminated>,
    659 //     "headers": <The list of header:value pairs>,
    660 //   }
    661 EVENT_TYPE(HTTP_TRANSACTION_SEND_TUNNEL_HEADERS)
    662 
    663 // Measures the time to read the tunnel response headers from the server.
    664 EVENT_TYPE(HTTP_TRANSACTION_TUNNEL_READ_HEADERS)
    665 
    666 // This event is sent on receipt of the HTTP response headers to a tunnel
    667 // request.
    668 // The following parameters are attached:
    669 //   {
    670 //     "headers": <The list of header:value pairs>,
    671 //   }
    672 EVENT_TYPE(HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS)
    673 
    674 // Measures the time taken to send the request to the server.
    675 EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST)
    676 
    677 // This event is sent for a HTTP request.
    678 // The following parameters are attached:
    679 //   {
    680 //     "line": <The HTTP request line, CRLF terminated>,
    681 //     "headers": <The list of header:value pairs>,
    682 //   }
    683 EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST_HEADERS)
    684 
    685 // Measures the time to read HTTP response headers from the server.
    686 EVENT_TYPE(HTTP_TRANSACTION_READ_HEADERS)
    687 
    688 // This event is sent on receipt of the HTTP response headers.
    689 // The following parameters are attached:
    690 //   {
    691 //     "headers": <The list of header:value pairs>,
    692 //   }
    693 EVENT_TYPE(HTTP_TRANSACTION_READ_RESPONSE_HEADERS)
    694 
    695 // Measures the time to read the entity body from the server.
    696 EVENT_TYPE(HTTP_TRANSACTION_READ_BODY)
    697 
    698 // Measures the time taken to read the response out of the socket before
    699 // restarting for authentication, on keep alive connections.
    700 EVENT_TYPE(HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART)
    701 
    702 // ------------------------------------------------------------------------
    703 // SpdySession
    704 // ------------------------------------------------------------------------
    705 
    706 // The start/end of a SpdySession.
    707 //   {
    708 //     "host": <The host-port string>,
    709 //     "proxy": <The Proxy PAC string>,
    710 //   }
    711 EVENT_TYPE(SPDY_SESSION)
    712 
    713 // This event is sent for a SPDY SYN_STREAM.
    714 // The following parameters are attached:
    715 //   {
    716 //     "flags": <The control frame flags>,
    717 //     "headers": <The list of header:value pairs>,
    718 //     "id": <The stream id>,
    719 //   }
    720 EVENT_TYPE(SPDY_SESSION_SYN_STREAM)
    721 
    722 // This event is sent for a SPDY SYN_STREAM pushed by the server, where a
    723 // net::URLRequest is already waiting for the stream.
    724 // The following parameters are attached:
    725 //   {
    726 //     "flags": <The control frame flags>,
    727 //     "headers": <The list of header:value pairs>,
    728 //     "id": <The stream id>,
    729 //     "associated_stream": <The stream id>,
    730 //   }
    731 EVENT_TYPE(SPDY_SESSION_PUSHED_SYN_STREAM)
    732 
    733 // This event is sent for a SPDY HEADERS frame.
    734 // The following parameters are attached:
    735 //   {
    736 //     "flags": <The control frame flags>,
    737 //     "headers": <The list of header:value pairs>,
    738 //     "id": <The stream id>,
    739 //   }
    740 EVENT_TYPE(SPDY_SESSION_HEADERS)
    741 
    742 // This event is sent for a SPDY SYN_REPLY.
    743 // The following parameters are attached:
    744 //   {
    745 //     "flags": <The control frame flags>,
    746 //     "headers": <The list of header:value pairs>,
    747 //     "id": <The stream id>,
    748 //   }
    749 EVENT_TYPE(SPDY_SESSION_SYN_REPLY)
    750 
    751 // On sending a SPDY SETTINGS frame.
    752 // The following parameters are attached:
    753 //   {
    754 //     "settings": <The list of setting id:value pairs>,
    755 //   }
    756 EVENT_TYPE(SPDY_SESSION_SEND_SETTINGS)
    757 
    758 // Receipt of a SPDY SETTINGS frame.
    759 // The following parameters are attached:
    760 //   {
    761 //     "settings": <The list of setting id:value pairs>,
    762 //   }
    763 EVENT_TYPE(SPDY_SESSION_RECV_SETTINGS)
    764 
    765 // The receipt of a RST_STREAM
    766 // The following parameters are attached:
    767 //   {
    768 //     "stream_id": <The stream ID for the window update>,
    769 //     "status": <The reason for the RST_STREAM>,
    770 //   }
    771 EVENT_TYPE(SPDY_SESSION_RST_STREAM)
    772 
    773 // Sending of a RST_STREAM
    774 // The following parameters are attached:
    775 //   {
    776 //     "stream_id": <The stream ID for the window update>,
    777 //     "status": <The reason for the RST_STREAM>,
    778 //   }
    779 EVENT_TYPE(SPDY_SESSION_SEND_RST_STREAM)
    780 
    781 // Sending of a SPDY PING frame.
    782 // The following parameters are attached:
    783 //   {
    784 //     "unique_id": <The unique id of the PING message>,
    785 //   }
    786 EVENT_TYPE(SPDY_SESSION_PING)
    787 
    788 // Receipt of a SPDY GOAWAY frame.
    789 // The following parameters are attached:
    790 //   {
    791 //     "last_accepted_stream_id": <Last stream id accepted by the server, duh>,
    792 //     "active_streams":          <Number of active streams>,
    793 //     "unclaimed_streams":       <Number of unclaimed push streams>,
    794 //   }
    795 EVENT_TYPE(SPDY_SESSION_GOAWAY)
    796 
    797 // Receipt of a SPDY WINDOW_UPDATE frame (which controls the send window).
    798 //   {
    799 //     "stream_id": <The stream ID for the window update>,
    800 //     "delta"    : <The delta window size>,
    801 //     "new_size" : <The new window size (computed)>,
    802 //   }
    803 EVENT_TYPE(SPDY_SESSION_SEND_WINDOW_UPDATE)
    804 
    805 // Sending of a SPDY WINDOW_UPDATE frame (which controls the receive window).
    806 //   {
    807 //     "stream_id": <The stream ID for the window update>,
    808 //     "delta"    : <The delta window size>,
    809 //     "new_size" : <The new window size (computed)>,
    810 //   }
    811 EVENT_TYPE(SPDY_SESSION_RECV_WINDOW_UPDATE)
    812 
    813 // Sending a data frame
    814 //   {
    815 //     "stream_id": <The stream ID for the window update>,
    816 //     "length"   : <The size of data sent>,
    817 //     "flags"    : <Send data flags>,
    818 //   }
    819 EVENT_TYPE(SPDY_SESSION_SEND_DATA)
    820 
    821 // Receiving a data frame
    822 //   {
    823 //     "stream_id": <The stream ID for the window update>,
    824 //     "length"   : <The size of data sent>,
    825 //     "flags"    : <Send data flags>,
    826 //   }
    827 EVENT_TYPE(SPDY_SESSION_RECV_DATA)
    828 
    829 // Logs that a stream is stalled on the send window being closed.
    830 EVENT_TYPE(SPDY_SESSION_STALLED_ON_SEND_WINDOW)
    831 
    832 // Session is closing
    833 //   {
    834 //     "status": <The error status of the closure>,
    835 //   }
    836 EVENT_TYPE(SPDY_SESSION_CLOSE)
    837 
    838 // Event when the creation of a stream is stalled because we're at
    839 // the maximum number of concurrent streams.
    840 EVENT_TYPE(SPDY_SESSION_STALLED_MAX_STREAMS)
    841 
    842 // ------------------------------------------------------------------------
    843 // SpdySessionPool
    844 // ------------------------------------------------------------------------
    845 
    846 // This event indicates the pool is reusing an existing session
    847 //   {
    848 //     "id": <The session id>,
    849 //   }
    850 EVENT_TYPE(SPDY_SESSION_POOL_FOUND_EXISTING_SESSION)
    851 
    852 // This event indicates the pool is reusing an existing session from an
    853 // IP pooling match.
    854 //   {
    855 //     "id": <The session id>,
    856 //   }
    857 EVENT_TYPE(SPDY_SESSION_POOL_FOUND_EXISTING_SESSION_FROM_IP_POOL)
    858 
    859 // This event indicates the pool created a new session
    860 //   {
    861 //     "id": <The session id>,
    862 //   }
    863 EVENT_TYPE(SPDY_SESSION_POOL_CREATED_NEW_SESSION)
    864 
    865 // This event indicates that a SSL socket has been upgraded to a SPDY session.
    866 //   {
    867 //     "id": <The session id>,
    868 //   }
    869 EVENT_TYPE(SPDY_SESSION_POOL_IMPORTED_SESSION_FROM_SOCKET)
    870 
    871 // This event indicates that the session has been removed.
    872 //   {
    873 //     "id": <The session id>,
    874 //   }
    875 EVENT_TYPE(SPDY_SESSION_POOL_REMOVE_SESSION)
    876 
    877 // ------------------------------------------------------------------------
    878 // SpdyStream
    879 // ------------------------------------------------------------------------
    880 
    881 // The begin and end of a SPDY STREAM.
    882 EVENT_TYPE(SPDY_STREAM)
    883 
    884 // Logs that a stream attached to a pushed stream.
    885 EVENT_TYPE(SPDY_STREAM_ADOPTED_PUSH_STREAM)
    886 
    887 // This event indicates that the send window has been updated
    888 //   {
    889 //     "id":         <The stream id>,
    890 //     "delta":      <The window size delta>,
    891 //     "new_window": <The new window size>,
    892 //   }
    893 EVENT_TYPE(SPDY_STREAM_SEND_WINDOW_UPDATE)
    894 
    895 // This event indicates that the recv window has been updated
    896 //   {
    897 //     "id":         <The stream id>,
    898 //     "delta":      <The window size delta>,
    899 //     "new_window": <The new window size>,
    900 //   }
    901 EVENT_TYPE(SPDY_STREAM_RECV_WINDOW_UPDATE)
    902 
    903 // ------------------------------------------------------------------------
    904 // HttpStreamParser
    905 // ------------------------------------------------------------------------
    906 
    907 // Measures the time to read HTTP response headers from the server.
    908 EVENT_TYPE(HTTP_STREAM_PARSER_READ_HEADERS)
    909 
    910 // ------------------------------------------------------------------------
    911 // SocketStream
    912 // ------------------------------------------------------------------------
    913 
    914 // Measures the time between SocketStream::Connect() and
    915 // SocketStream::DidEstablishConnection()
    916 //
    917 // For the BEGIN phase, the following parameters are attached:
    918 //   {
    919 //      "url": <String of URL being loaded>,
    920 //   }
    921 //
    922 // For the END phase, if there was an error, the following parameters are
    923 // attached:
    924 //   {
    925 //      "net_error": <Net error code of the failure>,
    926 //   }
    927 EVENT_TYPE(SOCKET_STREAM_CONNECT)
    928 
    929 // A message sent on the SocketStream.
    930 EVENT_TYPE(SOCKET_STREAM_SENT)
    931 
    932 // A message received on the SocketStream.
    933 EVENT_TYPE(SOCKET_STREAM_RECEIVED)
    934 
    935 // ------------------------------------------------------------------------
    936 // WebSocketJob
    937 // ------------------------------------------------------------------------
    938 
    939 // This event is sent for a WebSocket handshake request.
    940 // The following parameters are attached:
    941 //   {
    942 //     "headers": <handshake request message>,
    943 //   }
    944 EVENT_TYPE(WEB_SOCKET_SEND_REQUEST_HEADERS)
    945 
    946 // This event is sent on receipt of the WebSocket handshake response headers.
    947 // The following parameters are attached:
    948 //   {
    949 //     "headers": <handshake response message>,
    950 //   }
    951 EVENT_TYPE(WEB_SOCKET_READ_RESPONSE_HEADERS)
    952 
    953 // ------------------------------------------------------------------------
    954 // SOCKS5ClientSocket
    955 // ------------------------------------------------------------------------
    956 
    957 // The time spent sending the "greeting" to the SOCKS server.
    958 EVENT_TYPE(SOCKS5_GREET_WRITE)
    959 
    960 // The time spent waiting for the "greeting" response from the SOCKS server.
    961 EVENT_TYPE(SOCKS5_GREET_READ)
    962 
    963 // The time spent sending the CONNECT request to the SOCKS server.
    964 EVENT_TYPE(SOCKS5_HANDSHAKE_WRITE)
    965 
    966 // The time spent waiting for the response to the CONNECT request.
    967 EVENT_TYPE(SOCKS5_HANDSHAKE_READ)
    968 
    969 // ------------------------------------------------------------------------
    970 // HTTP Authentication
    971 // ------------------------------------------------------------------------
    972 
    973 // The time spent authenticating to the proxy.
    974 EVENT_TYPE(AUTH_PROXY)
    975 
    976 // The time spent authentication to the server.
    977 EVENT_TYPE(AUTH_SERVER)
    978 
    979 // ------------------------------------------------------------------------
    980 // HTML5 Application Cache
    981 // ------------------------------------------------------------------------
    982 
    983 // This event is emitted whenever a request is satistifed directly from
    984 // the appache.
    985 EVENT_TYPE(APPCACHE_DELIVERING_CACHED_RESPONSE)
    986 
    987 // This event is emitted whenever the appcache uses a fallback response.
    988 EVENT_TYPE(APPCACHE_DELIVERING_FALLBACK_RESPONSE)
    989 
    990 // This event is emitted whenever the appcache generates an error response.
    991 EVENT_TYPE(APPCACHE_DELIVERING_ERROR_RESPONSE)
    992 
    993 // ------------------------------------------------------------------------
    994 // Global events
    995 // ------------------------------------------------------------------------
    996 // These are events which are not grouped by source id, as they have no
    997 // context.
    998 
    999 // This event is emitted whenever NetworkChangeNotifier determines that the
   1000 // underlying network has changed.
   1001 EVENT_TYPE(NETWORK_IP_ADDRESSES_CHANGED)
   1002