What’s New in Chrome 31
“Very little” is possibly the best answer. Chrome releases rarely offer a long feature list but there are a couple of interesting technologies to note.
Click the Tool icon followed by About Google Chrome to ensure you have the latest version on Windows, Mac or Linux. If you’re one of the few people who hasn’t installed the browser, head to google.com/chrome.
Auto-Complete Forms and requestAutocomplete()
Form auto-complete has been available in browsers for many years. Enter your email address and you can usually select it when prompted for it again on any other form elsewhere.
requestAutocomplete() is a new API which allows users to store often-used payment details such as credit card numbers. Rather than completing a checkout process, the user can select pre-defined payment and shipping values:
The HTML field autocomplete attribute can normally be set to “on” (the default) or “off” but Chrome extends this and allows you to set appropriately-named value such as name, tel, email, cc-name, cc-number, etc:
<form id="payment" method="/pay"> <input autocomplete="cc-name" name="myname"> <input autocomplete="cc-number" name="ccnumber"> <input autocomplete="cc-exp" name="ccexp"> <input autocomplete="cc-csc" name="cccvc"> </form>
requestAutocomplete() method of HTMLFormElement shows the auto-complete choice when a button such as “Checkout” is clicked. An
autocomplete event indicates a choice has been made and the form has been filled ready for submission. An
autocompleteerror event fires if a problem occurs such as canceling.
The API is not yet a standard but seems straightforward and will progressively enhance existing forms. It’ll work well if users trust handing their credit card details to a Google application for safe-keeping.
For more information, refer to Using requestAutocomplete().
Portable Native Client (PNaCl)
Google’s Native Client (NaCl) is a sandbox for running compiled C/C++ code directly in the browser. In other words, you can download native low-level executables to the browser which run at near-maximum OS speeds. The technology is ideal for sophisticated high-performance applications such as video editors and 3D games.
To ensure NaCl works everywhere, it requires architecture-specific representations for all devices. In other words, developers must compile their applications multiple times to run across x86, ARM or MIPS devices.
The new Portable Native Client makes life easier by compiling C/C++ to an intermediate bytecode. When the resource is accessed, Chrome downloads and translates the portable executable to architecture-specific machine code which is optimized for the device where it’s being run. It’s a similar concept to Java and .NET.
NaCl (and PNaCl) is currently a Chrome-only feature which has a niche following. The technology makes me uncomfortable; taken to the extreme, I hope browsers never become executable distribution platform.
I also suspect the technology is a little ahead of its time. If you require native OS speed, you’re probably building a large application — so why not build it for the desktop? With care, you can make it work across multiple OSs and it will give you far more control over the user experience. It can then be distributed as a large executable which need only be downloaded and installed once. You can also sleep soundly at night knowing Google can’t pull PNaCl from under you.
The web works well because it’s OS/device agnostic and permits applications to leverage network connectivity for collaboration purposes. Raw speed is often a lesser priority, but NaCl/PNaCl enables Google to capture a larger share of the desktop application market.
Other minor features include:
- video alpha transparency in WebM
- a new internal chrome://components page to check installed components
- packaged apps can target specific URLs
- a beta chrome.desktopCapture for capturing screens in extensions
- a new
chrome.sessionsAPI for querying and restoring tabs in extensions
- a new
chrome.fileSystemAPI for file access from extensions
- a redesigned Report an issue dialog
- Chrome for Android allows websites to be added to the home screen
- 25 security fixes
-webkit prefixes since they’ve not been removed from Chrome and will be required by Safari for some time yet…