Geolocation API removed from unsecured origins in Chrome 50
Chrome has public intent to deprecate powerful features like geolocation on non-secure origins, and we hope that others will follow. Starting with Chrome version 50, Chrome no longer supports the...
View ArticleDevTools Digest: More power with the new Command Menu
Read about DevTools' new command menu and its over 60 actions that enable crazy fast workflows. Cmd+Shift+P to bring up the Command Menu The “Jump to File” dialog that appears when you press Cmd+P in...
View ArticleHoudini – Demystifying CSS
Have you ever thought about the amount of work CSS does? You change a single attribute and suddenly your entire website appears in a different layout. It’s kind of magic in that regard (can you tell...
View ArticleStream Your Way to Immediate Responses
Anyone who’s used service workers could tell you that they’re asynchronous all the way down. They rely exclusively on event-based interfaces, like FetchEvent, and use promises to signal when...
View ArticleImproving scroll performance with passive event listeners
New to Chrome 51, passive event listeners are an emerging web standard that provide a major potential boost to scroll performance. Check out the video below for a side-by-side demo of the improvements...
View ArticleDevTools Digest: DevTools in 2016 and Beyond
Google I/O 2016 is a wrap. DevTools had a strong presence at I/O, including a talk by Paul Bakaus, Paul Irish, and Seth Thompson outlining the future of DevTools. Check out the video below or read on...
View ArticlePerformance Observer - Efficient Access to Performance Data
Progressive Web Apps enable developers to build a new class of applications that deliver reliable, high performance user experiences. But to be sure a web app is achieving its desired performance...
View ArticleAPI Deprecations in Chrome 52
In nearly every version of Chrome we see a significant number of updates and improvements to the product, its performance, and also capabilities of the web platform. This article describes the changes...
View ArticleCSS Containment in Chrome 52
img.screenshot { max-width: 100%; } TL;DR The new CSS Containment property lets developers limit the scope of the browser’s styles, layout and paint work. It has a few values, making its syntax this:...
View ArticleService worker caching, playbackRate and blob URLs for audio and video on...
.screenshot-landscape { max-width: 60%; } .screenshot-portrait { max-width: 35%; } @media screen and (max-width: 500px) { img.screenshot { max-width: 100%; } } Sometimes good things have boring names....
View ArticleService worker caching, playbackRate and blob URLs for audio and video on...
.screenshot-landscape { max-width: 60%; } .screenshot-portrait { max-width: 35%; } @media screen and (max-width: 500px) { img.screenshot { max-width: 100%; } } Sometimes good things have boring names....
View ArticleFlexbox gets new behavior for absolute-positioned children
A previous version of the CSS Flexible Box Layout specification set the static position of absolute-positioned children as though they were a 0x0 flex item. The latest version of the spec takes them...
View ArticleGoodbye Short Sessions: a proposal for using service-workers to improve...
We all love how native apps will ask you to login only once and then remember you until you tell them you want to log out. Unfortunately the web doesn’t always work that way. Now that devices,...
View ArticleECDSA for WebRTC: better security, better privacy and better performance
.screenshot-landscape { max-width: 60%; } .screenshot-portrait { max-width: 35%; } @media screen and (max-width: 500px) { img.screenshot { max-width: 100%; } } From Chrome 52, WebRTC uses a much more...
View ArticlePersistent Storage
Persistent Storage With Chrome 52, we’re introducing the ability to make storage persistent. Storage for web applications is a complex topic, and persistence for data on the frequently-ephemeral web...
View ArticleComplexities of an infinite scroller
TL;DR: Re-use your DOM elements and remove the ones that are far away from the viewport. Use placeholders to account for delayed data. Here’s a demo and the code for the infinite scroller. Infinite...
View ArticleOffline Google Analytics Made Easy
So you’ve got a progressive web app, complete with a service worker that allows it to work offline. Great! But you’ve also got existing Google Analytics set up for your web app, and you don’t want to...
View ArticleWeb Push Interoperability Wins
When Chrome first supported the Web Push API, it relied on the non-standard Google Cloud Messaging (GCM) sender ID and it’s protocol. Although it was proprietary it allowed the Web Push API to be made...
View ArticleMuted autoplay on mobile: say goodbye to <canvas> hacks and animated GIFs!
.screenshot-landscape { max-width: 60%; } .screenshot-portrait { max-width: 35%; } @media screen and (max-width: 500px) { img.screenshot { max-width: 100%; } } Muted autoplay for video is supported by...
View ArticleBringing easy and fast checkout with Payment Request API
It’s no surprise that the majority of online shopping is happening on mobile devices these days. But did you know that 66% of mobile purchases are made through websites rather than apps? Unfortunately...
View Article