Missed the action at this year's Chrome Dev Summit? Catch up with our playlist on YouTube. Watch now.

Latest contributions from Jeff Posnick

High-performance service worker loading

Ensure you're getting the best performance out of your service worker implementation.

Estimating Available Storage Space

navigator.storage.estimate() gives you insight into your web app's storage constraints.

Service Worker Registration

Best practices for timing your service worker registration.

Once Upon an Event Listener

Using {once: true}, available in Chrome 55, gives you an easy way to define "one and done" event listeners.

auxclick is Coming to Chrome 55

auxclick takes the place of the click event for non-primary mouse buttons, starting in Chrome 55.

Cross-origin Service Workers: Experimenting with Foreign Fetch

Third-party services can start deploying their own network request handlers.

CacheQueryOptions Arrive in Chrome 54

The full set of CacheQueryOptions are supported, making it easier to find the cached responses you're looking for.

Offline Google Analytics Made Easy

The sw-offline-google-analytics library gives you everything you need.

Stream Your Way to Immediate Responses

Start processing your service worker responses ASAP, thanks to ReadableStreams.

What’s New with KeyboardEvents? Keys and Codes!

Two new attributes bring consistent keyboard event handling to the web.

Device Orientation Changes Are Coming to Chrome 50

DeviceOrientationEvent uses relative degrees, and there's a new DeviceOrientationAbsoluteEvent.

Chrome 50 adds support for rel='preload', and deprecates rel='subresource'

HTMLMediaElement.play() Returns a Promise

Say goodbye to automatic playback uncertainty! play() now returns a Promise.

High Resolution Timestamps for Events

Find out when events occur with microsecond precision, thanks to DOMHighResTimeStamp.

Offline-first, fast, with the sw-precache module

Add service worker-powered offline capabilities to your site with the sw-precache module.

Generators: the Gnarly Bits

An exploration of ES6 Generators.

Collecting and Iterating, the ES6 Way

Maps, Sets, and for...of iteration are ES6 features that can change the way you work with collections of data.

Easier ArrayBuffer to String conversion with the Encoding API

The native Encoding API offers a straightforward way to convert between raw binary data and JavaScript strings.