Chrome has a lot of functionality, for both end users and developers.

One of this i little known but very usefull: the net-internals application, which is accessible by typing chrome://net-internals into your Chrome browser.

What is net-internals?

From Chromium Project page:

net-internals is visualizer for the NetLog event stream. It can be used both in real-time, and also to load up post-mortem NetLog dumps.

Most of the data displayed by net-internals comes from the NetLog event stream. When you load about:net-internals it installs an observer into ChromeNetLog (inside the browser process) which serializes network events to JSON and sends them over IPC to the renderer running about:net-internals application.

Essentially, it’s a real time look at network data, allowing you to download logs and see visuals of network data.

What does NetLog actually log?

In general we try to log whatever is useful for debugging.

Some examples of what NetLog currently log:

  • Queueing delay to schedule DNS resolves to threads
  • Stalls due to exceeding socket pool limits
  • Attempts to do a TCP connect to an IP address
  • Speculative DNS resolves
  • Proxy resolution
  • Cache hits for DNS resolves
  • Reads/writes from disk cache
  • Network change events
  • Proxy configuration change events
  • Stalls due to chrome extensions pausing requests
  • Errors

Another important feature is “Test”:

If a URL failed to load, you can go to “chrome://net-internals” -> click on “Tests” tab -> type that URL which failed, and click on “Start Test”, which will do some test and report you why that URL failed.