Archive for February, 2013

Audio Indicators, document.register() and unprefixed Mutation Observers

Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 27

Last week saw 745 WebKit commits and 935 Chromium commits, totaling up to 1,680 changes.

Chrome OS has increased the priority of tabs which are playing audio, making it less likely that they will be discarded in low memory situations. More exciting, tabs which are playing audio will now have a visual indicator displaying the volume, making it a lot easier to determine where these random sounds are coming from.

Web Inspector’s Timeline panel now shows the networking events associated with Web Sockets, i.e. creating the socket and receiving a reply to the connection handshake. The “undefined” keyword will now be lowlighted, and Pavel landed a basic console.table() implementation.

An implementation of Web Components’ document.register() function landed, making it possible for JavaScript to register custom HTML elements with WebKit. Date and time input fields now accept “24” as a valid hour as well and the “reflected-xss” directive has been implemented as part of the experimental CSP 1.1 implementation.

Iframes now recognize the “allowfullscreen” attribute, whereas they already accepted the prefixed version. Furthermore, Mutation Observers have been unprefixed as well!

Several more tests have been fixed in the new multi-threaded HTML parser by implementing missing functionality and support for edge-cases. There are 25 failing test-cases remaining and the number of open issues is decreasing.

Dave continued his work on the new Region-based multiple column implementation, also taking the first steps towards specification-compliant painting of columns. Meanwhile, Julien continued his work on the implementation of the CSS Grid Layout Module, finishing the auto placement algorithm implementation.

Other changes which occurred last week:

  • JavaScriptCore’s script source cache has been shrunk, yielding significant memory usage improvements.
  • Support for the canvas’ Path object has been enabled for all ports, and separately in Chromium.
  • An implementation of the DFG JIT for MIPS architectures has been implemented.
  • An OpenCL implementation of the FEMerge filter landed, with many more on their way.
  • The WebKitGTK port updated their media controls to be CSS-based rather than GTK-based.
  • A Chromium flag has been added to toggle availability of the Apps and Extension DevTool.
  • All settings in chrome://flags can now be reset to their default state through a new button.
  • Stephen Chenney has become a WebKit Reviewer. Congratulations!

And that’s last week again..

Read more (1 comment) »

The “ch” unit, the Threaded HTML parser and Chromium 27

Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 27

Today’s update discusses the 725 WebKit and 990 Chromium commits that landed last week, totaling up to 1715 changesets.

Chromium’s version number is now equal to the number of species Captain Jean-Luc Picard made contact with in Star Trek’s The Next Generation series: 27.

Within Web Inspector, an option has been added to split the Elements and Source sidebars in two separate panes. DOM nodes are now being highlighted when hovering over them in the Debug panel, the ability to have whitespace indicators now is experimental and the re-do feature in the text editor will now move the selection past the text.

Support for the “ch” CSS unit has been added to WebKit, which matches the width and spacing of the “0”-glyph in the current font. The @supports at-rule now has improved error recovery, the “src” property in @filter at-rules can now be parsed correctly and the correct behavior of the -webkit-margin-collapse property has been implemented.

Changing an element’s border or padding will now re-layout its children, intrinsic widths on replaced elements -such as images- are now more accurate and Opera’s Morten Stenshorne made WebKit stop ignoring column rules wider than the gaps. CSS Exclusions’ shape-inside property now defaults to outside-shape, and shape-inside now supports circles.

Support for the ::distributed() pseudo-element, part of the Shadow DOM specification, has been implemented. Pablo also landed support for the CSS.supports() method, which is the DOM API specified in the CSS Conditional Rules module.

The threaded HTML parser has been updated to pass all layout tests, and the preload scanner has been enabled as part of the background parsing thread after parts of it have been updated to be therad safe.

Other changes which occurred last week:

Cheers for reading!

Read more (no comments) »

Threaded HTML parser, background blending and welcoming Opera

Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 26

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 broadly started with upstreaming the iOS port to WebKit!

It’s now possible to change the dock side of Web Inspector by dragging its toolbar. There’s now an option to show composited layer borders and the JavaScript tokenizer can now detect round braces. Also recently introduced is the Continuous Painting Mode and the possible upcoming addition of a console.table() function.

Adam, Eric and Tony have been working on changing WebKit’s HTML parser to handle tokenization and parts of parsing on a background thread. On resource constrained systems, such as the Nexus 7 tablet, this yields improvements of at least 10%, with the maximum stop time going down by roughly 50%. Some of last week’s fixes focused on the preload scanner, timing of the load event and the XSS auditor.

WebKit’s Media Stream implementation has been enhanced with support for DTMF. Mike will be working on support for X-Content-Type-Options:nosniff and edit actions have been added for Bold and Italic commands. document.activeElement won’t return non-focusable elements anymore, the formenctype attribute now defaults to an empty string and FocusEvent got a constructor.

Rik started working on implementing support for the background-blend-mode CSS property to WebKit, which determines the blending mode of the background image. The vmax unit has been implemented, completing the vh, vw, vmin and vmax group, and language selection for the ::cue pseudo-element is now available. Grids now recompute their logical height after row or column changes, and WebKit can now parse grid-auto-flow.

In a series of just over a dozen commits, Gregg imported a slightly modified Khronos WebGL conformance test suite into WebKit. Sharing test suites is great, and I hope we can see more of this!

Other changes that occurred last week:

  • The TestWebKitAPI test suite now works for iOS,
  • The TestRunner library has been turned into a component for the Chromium build.
  • An experimental gyp-based build has landed for the Gtk port, with build system talks being on again.
  • Jer aligned WebKit’s Encrypted Media implementation with the latest specification updates.
  • Google’s Chief Apple Polisher, Nico Weber, became a WebKit Reviewer. Congratulations!
  • A flag has been added to Chromium for toggling composition of fixed positioned elements.
  • Some plumbing by John on the Fullscreen API for Android.

No promises, but hopefully another article next week :).

Read more (1 comment) »