Surfin' Safari

Last week in WebKit: background position offset, widows, orphans and Web Inspector icons

Posted by Peter Beverloo on Monday, December 17th, 2012 at 11:47 am

This update discusses the 1,522 WebKit changes that landed in the past two weeks, up to revision 137871.

The Toolbar Icons in Web Inspector won’t be shown by default anymore. The gear icon immediately goes to the Settings dialog again. Newly added items to the Network Panel will now be applied to filtering and cookies can be sorted by their size again. The viewport-related warning messages have been cleaned up, a new warning has been added for scripts blocked by @sandbox and messages created by console.time and timeEnd() can now be filtered out.

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.

Elliot moved generated content in :before and :after CSS pseudo-elements to the DOM, which also means that supporting animations and transitions on them is close. The Shadow DOM’s ShadowRoot constructor is gone, XMLHttpRequests for blob data will now set their Content-Type header accordingly and status events will now be fired for <link rel=prerender> elements. The Web Audio API now supports an offline audio context and the ::cue pseudo-element for video elements now is supported as well.

Support for in-band text tracks is now available on the Mac port, and plumbing has been added to allow deferring displaying of text tracks to the embedder.

Following the final pieces of it’s implementation, Alexis enabled support for the new background-position offset syntax on several platforms before enabling it by default, and removing the feature flag altogether. Meanwhile Tab started on aligning WebKit’s gradient implementation with the specification, towards unprefixing.

As for more experimental features, work on implementing CSS Grid Layout continues with improved parsing and layouting capabilities. Rick started working on supporting -webkit-image-set() on cursors, too.

Other changes which occurred these weeks:

Last week in WebKit: Canvas font fallback and :read-only for date and time

Posted by Peter Beverloo on Wednesday, December 5th, 2012 at 9:24 am

This update talks about the 690 WebKit patches that landed last week, up to revision 136364.

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 landed several more 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.
  • It’s now possible to run WebKit’s performance tests on Chromium for Android.
  • In order to make performance profiling easier, the run-perf-tests script now accepts a –profile option.
  • A feature flag has been added for an implementation of the HTML <template> element.
  • Partytime has been brought back to WebKit!

Last week in WebKit: More DOM Exception renames and in-band subtitle tracks

Posted by Peter Beverloo on Friday, November 30th, 2012 at 8:05 am

This belated update talks about the 575 WebKit patches that landed last week, up to revision 135681.

Web Inspector has enabled JSON previews for text/html XMLHttpRequests. Line numbers in the timeline panel are now searchable and pressing the Ctrl+End shortcut in the code editor will bring you to the last character again.

Erik continued with his renaming of DOM Exception names. The CSS Device Adaptation implementation is now able to apply the resolved viewport rules and, when enabled, exposes an API to the DOM. Text Autosizing’s display of nested comments on reddit.com has been vastly improved, changing relatively positioned elements to being statically positioned now puts them in the right spot and CSS Exclusions’ shape-outside values are now accepted on shape-inside as well. Alexis landed CSS B&B3-compliant parsing support for the background-position property.

The IDBDatabaseException object has been removed in its entirety. Initial infrastructure has been created allowing ports to handle in-band subtitle tracks, a new layer stack has been added to accommodate the needs of both the Fullscreen API and the <dialog> element, and biquad filter nodes for the Web Audio API now have a “detune” attribute.

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:

  • 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.
  • Qt separated all their code that depends on QWidget in a separate static library.

Last week in WebKit: Animatable shapes and new DOM exception names

Posted by Peter Beverloo on Wednesday, November 21st, 2012 at 12:16 pm

191 authors made 932 commits to WebKit’s repository last week. This update discusses them, up to revision 135111.

Within Web Inspector, several overrides have been moved out of the Settings panel. The Apple port now features a dock button in the top-right corner of the Web Inspector window. A checkbox has been added for toggling a visible FPS counter on the page, and a warning will now be shown in the console when invalid sandbox flags are encountered.

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, seven pseudo classes were updated to properly distribute in shadow trees.

Erik Arvidsson landed 17 out of a series of 25 patches renaming all the DOM Exception names. Examples include SYNTAX_ERR to SyntaxError, NOT_FOUND_ERR to NotFoundError and NOT_SUPPORTED_ERR to NotSupportedError.

Other changes which occurred last week:

Last week in WebKit: Web Inspector console updates and no more “desktop-width”

Posted by Peter Beverloo on Wednesday, November 14th, 2012 at 4:09 am

177 authors landed 763 changes in WebKit’s repository last week. This update discusses them, up to revision 134188.

Web Inspector’s console messages now accept multiple formatting blocks by using %c multiple times. The new console.clear() method will, surprisingly, clear the console. An option has been added for disabling rulers, pressing Ctrl+A in the Network Panel now selects the resources rather than the entire panel and warning messages have been added for invalid cross-frame options and usage of the dpi and dpcm units outside of printed media stylesheets.

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.

It’s now possible to show a list of tracks available for media elements, an UI for which will be implemented soon. A touchEvent’s client{X,Y} attributes will have the right scrolling adjustments applied, proper escaping of quotes will now be applied in various HTML extension methods (String.prototype.anchor, link, etc) for JavaScriptCore and getUserMedia() will now throw a TypeError instead of a DOMException.

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.

Other changes which occurred last week: