 CSS manipulation becomes way easier with the new CSS typed model object. Access to the clipboard is now asynchronous and there's a new rendering context for canvas elements. I'm Pete LePage. Let's dive in and see what's new for developers in Chrome 66. If you've ever updated a CSS property via JavaScript, you've used the CSS object model. But it returns everything as a string. To animate the opacity property, I'd have to cast the string to a number, then increment the value and apply my change, not exactly ideal. With the new CSS typed object model, CSS values are exposed as typed JavaScript objects, eliminating a lot of the type manipulation and providing a much more sane way of working with CSS. Instead of using element.style, you access the styles through a tribute style map property or style map. They return a map-like object that makes it really easy to read or update. Compared to the old CSS object model, early benchmarks show about a 30% improvement in operations per second. That's something that's especially important when you're doing JavaScript animations. It also helps to eliminate bugs caused by forgetting to cast the value from a string to a number and it automatically handles rounding and clamping of values. Plus, there's some pretty neat new methods for dealing with unit conversions, arithmetic and equality. Eric has a great post and several demos and examples in his explainer linked below in the description. Synchronous copy and paste using document.exec command can be okay for small bits of text, but for anything else, there's a good chance that its synchronous nature will block the page, causing a poor experience for the user. And the permission model between browsers is inconsistent. The new async clipboard API is a replacement that works asynchronously and integrates with the permission API to provide a better experience for users. Text can be copied to the clipboard by calling write text. Since the API is asynchronous, the write text function returns a promise that will be resolved or rejected depending on whether we are successfully able to copy the text. Similarly, text can be read from the clipboard by calling read text and waiting for the returned promise to resolve with the text. Check out Jason's post and demos in the explainer linked in the description. He's also got a great set of examples that use async functions. The canvas element lets you manipulate graphics at a pixel level. You can draw graphs, manipulate photos, even do real-time video processing. But unless you're starting with a blank canvas, you need a way to render an image onto that canvas. Historically, that's meant creating an image tag, then rendering its content onto the canvas. Unfortunately, that means the browser needs to store multiple copies of the image in memory. Starting in Chrome 66, there's a new asynchronous rendering context that's streamlined that's a display of image bitmap objects. They now render more efficiently and with less jank by working asynchronously and avoiding memory duplication. I just need to call create image bitmap and hand it an image blob to create the image. Then, grab the bitmap pre-render context from the canvas and transfer the image in. And done. I've created and rendered the image. These are just a few of the changes in Chrome 66 for developers and of course, there's plenty more. Text area and select now support the autocomplete attribute. Setting autocapitalize on a form element will apply to any child form field. Improving compatibility with Safari's implementation of autocapitalize and trim start and trim end are now available as the standard based way of trimming white space from strings. All the details including links to the docs, specs and more 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. If you're interested in progressive web apps, check out the PWA Roadshow video series. Then click the subscribe button and you'll get an email notification whenever we launch a new video. I'm Pete LaPage and as soon as Chrome 67 is released I'll be right here to tell you what's new in Chrome.