Unspoofable infobars, fast descendant selectors and the Web Inspector API
Published on in Google Chrome, Last Week, tech, Uncategorized, WebKit. Version: Chrome 11
With Chromium and WebKit totalling at 1.372 commits in the last week, it certainly has been a busy one. Highlights include unspoofable information bars for Chromium, impressive CSS performance improvements for descendant selectors and the first signs of Web Inspector’s API for Chromium extensions.
To start off with some good news about the Web Audio API: Chris Rogers announced the availability of the API in Chromium for Mac OS X. If you’re a Mac user, download a snapshot, visit about:flags and enable the Web Audio API. Check out the proposal or some examples and start creating!
Antti Koivisto most definitely won the WebKit. After slightly improving performance by replacing a linked list with a vector last Wednesday, on Saturday he improved the performance of style recalculations by three to five times by optimizing matching of descendant selectors.
The reason descendant selectors are considered “bad” is that browser implementations have sucked. There is nothing inherently wrong with them.
Yesterday, he improved style matching by another 30% for websites using a lot of descendant selectors by switching the implementation to a Bloom Filter. Finally, Antti also fixed the adjacent sibling and :last-child:after selectors.
Great news for people who have an urge to extend Web Inspector: first drafts of the Web Inspector Audit, Inspected Window, Panel and Resources APIs are now available! While the APIs themselves have not been exposed to extensions yet, progress on this subject most definitely is a good thing. It may even indicate that we’ll be able to welcome Page Speed for Chrome not too long from now.
As for specification related updates, WebKit’s implementation of the -webkit-text-combine property is now complete. The background-clip property is now part of the background shorthand-property and CSS counters in anonymous renderers (e.g. for :before) now work properly.
Furthermore, Dave Hyatt implemented support for vertical text for printing and pagination. The font size for ruby-text will now default to 50% of its parent text and input elements using the placeholder attribute will continue to display it when focused on Mac OS X Lion, which is a willfull violation of the HTML5 specification.
Finally, the subset method for Typed Arrays has been renamed to subarray, asynchronous event handlers will be suspended when a modal dialog is being shown and Google has started on implementing media statistics.
Other changes last week include:
- Reflections can now also be rendered through Chromium’s accelerated compositing path.
- The frames in Web Inspector’s Resources panel will now remain visible after a refresh again.
- The Web Audio API’s buffer size for Chromium on Mac has been decreased.
- Auto-fill in Chromium now works with the new HTML5 input types (Chromium-side patch).
- Canonicalized URLs will now get their schemes lowercased in Safari, matching other browsers.
- Accounts on Chromium OS may now use +suffixes in their e-mail addresses.
- The pink-video issue in Chromium when accelerated compositing has been enabled has been fixed.
- Some performance tests were added for URL parsing, showing quite some differences among vendors.
- Images using CMYK and color profiles in a JPEG file will be shown properly again on Chromium Mac.
- The event model for IndexedDB has been overhauled, per TPAC discussion.
- Support for cursor updates for IndexedDB Cursors has been implemented as well.
- HTML5’s registerProtocolHandler method has been implemented, though is still disabled.
- The options within a <keygen> element have been updated to use the Shadow DOM.
- The background page badge which would appear over the wrench menu in Chromium has been removed.
- Numerous SVG font-issues have been solved by calculating a font’s final display size before rendering it.
- Unspoofable information bars have been implemented for Chromium, so mind the arrow!
- Chromium will now save the view chosen on the about:plugins page (details or normal view).
- Google Chrome Frame can now be installed in Internet Explorer 9 without needing admin privileges.
- Separate proxy settings will now apply to Chromium’s Incognito mode.
- The first part of changing the user agent via Web Inspector has landed.
- Two more shadow-related issues have been fixed.
And that’s all for this week. See ya! 🙂