| 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 16 matching lines...) Expand all Loading... |
| 27 The other views are all snapshots of the current state of the main | 27 The other views are all snapshots of the current state of the main |
| 28 URLRequestContext's components, and are updated on a 5 second timer. These will | 28 URLRequestContext's components, and are updated on a 5 second timer. These will |
| 29 show objects that were created before about:net-internals was opened. Most | 29 show objects that were created before about:net-internals was opened. Most |
| 30 debugging is done with the Events view (which will be all this document | 30 debugging is done with the Events view (which will be all this document |
| 31 covers), but it's good to be aware of this distinction. | 31 covers), but it's good to be aware of this distinction. |
| 32 | 32 |
| 33 # Events vs Sources | 33 # Events vs Sources |
| 34 | 34 |
| 35 The Event View shows events logged by the NetLog. The NetLog model is that | 35 The Event View shows events logged by the NetLog. The NetLog model is that |
| 36 long-lived network stack objects, called sources, emit events over their | 36 long-lived network stack objects, called sources, emit events over their |
| 37 lifetime. When looking at the code, a "BoundNetLog" object contains a source | 37 lifetime. When looking at the code, a "NetLogWithSource" object contains a sour
ce |
| 38 ID, and a pointer to the NetLog the source emits events to. Some events have a | 38 ID, and a pointer to the NetLog the source emits events to. Some events have a |
| 39 beginning and end point (during which other subevents may occur), and some only | 39 beginning and end point (during which other subevents may occur), and some only |
| 40 occur at a single point in time. Generally only one event can be occuring for a | 40 occur at a single point in time. Generally only one event can be occuring for a |
| 41 source at a time. If there can be multiple events doing completely independent | 41 source at a time. If there can be multiple events doing completely independent |
| 42 thing, the code often uses new sources to represent the parallelism. | 42 thing, the code often uses new sources to represent the parallelism. |
| 43 | 43 |
| 44 "Sources" correspond to certain net objects, however, multiple layers of net/ | 44 "Sources" correspond to certain net objects, however, multiple layers of net/ |
| 45 will often log to a single source. Here are the main source types and what they | 45 will often log to a single source. Here are the main source types and what they |
| 46 include (Excluding HTTP2 [SPDY]/QUIC): | 46 include (Excluding HTTP2 [SPDY]/QUIC): |
| 47 | 47 |
| (...skipping 126 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 |