 Chrome 64 adds support for resize observers, which will notify you when an element size has changed. Modules can now access host-specific metadata with import.metadata, the pop-up blocker gets stronger, and plenty more. I'm Pete LaPage. Let's dive in and see what's new for developers in Chrome 64. Tracking when an element size has changed can be a bit of a pain. Most likely, you'll need to attach a listener to the documents resize event. Then, call getBoundingClientRect or getComputedStyle. But both of those can cause layout thrashing. And what if the browser window didn't change size, but a new element was added to the document? Or you added displayNone to an element. Both of those can change the size of other elements within the page. ResizeObserver notifies you whenever an element size changes and provides the new height and width of the element, reducing the risk of layout thrashing. Like other observers, using it is pretty simple. Create a resizeObserver object and pass callback to the constructor. The callback will be given an array of resizeObserver entries, one entry per observed element, which contains the new dimensions for the element. Check out Sermit's post for more details and real-world examples. I hate tab-unders. You know them. It's when a page opens a pop-up to some destination and navigates the page. Usually, one of them is an ad or something you just don't want. Starting in Chrome 64, these types of navigations will be blocked. And Chrome will show some native UI to the user, allowing them to follow the redirect if they want. When writing JavaScript modules, you often want access to host-specific metadata about the current module. Chrome 64 now supports the import.metaproperty within modules and exposes the URL for the module via import-meta.url. This is really helpful when you want to resolve resources relative to the module file as opposed to the current HTML document. These are just a few of the changes in Chrome 64 for developers. Of course, there's plenty more. Chrome now supports named captures and regular expressions. The default preload value for audio and video elements is now metadata. This brings Chrome in line with other browsers and helps to reduce bandwidth and resource usage by only loading the metadata and not the media itself. You can now use request.prototype.cache to view the cache mode of a request and determine whether the request is a reload request. And using the focus management API, you can now focus an element without scrolling to it with the prevent scroll attribute. Oh, and one more. Well, this isn't really a developer feature. It makes me happy. Window.alert no longer brings a background tab to the foreground. Instead, the alert will be shown when the user switches back to that tab. No more random tab switches because something fired a window.alert on me. I'm looking at you, Google Calendar. All the details, including links to docs and specs, are in the description below. And be sure to check out the latest new in Chrome DevTools video to learn what's new in DevTools. Then click the Subscribe button and you'll get an email notification whenever we launch a new video. I'm Pete LePage. And as soon as Chrome 65 is released, I'll be right here to tell you what's new in Chrome.