A wild Last Week in Chromium and WebKit appears! This update describes the 1,654 commits which were made last week, 958 for Chromium and 696 for WebKit.
In case you didn’t hear this elsewhere yet: Opera has announced that it will start using the Chromium port of WebKit as the rendering engine in their browsers. This is very exciting news, even though I’m sad to see an excellent engine like Presto part with the rendering engine playing field. Meanwhile, Apple more broadlystarted with upstreaming the iOS port to WebKit!
This update discusses the 1,522 WebKit and 2,131 Chromium changes that landed in the past two weeks, totaling up to 3,653 changes.
Chromium updated the libvpx library to include support for an early version of the VP9 decoder, the successor of the VP8 codec that’s currently used by WebM. Furthermore, though still behind a flag (also available in about:flags), WebM files containing audio streams using the Opus codec are now supported as well.
Support has been added for the “widows”, “orphans” CSS properties, as well as for the “ruby-position” property. The text-orientation property now supports the “sideways-right” value and text decorations will now work correctly when text-combine is being used as well. Furthermore, out-of-range values will now be clamped to values the supported range. Applying SVG filters to elements through the url() syntax will now work even when the filter isn’t available yet, and CSS Exclusions’ shape-inside is now supported for multiple-segment polygons.
This update talks about the 690 WebKit commits and 1039 Chromium commits which landed last week.
A canvas’ 2D context’s globalCompositeOperation property now also accepts the various blending modes. The unpause() method on a MediaController object is now supported. Removing non-existent cues from a text track will raise an exception, and a media element’s textTracks property will now reflect the associated <track> element.
The :read-only CSS pseudo-class has been updated to work with date and time input types as well. The -webkit-mask-attachment property has been removed and the masking size has been added to the -webkit-mask shorthand. WebKit’s Multiple Column implementation now accepts “none” as the value for column-span rather than just one, and tables have started respecting the max-height property.
As for experimental features, Julien is continuing his work to implement the CSS Grid Layout Module in WebKit, and landedseveralmore patches. Dave also landed another patch for the new Multiple Column implementation, and CSS Shaders’ input colors will now be clamped before being blended. More tests have been added for the CSS Device Adaptation implementation, and values provided through the meta tag won’t be clamped anymore.
Other changes that occurred last week:
An OpenCL-based implementation of several filter effects has been added.
A basic implementation of the Web Audio API’s MediaStreamAudioDestinationNode landed.
Printing in a custom font on a <canvas> object can now also fall-back to other fonts if it’s unavailable.
The feature flag for the DAP Proximity Events feature landed. A few other potentially upcoming features were discussed on the WebKit mailing lists last week as well, namely using OpenCL for filters, Pointer Events, the Screen Orientation API and adding the <main> element.
Other changes that occurred last week:
Some minor progress was made in hooking up the Fullscreen API for Android.
James started working on Resource Timing tests, in W3C style so they can be submitted.
The EFL port added support for using the ATK library for Accessibility support.
Chromium for Mac switched to WebKit’s TCMalloc, improving DOM modification performance by up to 15%.
Chromium enabled support for the datalist UI for datetime and datetime-local input fields.
The feature flags for CSS Hierarchies have been removed again. Tab made parsing of the @charset rule stricter, the algorithm used for positioning <track> subtitles has been updated to better support multiple lines and the wrap-margin/padding properties have been renamed to shape-margin/padding. Various basic shapes, such as polygons, circles, rectangles and ellipses are now animatable with themselves, which can be used on both the clip-path and CSS Exclusions’ shape-inside properties.
Parsing for the text-align-last CSS property has landed. WebKit has also been updated to return the right value for <legend>.form, which should be in sync with an optional ancestor fieldset element. For Chromium, autocomplete=off will now be ignored when filling in an automatically created password. Finally, sevenpseudoclasseswereupdatedtoproperly distribute in shadow trees.
1,652 changes landed to the projects last week, 889 to Chromium’s repository and 763 to WebKit’s. The v8 project received 77 commits, quite a few of which were related to implementing the new Object.observe() feature.
Canvas images reprojected using the -webkit-canvas() CSS function will now use the full backing store rather than the scaled ones, which improves quality on many mobile devices. Support for the “desktop-width” directive in the meta viewport element has been removed. Also newly supported are date pickers for <input type=month> and <input type=week>, and Skia is now able to use reference URL filters on composited layers.
The Content Security Policy DOM implementation has been updated to match the specification. The interface is now called document.securityPolicy and various methods are now exposed as read-only properties.
Today’s update talks about the 925 Chromium changes and 677 WebKit changes made during the past week.
The version number Google Chrome will be using is now equal to the value of a British Pony, as carefully described by Anthony. As usual, there’s a label for a rough overview of the changes that went in to Chrome 24.
Quite a few performance improvements went in last week. Elliott improved performance of getElementsByTagName, among various other tests, by several percentages. Eric has been working on addressing RoboHornet(Pro) issues: rendering tables with column groups now is twice as fast, devirtualizing first- and lastChild() yielded another 30% speedup, and another 35% improvement which lowers the total test run-time from 8.2 seconds to just 5.3!
WebKit’s Content Security Policy implementation will now listen to unprefixed Content-Security-Policy headers included in the HTTP response. This header will be preferred to X-WebKit-CSP, which still must be used in case you’re supplying CSP 1.1 features to the browser. Development of the cross-site scripting protection has been picked up again. Malformed headers will now be reported, and report URLs can now be defined in the X-XSS-Protection header.
Other changes which occurred last week:
All code related to the experimental Undo Manager API has been removed, as it went unmaintained.
Touch adjustment scoring now normalizes with respect to the maximum possible overlap area.
A lot has happened again last week, and this update covers the 739 WebKit and 995 Chromium commits which have occurred since. Highlights are the @host rule for Shadow DOM and resolution media queries.
This update covers 1,921 Chromium changes and 1,426 WebKit changes which happened over the past two weeks, totaling up at 3,347 changes. Highlights are support for conditional CSS, support for polygonal shapes in CSS Exclusions and support for Shadow DOM, now shipping with Chrome.
Chromium has enabled both Shadow DOM and scoped stylesheets by default, and both features which will ship with Chrome 24. This also applies to MathML, which has been worked on by David Barton in the past year.
Web Inspector now supports styling console message output by using the %c modifier, together with a string of defined styles in the second parameter. HTML as part of XMLHttpRequest responses will now be previewed in the Network Panel, and hovering over console messages will now highlight them.
Sorry for the recent lack of updates, I’ve been really busy. This update discusses everything until the 24th of September, so two weeks, not including last week. Early next week I’ll publish an article covering last and this week, to get you fully up to date again.
David Barton updated all of MathML’s rendering to be based on the Flexible Box module, simplifying the code significantly. Over the past number of months, he’s done quite a lot of work on improving WebKit’s implementation of MathML, which may ship with Chrome 24.