Chrome 55 marked the arrival of many user-side changes, including Chrome's built-in download manager and saving pages for offline reading. Normally I separate posts about Chrome releases into new features for users and new abilities developers can use, but this release (at least in its current form) is almost completely about new APIs.
Web Bluetooth API
This is exactly what it sounds like - an API that allows web apps to interact with Bluetooth devices. Although the full specification has not been finalized yet, it has left the Origin Trial phase with Chrome 56 (meaning any site can use it, and it is not likely to drastically change). This can only be used for communicating with Bluetooth Low Energy (BLE) devices, such as the BB-8 toy in the video above.
Once you allow Chrome access to Bluetooth, as well as turn on your device's Bluetooth radio, sites can request access to BLE devices. The API taps into a BLE device's GATT server to easily read attributes, such as battery level and notifications. Certain properties can also be written to devices, allowing for two-way communication.
To prevent the API being used maliciously, this can only be used by HTTPS-enabled sites and requires a user gesture (like tapping a button) to discover nearby devices. You can try out several demos of the API here.
Google has worked extensively on virtual reality this year. This includes Android Nougat's Daydream VR mode, the Pixel's Daydream View headset, and the apps and games that support it. Chrome 56 introduces preliminary support for the WebVR API, which not only allows web apps to generate environments in virtual reality, but also connect to motion controllers like the Daydream View's controller.
First, the visuals. WebGL, a subset of OpenGL that allows sites to create 3D environments, has been around for years. WebVR extends on that by allowing sites to switch to a VR mode via an on-page button. This results in the WebGL view being split into two halves (one for each eye), as well as ensuring both viewpoints are slightly apart from each other to simulate depth of field.
Next up is user input. WebVR is designed to work with all current VR controllers (mouse, touch, keyboard, motion controllers, etc). WebVR and the Gamepad API can even be used together to support the Daydream controller and similar devices.
VR mode in Chrome doesn't require any specific device, so it works fine with any headset - including Google Cardboard. WebVR is also currently supported in Firefox Nightly builds and Samsung's Internet Explorer for Gear VR. Although, it should be noted that Samsung's browser doesn't support the newest version of the WebVR spec. You can try out WebVR samples here.
Image Capture API
Taking photos and recording videos from a webpage has been possible for years, with the Image Capture API. But until now, sites couldn't do anything more than record - settings like zoom and focus were inaccessible. The updated Image Capture API enables more control over the device's camera, as well as capturing full-resolution images and video.
This is currently an Origin Trial, so websites have to request a token to take advantage of it. You can try out a demo here (this works on desktop Chrome 56 as well).
Other new features
Instead of making this post an essay, here's a quick summary of Chrome 56's other new major additions for Android.
- Sites using the Notifications API can now include images in notifications (example).
- The PaymentRequest API originally introduced in Chrome 53 has a few new improvements, including requesting the buyer's name and set a shipping type (more info).
- Text fields now have spell-checking enabled by default on Android devices with at least 512MB of RAM and a system dictionary.
- Chrome will block popups triggered by scrolling on a touchscreen.
The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.
- Chromium Blog