Non-economic Printing, Parallel GC Tracing and CSS Shaders
Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 17
Last week, 1,332 changes landed in both repositories: 768 at Chromium’s and 564 at WebKit. Highlights include the possibility to print background images and colors, a vastly improved GC for Apple’s JavaScriptCore and quite some updates on Content Security Policy following last week’s TPAC.
A multi-threaded accelerated surface implementation has landed now for Chromium on Windows as well, which, together with a follow up patch, will aid in having multiple windows rendering at 60 frames per second.
Following discussion at last week’s TPAC, WebKit’s Content Security Policy implementation has been updated to handle empty URLs, the allow-popups directive has been implemented on request of Microsoft, as has the sandbox directive, which basically mirrors the “sandbox” attribute for html and iframe elements.
In terms of specification compliance, the CSS Parser has been adjusted to accept any character in a string except for newlines and the string-opening quote. Finally, window.onerror will now fire for exceptions and errors in attribute-scripts. Canvas objects can now be exported to WebP images and using a border-box box-sizing with elements that have display on table-cell won’t calculate the content height anymore.
For subtitles, a TrackEvent was added, as were load notifications. WebKit now supports the -webkit-print-color-adjust property which allows you to toggle printing of background images and colors, and Fady Samuel landed the parsing stage of a new -webkit-aspect-ratio property, specified on Tab’s blog.
In the past few weeks, a lot of performance improvements already landed for Apple’s JavaScriptCore, followed this week by another 3.8% on Kraken and 3.5% on v8. The latter is especially interesting, as it adds parallel tracing to the garbage collector, reducing GC pauses by almost 50% in day-to-day usage!
A compile time flag has been added for CSS Shaders, indicating that work there will be starting! A fair number of bugs has already been created, which are being worked on together by Adobe and Apple engineers.
Other changes which occurred last week:
- As discussed, Adam Barth started with moving WTF out of JavaScriptCore.
- The arithmetic composite SVG Filter has been optimized for CPUs supporting ARM-Neon instructions.
- It’s now up to the WebKit port to decide whether a minimum zooming factor should be enforced.
- Parts of JavaScriptCore’s Lexer and Parser have been rewritten, moving towards 8-bit strings.
- The Page Visibility API has been enabled on Samsung’s EFL WebKit port.
- Chromium’s compositor gained support for checkerboarding missing layer tiles.
- Web Inspector can now unindent edited text by pressing Shift-Tab and work is being done on a Suggest box.
- The effective TLD list in Chromium has been updated with the latest data from Mozilla.
- The libyuv library has been added as an external dependency of Chromium, used by video and Remoting.
- Quite some exit-time destructors and static initializers have been removed from Chromium’s code.
- File upload boxes now feature more accurate descriptions and more distinct feedback upon dropping a file.
- Andreas “Awesome” Kling keeps rocking by reducing memory usage across critical parts of WebCore.
And that’ll be all again 🙂