Shadow DOM, Pointer Lock and a new CSS Lexer
Published on in Google Chrome, Last Week, tech, WebKit. Version: Chrome 18
929 changes landed at Chromium’s repository last week, whereas WebKit’s received 626, totaling up to 1,555. Highlights include quite some progress on implementing the Shadow DOM and the Pointer Lock API.
Web Inspector’s Timeline Panel has been extended with three graphs, all hidden behind the Experimental Settings option, showing information about objects and events in the DOM. Hovering over a function in the Script Panel may now show an overlay with general information and it’s source-code and elements within iframes are selectable again.
The Flexible Box module implementation has been taught about distributed packing and now supports scrollbars for overflowing content, also taking the flex direction into account. Furthermore, floated pseudo-elements within table captions will now be positioned correctly.
In order to verify whether ES.next’s let keyword will be compatible with websites, Apple has reserved the word from normal usage in JavaScriptCore. Support for Uint8ClampedArray has landed for both V8 as JSC, values for the dropzone attribute will be normalized and various issues with radio-button groups have been fixed.
In terms of the Shadow DOM, registering of scoped stylesheets with the scoped element has been implemented and an initial version of the <content> element is now available as well. Following an API change and the actual interface, Vincent Scheib’ Pointer Lock API has made it into Chrome Canary as well.
Other changes which occurred last week:
- Zoltan Herczeg wrote a custom CSS Lexer for WebKit, doubling lexing performance!
- The parsing stage of calc() has landed in WebKit, following several new tests.
- The JavaScriptGlue folder in WebKit’s Source/ directory has been removed.
- WebKit’s Qt port now features tap feedback respecting the tap-highlight-color property.
- Parsing of the Content-Disposition HTTP header has been improved, aligning more closely to RFC 6266.
- Ryosuke is working on bringing performance tests to WebKit, to be visualized using Mozilla’s Graph server.
- Elements without attributes are slightly smaller, resulting in another ~0.23% memory improvement.
- Styles won’t be updated synchronously anymore after running a script.
- An about:flags entry has been added for enabling the Media Stream API, including getUserMedia.
- Another flag has been added to disable the GPU for accelerated rendering, falling back to software mode.
- A debug page for the Omnibox has been added as chrome://omnibox/.
- Storage Quotas are now available through the Extension Storage API, as the getBytesInUse method.
- An Extension API event informing about brightness changes has been implemented for Chromium OS.
- The Privacy Extension API has been moved out of the experimental namespace, as has the Storage API.
And that’ll be all again, thanks for reading!