Last week, 470 authors made a total of 1,883 changes to the Blink, Chromium, v8 and Skia repositories. 1,803 changes were made in the week before that, some of which I’ll mention in this update as well.
Chromium’s Developer Tools already supported zooming in on the interface itself, which can now be reset by using <ctrl>/<cmd> + <0>. Using the same control key + <1…9> can now be used to switch between the different panels it offers. The DevTools now also support casting the screen of Android applications using the Chromium-based WebView, as well as filtering control output through a regular expression.
Philip landed a series of patches for making arguments non-optional on the Document, Element, Location and Node objects and removeda fewcasesin which Blink treated null as an empty string. He also removed the fourth argument for the createNodeIterator and createTreeWalker methods on the Document object. Most notably, however, is that Philip also implemented support for the new Element.matches() method!
Support for parsing the “pan-x” and “pan-y” arguments for the touch-action CSS property have been added, following the Pointer Events specification. Setting text-overflow to ellipsis will now work when vertical writing modes are being used, and the :first-letter CSS pseudo-class will now been updated when new text will be added to the paragraph’s start. New focusing steps for the <dialog> element were also implemented.
Early implementation of the Element.animate() function has commenced, and is available behind a flag. An arc drawn on a canvas can not have an angle of more than 2*pi anymore. Support for limiting pointer events on an SVG element’s bounding box has been added. SVG now also supports the beginEvent and endEvent event listeners, and media elements now support the “resize” event.
Other changes which occurred last week:
Ian announced the “cr” tool, proposing it as a new way to manage Chromium checkouts.
The chrome.sockets and chrome.system.network Extension APIs have been promoted to the Stable channel.
Wording on the Incognito page has been tweaked to clarify what the feature does not provide.
The Chrome-Proxy HTTP header can now be used to bypass the mobile optimizing proxies.
Experimental support for playing videos on a Chromecast has been added for Chrome on Android 33.
Support for BITS (background downloading of components) has been enabled for Chrome on Windows.
The spinner and speech button images for input fields they apply to will only be shown when focused.
The Oilpan project, garbage collection in Blink itself, began landing code behind a compile-time flag.
A NEON version of the gaussian blur filter landed in Skia, yielding 10-15% improvements on a Nexus 10.
Last week yielded 1,433 commits to the Blink, Chromium, v8 and Skia repositories. This article discusses them up to Chromium r238071.
CSS Animations and Transitions will now be driven by the new animations engine which will also power Web Animations. While Web Animations themselves are not enabled by default yet, this has already brought improved behavior and various bug fixes to Blink.
Keishi has brought <datalist> support to Android for mostinputtypes, which will be available starting Chrome 33. Meanwhile Fredrik has been fixing abroadrange of issues in Blink’s WebVTT implementation, and Brendan added the “change” and “removetrack” events to TextTrackList and added support for TextTrack.id and TTL.getTrackById().
The base value of the “step” attribute of input elements will now be derived as specified in the HTML specification. Sandboxed iFrames can’t set document.domain anymore and the “overflowchanged” event will now be fired at the same time as requestAnimationFrame will fire. Finally, the first and last characters of a content-editable <div> element with display: table can now be removed.
Other changes which occurred last week:
Usage of all deprecated v8 APIs hasbeenremoved from Chromium and Blink.
The Blink, Chromium, v8 and Skia repositories saw 2,019 changes last week, made by a total of 419 authors. This update discusses them up to revision r237097.
Web Fonts downloads will now be initiated immediately after style recalculation, rather than queuing it during layout, often reducing download latency by more than 100ms. The -webkit-font-kerning property has been fixed by Eli to actually work. The isolation: isolate CSS property, part of CSS Blending and Compositing, has been implemented for Blink in software mode.
Other changes made last week include:
Hosted Apps can now be created from any website through a new menu option in Chrome.
v8 switched the Math.random() implementation to JavaScript, and will now always inline it.
Opacity, transform and filter animations for Web Animations can now be led by the compositor.
Web Animations are now enabled as part of the –enable-experimental-web-platform-features flag.
Last week, 1,869 commits made by 453 authors landed in the Blink, Chromium, Skia and v8 repositories. This update discusses them up to r232687. There wasn’t an update last week as I was in Dubai!
John disabled the ability to double-tap-zoom on websites which specify a width=device-width viewport, meaning the click delay of 300ms will no longer apply! Support for display: compact has been removed, support for SVG’s getStrokeBBox() method was implemented, and the CSS properties text-align-last and text-justify: none will nowimpact rendering.
Blink’s Shadow DOM implementation now supports the recently overhauled distribution algorithm for Shadow DOM. The hat and cat CSS combinators for Shadow DOM are now supported as well. Creating an <image> element using createElement() has been changed again, and will now return an HTMLUnknownElement. The innerHTML and outerHTML properties moved from the HTMLElement to the Element interface, making them available to SVG.
Last week, the Blink, Chromium, v8 and Skia projects saw 1,751 commits made by 432 authors. This article describes them, up to r229770.
A series of changes happened in regards to supporting multiple profiles. The profile selection menu in Chrome’s UI is being changed from displaying an avatar, to displaying a drop-down box displaying the user’s name. In Chrome OS, the icons will only show when the user is visiting another profile in their session. A menu option for teleporting windows to another user has also been added. As usual, François already made a screenshot.
Support for ECMAScript 6’s Math.sign() method has been implemented as an experimental feature in v8. The htmlFor property of <output> elements is now settable, creating an <image> element using createElement() will now return a generic HTMLElement and columns in the window.onerror event will now be 1-based. Dominic added support for the onvoiceschanged event as part of the the experimental Speech Synthesis API.
Other changes which occurred last week:
The DevTools team is working on accessing unloaded Android tabs through remote debugging.
The Sec-WebSocket-Extensions header will now be visible in DevTools for handshake responses.
A new experimental method of overflow scroll landed: Universal accelerated overflow scroll.
Work on the Mojo shell has started, and it’s already able to load HTTP URLs.
Blink layout tests which run a series of assertions can now be written without expected results.
An implementation of a TCP Server-socket API landed for Chrome Extensions.
A total of 1,800 commits were made by 437 authors in the Blink, Chromium, v8 and Skia repositories last week.
Animations in Blink are getting a large overhaul as the implementation of Web Animations is progressing, bringing along new features and a tonofbug-fixes. WebKit, by the way, announced their intentions to start working on implementing Web Animations as well.
Blink can now synthesize small-caps for @font-face declarations with multiple sources, and transforming text to either upper or lowercase with text-transform now supports Turkic languages. Support for the column-fill property in the new CSS Regions-based multiple column implementation has landed as well!
Last week yielded 1,582 commits in the Blink, Chromium, Skia and v8 repositories, made by 427 unique authors. Incidentally, Chrome turned five years old last Thursday Monday — thanks Peter!
Various changes were made in Chrome’s media stack last week. When using the Media Source Extensions API, support for Opus and MP3 as audio codecs has been implemented. Also new is support for VP8 alpha-playback, which means that videos can now have transparency.
Tables with display:inline set will now be rendered as inline tables rather than block elements, and border-spacing won’t be doubled anymore between table row groups. Philip also changed various JavaScript properties, such as offsetWidth and offsetTop, to only do partial layouts when they’ve been changed.
Arguments must now be passed to the CSSHostRule.addRule() and deleteRule() methods. The mousemove event has been made cancellable. Finally, the unprefixed onanimation* attributes have been implemented on HTML Elements, but won’t be exposed to the web until unprefixing has been completed.
Other changes which occurred last week:
DevTools’ go-to-location feature using <ctrl>+<p> now supports line numbers by using a colon: “:80”.
Adding a webapp to your homescreen on Android will be available in about://flags.
A People Search feature seems to be coming to Chrome, based on Google+ APIs.
Spatial Navigation will be enabled for the Chrome-based Android WebView.
Last week, 430 authors committed 1,760 changes to the Blink, Chromium, Skia and v8 repositories. This article highlights some of them, up to revision 220870.
The preferred and intrinsic width calculations for multiple column layout have been aligned with the specification. Support for ellipses as primary citizens in the world of 2d canvas path segments has been implemented. The change which makes devicePixelRatio include browser zoom has now been enabled by default. Support for the paint-order style for SVG elements has been implemented, as has the object-fit property which aids in maintaining the aspect ratio of replaced contents within its content box.
As for experimental features, the viewport will be reset to its implicit size when @viewport rules at-rules are being dynamically removed. The escape key may now be used to dismiss an active <dialog> window, which have also been made ARIA-aware and are now able to fire close() events. Work on unprefixed CSS Animation also continues, now with the CSSOM part.
Other changes which occurred last week:
A more convenient way of adding shortcuts to the launcher has been implemented for Android.
XMLHttpRequests in Blink do now support “json” as a responseType. Support for .wav files has been brought to the Web Audio API on Android. Accessing a cross-origin frame’s location setter may now throw an exception. A new about:flags entry also has been added for an experiment in which touchmove events aren’t being distributed to the renderer anymore. Finally, the DataTransferItemList.remove() method has been implemented.
When building Chromium for Android, the “chromium_testshell” target is the most complete browser you can build. Tommy has now updated it to include a menu option for signing in and out of Chromium.
Other changes which occurred last week:
Chromium’s version number is now equal to the number of ice cream flavors sold by Baskin-Robbins.
Another 1,859 revisions were made by 444 authors in the Chromium, Blink, Skia and v8 repositories last week. This article describes these changes, up to revision 216962.
Chrome DevTools continues to make debugging mobile pages easier, this time by adding support for port forwarding on chrome://inspect. It works for both local and remote servers, and is amazingly simple to use. They also switched to using rjsmin for JavaScript minification, and are working on a 3D layer view.
The Downloads Extension API has been promoted to the Stable channel, and will be available starting Chrome 30. Also new is a discussion group for talking about the Google Cloud Messaging-powered pushMessaging extension API.
v8 added experimental support for the Array.prototype.find and findIndex methods, part of ECMAScript 6, and now natively supports ArrayBuffer, DataView and typed arrays by default. Blink has been updated to use v8’s implementation of these instead of its own. Blink now also sets the Prototype of the interface object to that of its parent’s. Finally, Promises will be exposed in Worker-threads as well now.