CSS Grid Layout

Sites are increasingly being accessed on screens of all sizes, from large LCD TVs to tiny watch faces. Historically, supporting all of these screen sizes required complex combinations of markup and CSS, making code hard to maintain. To give developers more granular control over how elements grow and shrink to fit the current screen size, CSS Grid Layout is now available.




CSS Grid supports a two-dimensional grid-based layout system, optimized for responsive user interface design. Elements within the grid can be specified to span multiple columns or rows. Elements positioned in a CSS grid can also be named, making layout code easier to understand.
Screenshot 2017-01-25 20.06.19.png
CSS Grid allows developers to arbitrarily place elements on a grid with full control over element flow, sizing behavior and responsiveness.

Improved Add to Home screen


Update (2017/03/09): Improved Add to Home screen is now planned to launch in Chrome 58.

Since early versions of Chrome for Android, users have been able to add sites to their Home screen for fast and convenient access. This feature adds the icons using Android shortcuts, which means that web apps don’t show up throughout Android in the same way as installed native apps.




In this release, when a user adds a Progressive Web App to their Home screen, Chrome will integrate it into Android in a much deeper way. For example, Progressive Web Apps will now appear in the app drawer section of the launcher and in Android Settings, and will be able to receive incoming intents from other apps. Long presses on their notifications will also reveal the normal Android notification management controls rather than the notification management controls for Chrome.

Media Session API

Media consumption is one of the most common uses for the mobile web. In Chrome for Android, developers can customize the lock screen UI and notifications with media content using the new Media Session API. By providing metadata to the browser about the content being played, developers can create rich lock screen messaging that includes information such as title, artist, album name, and artwork. Additionally , the site is now able to respond to user actions taken on the notification itself, such as seeking or skipping.


media-session-tldr-with-cc.png

Other features in this release

  • The WebAssembly API has been enabled by default, allowing developers to run near-native code in the browser without a plugin.
  • When a video enters fullscreen on an Android device, Chrome now automatically locks the screen orientation according to the aspect ratio of the video.
  • Sites using continuous setTimeout() will now be throttled when using loops to drive out-of-view frame animations, improving performance for users.
  • The Fetch API Response class now supports the .redirected attribute to help web developers avoid untrustworthy responses and reduce the risk of open redirectors.
  • The new padStart and padEnd formatting tools enable text padding, facilitating tasks like aligning console output or printing numbers with a fixed number of digits.
  • Service Worker Navigation Preload is now available as an Origin Trial, allowing developers to parallelize the network request for the main resource alongside service worker startup.
  • The Payment Request API can be made available inside an iframe by adding the allowpaymentrequest attribute.
  • PaymentMethodData now supports basic-card, so developers can refer to all card types with a single method identifier, rather than individual data types.
  • To simplify the migration from HTTP to HTTPS, stored credentials for HTTP forms are now transferred to the HTTPS version of the site, and the Credential Management API now supports filling credentials from matching subdomains.
  • The caret-color property enables developers to specify the color of the text input cursor.
  • To preserve consistency with other on<event> attributes, ongotpointercapture and onlostpointercapture are now part of the GlobalEventHandlers mixin.
  • Support is now available for text-decoration-skip: ink to make underlines skip descenders, the portion of letters that extend below the text's baseline.
  • New text-decoration properties are now available, allowing developers to specify visual effects such as line color and style.
  • The PresentationRequest constructor has been modified to accept multiple URLs via a sequence<DOMString>, in addition to the existing constructor that takes a single URL.
  • The new AudioContext.getOutputTimestamp() method enables developers to synchronize DOMHighResTimeStamp and AudioContext.currentTime values.
  • AudioBufferSourceNode, OscillatorNode, and ConstantSourceNode now inherit from AudioScheduledSourceNode, consolidating functionality.
  • The new cancelAndHoldAtTime function cancels future AudioParam events with times greater than or equal to cancelTime, allowing developers to preserve the value of the scheduled time in a direct way.
  • Developers can now construct WebAudio-specific events such as OfflineAudioCompletionEvent and AudioProcessEvent.
  • To increase user security, Chrome's XSS Auditor now blocks entire suspicious pages by default, rather than selectively filtering out the suspected reflected XSS on the page.

Deprecations and interoperability improvements

  • The <cursor> element has been removed, but but cursor icons can still be set via the cursor CSS property.
  • A legacy caller has been removed from HTMLEmbedElement and HTMLObjectElement, so the interfaces will now throw exceptions rather than having their instances called as functions.
  • The usemap attribute now requires case-sensitive matching.
  • All -webkit- prefixed IndexedDB global aliases have been removed, after their deprecation in M38.
  • Custom message events and events created by client.postMessage(message, transfer) in a service worker will now use MessageEvent instead of ServiceWorkerMessageEvent, following the HTML MessageEvent spec extension.
  • Support for webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), and onwebkitresourcetimingbufferfull has been removed from the Performance interface, in favor of clearResourceTimings(), setResourceTimingBufferSize(), and onresourcetimingbufferfull.
  • The following -internal CSS selectors are being deprecated: -internal-media-controls-cast-button, -internal-media-controls-overlay-cast-button, and all of the -internal-media-controls-text-track-list selectors.
  • Support for the obsolete API webkitCancelRequestAnimationFrame has been removed in favor of cancelAnimationFrame.
  • On Android, wordWrap: break-word and -webkit-line-break: after-white-space will no longer be set on contenteditable containers by default, to preserve consistency between browsers.
  • The webkit prefix has been removed from AudioContext and OfflineAudioContext.

Posted by Xi Han, Home Screen Heroine




In the next few weeks we’ll be rolling out a new version of this experience in Chrome beta. With this new version, once a user adds a Progressive Web App to their Home screen, Chrome will integrate it into Android in a much deeper way than before. For example, Progressive Web Apps will now appear in the app drawer section of the launcher and in Android Settings, and will be able to receive incoming intents from other apps. Long presses on their notifications will also reveal the normal Android notification management controls rather than the notification management controls for Chrome.




This new Add to Home screen feature is one more step in our journey to empower developers to build the best possible experience for their users, and we are committed to ensuring the same mechanisms for installing Progressive Web Apps are available to all browsers on Android.


Posted by Yaron Friedman, Add to Home screen aficionado