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 |