It's a wrap for Chrome Dev Summit 2020! Watch all the sessions at now!

What's New In DevTools (Chrome 59)

Welcome to another installment of the DevTools release notes. Watch the video below or read on to see what's new in Chrome DevTools in Chrome 59!


New features

CSS and JS code coverage

Find unused CSS and JS code with the new Coverage tab. When you load or run a page, the tab tells you how much code was used, versus how much was loaded. You can reduce the size of your pages by only shipping the code that you need.

The Coverage tab
Figure 1. The Coverage tab

Clicking on a URL reveals that file in the Sources panel with a breakdown of which lines of code executed.

A breakdown of code coverage in the Sources panel
Figure 2. A breakdown of code coverage in the Sources panel

Each line of code is color-coded:

  • Solid green means that line of code executed.
  • Solid red means it did not execute.
  • A line of code that is both red and green, such as line 3 in Figure 2, means that only some code on that line executed. For example, a ternary expression like var b = (a > 0) ? a : 0 is colored both red and green.

To open the Coverage tab:

  1. Open the Command Menu.
  2. Start typing Coverage and select Show Coverage.

Full-page screenshots

Check out the video below to learn how to take a screenshot from the top of the page, all the way to the bottom.

Block requests

Want to see how your page behaves when a particular script, stylesheet, or other resource isn't available? Right-click on the request in the Network panel and select Block Request URL. A new Request blocking tab pops up in the Drawer, which lets you manage blocked requests.

Block Request URL
Figure 3. Block Request URL

Step over async await

Up until now, trying to step through code like the snippet below was a headache. You'd be in the middle of test(), stepping over a line, and then you'd get interrupted by the setInterval() code. Now, when you step through async code like test(), DevTools steps from the first to last line with consistency.

function wait(ms) {
  return new Promise(r => setTimeout(r, ms)).then(() => "Yay");

// do some work in background.
setInterval(() => 42, 200);

async function test() {
  const hello = "world";
  const response = await fetch('index.html');
  const tmp = await wait(1000);
  return hello;

async function runTest() {
  let result = await test();

P.S. want to level up your debugging skills? Check out these new-ish docs:


Unified Command Menu

When you open the Command Menu now, notice that your command is prepended with a greater-than character (>). This is because the Command Menu has been unified with the Open File menu, which is Command+O (Mac), or Control+O (Windows, Linux).

Discover DevTools features

Below is a list of everything that's been covered in the What's New In DevTools series.

Chrome 89

Chrome 88

Chrome 87

Chrome 86

Chrome 85

Chrome 84

Chrome 83

Chrome 82

Chrome 82 was cancelled.

Chrome 81

Chrome 80

Chrome 79

Chrome 78

Chrome 77

Chrome 76

Chrome 75

Chrome 74

Chrome 73

Chrome 72

Chrome 71

Chrome 70

Chrome 68

Chrome 67

Chrome 66

Chrome 65

Chrome 64

Chrome 63

Chrome 62

Chrome 61

Chrome 60

Chrome 59