What’s New In DevTools (Chrome 71)
Technical Writer, Chrome DevTools & Lighthouse
New features and major changes coming to Chrome DevTools in Chrome 71 include:
- Hover over a Live Expression to highlight a DOM node
- Store DOM nodes as global variables
- Initiator and priority information now in HAR imports and exports
- Access the Command Menu from the Main Menu
- Picture-in-Picture breakpoints
- (Bonus Tip) Run monitorEvents() in the Console to watch an element’s events fire
Read on, or watch the video version of this page:
Hover over a Live Expression to highlight a DOM node
When a Live Expression evaluates to a DOM node, hover over the Live Expression result to highlight that node in the viewport.
Figure 1. Hovering over a Live Expression result to highlight the node in the viewport
Store DOM nodes as global variables
To store a DOM node as a global variable, run an expression in the Console that evaluates to a node, right-click the result, and then select Store as a global variable.
Figure 2. Store as a global variable in the Console
Or, right-click the node in the DOM Tree and select Store as a global variable.
Figure 3. Store as a global variable in the DOM Tree
Initiator and priority information now in HAR imports and exports
If you’d like to diagnose network logs with colleagues, you can export the network requests to a HAR file.
Figure 8. Exporting network requests to a HAR file
To import the file back into the Network panel, just drag and drop it.
When you export a HAR file, DevTools now includes initiator and priority information in the HAR file. When you import HAR files back into DevTools, the Initiator and Priority columns are now populated.
The _initiator field provides more context around what caused the resource to be requested. This maps to the Initiator column in the Requests table.
Figure 9. The initiator column
You can also hold Shift and hover over a request to view its initiator and dependencies.
Figure 10. Viewing initiators and dependencies
The _priority field states what priority level the browser assigned to the resource. This maps to the Priority column in the Requests table, which is hidden by default.
Figure 11. The Priority column
Right-click the header of the Requests table and select Priority to show the Priority column.
Figure 12. How to show the Priority column notes: The _initiator and _priority fields begin with underscores because the HAR spec states that custom fields must begin with underscores.
Access the Command Menu from the Main Menu
Use the Command Menu for a fast way to access DevTools panels, tabs, and features.
Figure 13. The Command Menu
You can now open the Command Menu from the Main Menu. Click the Main Menu button and select Run command.
Figure 14. Opening the Command Menu from the Main Menu
Picture-in-Picture is a new experimental API that enables a page to create a floating video window over the desktop.
Enable the enterpictureinpicture, leavepictureinpicture, and resize checkboxes in the Event Listener Breakpoints pane to pause whenever one of these picture-in-picture events fires. DevTools pauses on the first line of the handler.
Figure 16. Picture-in-Picture events in the Event Listener Breakpoints pane
(Bonus Tip) Run monitorEvents() in the Console to watch an element’s events fire
Note: This section covers a lesser-known feature that has been in DevTools for a long time.
Suppose you want to add a red border around a button after focusing it and pressing R, E, D, but you don’t know what events to add listeners to. Use monitorEvents() to log all of the element’s events to the Console.
- Get a reference to the node.
Figure 17. Using the Store as a global variable to get a reference to the node
- Pass the node as the first argument to monitorEvents().
Figure 18. Passing the node to monitorEvents()
- Interact with the node. DevTools logs all of the node’s events to the Console.
Figure 19. The node’s events in the Console
Call unmonitorEvents() to stop logging events to the Console.
Pass an array as the second argument to monitorEvents() if you only want to monitor certain events or types of events:
monitorEvents(temp1, [‘mouse’, ‘focus’]);
The mouse type tells DevTools to log all mouse-related events, such as a mouse down and click. Other supported types are key, touch, and control.
Check out Command Line Reference for other handy functions that you can call from the Console.
Was this page helpful?
To discuss the new features and changes in this post, or anything else related to DevTools:
- File bug reports at Chromium Bugs.
- Discuss features and changes on the Mailing List. Please don’t use the mailing list for support questions. Use Stack Overflow, instead.
- Get help on how to use DevTools on Stack Overflow. Please don’t file bugs on Stack Overflow. Use Chromium Bugs, instead.
- Tweet us at @ChromeDevTools.
- File bugs on this doc in the Web Fundamentals
If you’re on Mac or Windows, consider using Chrome Canary as your default development browser. Canary gives you access to the latest DevTools features.
Note: Canary is released as soon as its built, without testing. This means that Canary breaks about once-a-month. It’s usually fixed within a day. You can go back to using Chrome Stable while Canary is broken.
Discover other DevTools features
Below is a list of everything that’s been covered in the What’s New In DevTools series.
- Visualize performance metricsin the Performance panel.
- Highlight text nodes in the DOM Tree.
- Copy the JS path to a DOM node.
- Audits panel updates, including a new audit that detects JS libraries and new keywords for accessing the Audits panel from the Command Menu.
- Hover over a Live Expression results highlight a DOM node.
- Store DOM nodes as global variables.
- Initiator and priority information now in HAR imports and exports.
- Access the Command Menu from the Main Menu.
- Picture-in-Picture breakpoints.
- Live Expressions in the Console.
- Highlight DOM nodes during Eager Evaluation.
- Performance panel optimizations.
- More reliable debugging.
- Enable network throttling from the Command Menu.
- Autocomplete Conditional Breakpoints.
- Break on AudioContext events.
- Debug Node.js apps with ndb.
- (Bonus Tip) Measure real-world user interactions with the User Timing API.
- Eager Evaluation.
- Argument hints.
- Function autocompletion.
- ES2017 keywords.
- Lighthouse 3.0 in the Audits panel.
- BigInt support.
- Adding property paths to the Watch pane.
- “Show timestamps” moved to Settings.
- Search across all network headers.
- CSS variable value previews.
- Copy as fetch.
- New audits, desktop configuration options, and viewing traces.
- Stop infinite loops.
- User Timing in the Performance tabs.
- Network tab renamed to Page tab.
- Dark theme updates.
- Certificate transparency information in the Security panel.
- Site isolation features in the Performance panel.
- Blackboxing in the Network panel.
- Auto-adjust zooming in Device Mode.
- Pretty-printing in the Preview and Response tabs.
- Previewing HTML content in the Preview tab.
- Local Overrides support for styles inside of HTML.
- (Bonus Tip) Blackbox framework scripts to make Event Listener Breakpoints more useful.
- Local Overrides.
- New accessibility tools.
- The Changes tab.
- New SEO and performance audits.
- Multiple recordings in the Performance panel.
- Reliable code stepping with workers in async code.
- Multi-client remote debugging support.
- Workspaces 2.0.
- 4 new audits.
- Simulate push notifications with custom data.
- Trigger background sync events with custom tags.
- Top-level await in the Console.
- New screenshot workflows.
- CSS Grid highlighting.
- A new Console API for querying objects.
- New Console filters.
- HAR imports in the Network panel.
- Previewable cache resources.
- More predictable cache debugging.
- Block-level code coverage.
- Mobile device throttling simulation.
- View storage usage.
- View when a service worker cached responses.
- Enable the FPS meter from the Command Menu.
- Set mousewheel behavior to zoom or scroll.
- Debugging support for ES6 modules.
- New Audits panel.
- 3rd-Party Badges.
- A new gesture for Continue To Here.
- Step into async.
- More informative object previews in the Console.
- More informative context selection in the Console.
- Real-time updates in the Coverage tab.
- Simpler network throttling options.
- Async stacks on by default.
- CSS and JS code coverage.
- Full-page screenshots.
- Block requests.
- Step over async await.
- Unified Command Menu.
So enjoy with new Chrome