| OLD | NEW |
| 1 # A Crash Course in Debugging with about:net-internals | 1 # A Crash Course in Debugging with about:net-internals |
| 2 | 2 |
| 3 This document is intended to help get people started debugging network errors | 3 This document is intended to help get people started debugging network errors |
| 4 with about:net-internals, with some commonly useful tips and tricks. This | 4 with about:net-internals, with some commonly useful tips and tricks. This |
| 5 document is aimed more at how to get started using some of its features to | 5 document is aimed more at how to get started using some of its features to |
| 6 investigate bug reports, rather than as a feature overview. | 6 investigate bug reports, rather than as a feature overview. |
| 7 | 7 |
| 8 It would probably be useful to read | 8 It would probably be useful to read |
| 9 [life-of-a-url-request.md](life-of-a-url-request.md) before this document. | 9 [life-of-a-url-request.md](life-of-a-url-request.md) before this document. |
| 10 | 10 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 handles the response). | 55 handles the response). |
| 56 | 56 |
| 57 * HTTP_STREAM_JOB: This corresponds to HttpStreamFactoryImpl::Job (Note that | 57 * HTTP_STREAM_JOB: This corresponds to HttpStreamFactoryImpl::Job (Note that |
| 58 one Request can have multiple Jobs). It also includes its proxy and DNS | 58 one Request can have multiple Jobs). It also includes its proxy and DNS |
| 59 lookups. HTTP_STREAM_JOB log events are separate from URL_REQUEST because | 59 lookups. HTTP_STREAM_JOB log events are separate from URL_REQUEST because |
| 60 two stream jobs may be created and races against each other, in some cases - | 60 two stream jobs may be created and races against each other, in some cases - |
| 61 one for one for QUIC, and one for HTTP. One of the final events of this source | 61 one for one for QUIC, and one for HTTP. One of the final events of this source |
| 62 indicates how an HttpStream was created (Reusing an existing SOCKET / | 62 indicates how an HttpStream was created (Reusing an existing SOCKET / |
| 63 HTTP2_SESSION / QUIC_SESSION, or creating a new one). | 63 HTTP2_SESSION / QUIC_SESSION, or creating a new one). |
| 64 | 64 |
| 65 * CONNECT_JOB: This corresponds to the ConnectJob subclasses that each socket | 65 * \*_CONNECT_JOB: This corresponds to the ConnectJob subclasses that each socke
t |
| 66 pool uses. A successful CONNECT_JOB return a SOCKET. The events here vary a | 66 pool uses. A successful CONNECT_JOB return a SOCKET. The events here vary a |
| 67 lot by job type. Their main event is generally either to create a socket, or | 67 lot by job type. Their main event is generally either to create a socket, or |
| 68 request a socket from another socket pool (Which creates another CONNECT_JOB) | 68 request a socket from another socket pool (Which creates another CONNECT_JOB) |
| 69 and then do some extra work on top of that - like establish an SSL connection on | 69 and then do some extra work on top of that - like establish an SSL connection on |
| 70 top of a TCP connection. | 70 top of a TCP connection. |
| 71 | 71 |
| 72 * SOCKET: These correspond to TCPSockets, but may also have other classes | 72 * SOCKET: These correspond to TCPSockets, but may also have other classes |
| 73 layered on top of them (Like an SSLClientSocket). This is a bit different from | 73 layered on top of them (Like an SSLClientSocket). This is a bit different from |
| 74 the other classes, where the name corresponds to the topmost class, instead of | 74 the other classes, where the name corresponds to the topmost class, instead of |
| 75 the bottommost one. This is largely an artifact of the fact the socket is | 75 the bottommost one. This is largely an artifact of the fact the socket is |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 things like HSTS redirects (URLRequestRedirectJob), AppCache, ServiceWorker, | 174 things like HSTS redirects (URLRequestRedirectJob), AppCache, ServiceWorker, |
| 175 etc. These generally don't log as much information, so it can be tricky to | 175 etc. These generally don't log as much information, so it can be tricky to |
| 176 figure out what's going on with these. | 176 figure out what's going on with these. |
| 177 | 177 |
| 178 * Non-HTTP requests also appear in the log, and also generally don't log much | 178 * Non-HTTP requests also appear in the log, and also generally don't log much |
| 179 (blob URLs, chrome URLs, etc). | 179 (blob URLs, chrome URLs, etc). |
| 180 | 180 |
| 181 * Preconnects create a "HTTP_STREAM_JOB" event that may create multiple | 181 * Preconnects create a "HTTP_STREAM_JOB" event that may create multiple |
| 182 CONNECT_JOBs (or none) and is then destroyed. These can be identified by the | 182 CONNECT_JOBs (or none) and is then destroyed. These can be identified by the |
| 183 "SOCKET_POOL_CONNECTING_N_SOCKETS" events. | 183 "SOCKET_POOL_CONNECTING_N_SOCKETS" events. |
| OLD | NEW |