Welcome back! It's been about 12 weeks since our last update, which was for Chrome 68. We skipped
Chrome 69 because we didn't have enough new features or UI changes to warrant a post.
New features and major changes coming to DevTools in Chrome 70 include:
Read on, or watch the video version of this doc:
Live Expressions in the Console
Pin a Live Expression to the top of your Console when you want to monitor its value in real-time.
Click
Create Live Expression
. The Live
Expression UI opens.
Figure 1
. The Live Expression UI
Type the expression that you want to monitor.
Figure 2
. Typing
Date.now()
into the Live Expression UI
Click outside of the Live Expression UI to save your expression.
Figure 3
. A saved Live Expression
Live Expression values update every 250 milliseconds.
Highlight DOM nodes during Eager Evaluation
Type an expression that evaluates to a DOM node in the Console and
Eager Evaluation
now
highlights that node in the viewport.
Figure 4
. Since the current expression evaluates to a node, that node is highlighted in the
viewport
Here are some expressions you may find useful:
document.activeElement
for highlighting the node that currently has focus.
document.querySelector(s)
for highlighting an arbitrary node, where
s
is a CSS selector. This
is equivalent to hovering over a node in the
DOM Tree
.
$0
for highlighting whatever node is currently selected in the DOM Tree.
$0.parentElement
to highlight the parent of the currently-selected node.
When profiling a large page, the Performance panel previously took tens of seconds to process and
visualize the data. Clicking on a event to learn more about it in the Summary tab also sometimes
took multiple seconds to load. Processing and visualizing is faster in Chrome 70.
Figure 5
. Processing and loading Performance data
More reliable debugging
Chrome 70 fixes some bugs that were causing breakpoints to disappear or not get triggered.
It also fixes bugs related to source maps. Some TypeScript users would instruct DevTools to ignore
a certain TypeScript file while stepping through code, and instead DevTools would ignore the
entire bundled JavaScript file. These fixes also address an issue that was causing the Sources panel
to generally run slowly.
Enable network throttling from the Command Menu
You can now set network throttling to fast 3G or slow 3G from the
Command Menu
.
Figure 6
. Network throttling commands in the Command Menu
Autocomplete Conditional Breakpoints
Use the Autocomplete UI to type out your
Conditional Breakpoint
expressions faster.
Figure 7
. The Autocomplete UI
Did you know?
The Autocomplete UI is possible thanks to
CodeMirror
, which also powers the
Console.
Break on AudioContext events
Use the
Event Listener Breakpoints
pane to pause on the first line of an
AudioContext
lifecycle event handler.
AudioContext
is part of the Web Audio API, which you can use to process and synthesize audio.
Figure 8
. AudioContext events in the Event Listener Breakpoints pane
Debug Node.js apps with ndb
ndb is a new debugger for Node.js applications. On top of the
usual debugging features that you get
through DevTools
, ndb also offers:
- Detecting and attaching to child processes.
- Placing breakpoints before modules are required.
- Editing files within the DevTools UI.
- Ignoring all scripts outside of the current working directory by default.
Figure 9
. The ndb UI
Check out
ndb's README
to learn more.
Bonus tip: Measure real world user interactions with the User Timing API
Want to measure how long it takes real users to complete critical journeys on your pages? Consider
instrumenting your code with the
User Timing API
.
For example, suppose you wanted to measure how long a user spends on your homepage before clicking
your
call-to-action
(CTA) button. First, you would mark the beginning of the journey in an
event handler associated to a page load event, such as
DOMContentLoaded
:
document.addEventListener('DOMContentLoaded', () => {
? window.performance.mark('start');
});
Then, you would mark the end of the journey and calculate its duration when the button is clicked:
document.querySelector('#CTA').addEventListener('click', () => {
? window.performance.mark('end');
? window.performance.measure('CTA', 'start', 'end');
});
You can also extract your measurements, making it easy to send them to your analytics service to
collect anonymous, aggregated data:
const CTA = window.performance.getEntriesByName('CTA')[0].duration;
DevTools automatically marks up your User Timing measurements in the
User Timing
section of your
Performance recordings.
Figure 10
. The User Timing section
This also comes in handy when debugging or optimizing code. For example, if you want to optimize a
certain phase of your lifecycle, call
window.performance.mark()
at the beginning and end of your
lifecycle function. React does this in development mode.
Download the preview channels
Consider using the Chrome
Canary
,
Dev
or
Beta
as your default development browser. These preview channels give you access to the latest DevTools features, test cutting-edge web platform APIs, and find issues on your site before your users do!
Use the following options to discuss the new features and changes in the post, or anything else related to DevTools.
- Submit a suggestion or feedback to us via
crbug.com
.
- Report a DevTools issue using the
More options
>
Help
>
Report a DevTools issues
in DevTools.
- Tweet at
@ChromeDevTools
.
- Leave comments on our What's new in DevTools
YouTube videos
or DevTools Tips
YouTube videos
.
What's new in DevTools
A list of everything that has been covered in the
What's new in DevTools
series.
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
Chrome 120
Chrome 119
Chrome 118
Chrome 117
Chrome 116
Chrome 115
Chrome 114
Chrome 113
Chrome 112
Chrome 111
Chrome 110
Chrome 109
Chrome 108
Chrome 107
Chrome 106
Chrome 105
Chrome 104
Chrome 103
Chrome 102
Chrome 101
Chrome 100
Chrome 99
Chrome 98
Chrome 97
Chrome 96
Chrome 95
Chrome 94
Chrome 93
Chrome 92
Chrome 91
Chrome 90
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