Last week in WebKit:
Benjamin left me in charge of choosing a title
User visible changes
Sam Weinig removed the JavaScript APIs for Microdata. Microdata failed to gather support from both authors and engine developers. The removal of the APIs had been proposed on webkit-dev and got unanimous support.
Timothy Hatcher modified the rendering of SVG images onto <canvas> to allow the canvas to remain untainted in some cases. Specifically, if an SVG image does not embed foreign content (e.g. HTML), rendering in onto a canvas will not taint the canvas. Any foreign object in the SVG still cause the canvas to be tainted.
And some less dramatic changes:
- Simon Fraser tweaked the algorithm that sends fake mouse events to speed up scrolling further. If a page’s event handlers start misbehaving and take more than 10 milliseconds to process an event, the engine throttles the fake events to one per 250 milliseconds.
It is worth repeating the usual word of warning: web page event handlers should always be well written or the user experience suffers. - Andreas Kling improved the performance of inserting rules into an empty stylesheet with JavaScript.
- Christophe Dumez killed
DOMImplementation::hasFeature()
(following the specification). CallinghasFeature()
now always returns true for anything but SVG. Authors are expected to use direct features detection through their JavaScript APIs instead of usinghasFeature()
. - Christophe Dumez also changed
window.atob()
to throw an exception if there are too many padding characters. Previously WebKit would silently ignore the characters. - Rob Buis made the SVG property stroke-dasharray animatable. With this change, you can use CSS Transitions to animate the pattern of dashes used when stroking paths.
- Jer Noble added support for
MediaKeys.isTypeSupported
. This is part of the Encrypted Media Extensions APIs. This particular API lets the runtime ask the browser if a certain Key System is supported. - Alex Christensen enabled WebGL by default on the WinCairo port.
- Bruno de Oliveira Abinader made the CSS properties text-decoration and text-decoration-line non-inherited, following the specification.
Engine changes
- Antti Koivisto made a nice change to the architecture by removing style recalculation from the responsibilities of Element. Instead of having Node and Element perform the style update, this is now done through standalone functions acting on the API of Element.
- Mark Rowe added support for MallocStackLogging to FastMalloc, which makes debugging memory problems heaps easier on Mac OS X and iOS.
- Tim Horton fixed the rendering of composited images with EXIF orientation.
- Renata Hodovan fixed yet another bug discovered by her fuzzer.
- Andreas Kling updated many functions to return a reference instead of a pointer when the object returned cannot be null by design. This kind of changes make refactoring and reviews a lot easier.
Any questions? Suggestion for the blogs? Chirp our way to @awesomekling and @awfulben.