Last Week: Asynchronous script execution and GPU Acceleration by default
Published on in CSS, Google Chrome, Last Week, tech, WebKit. Version: Chrome 7
With just over a thousand commits in the last seven days, the majority of which were pushed towards the WebKit repository, activity seems to be slightly down in comparison with the previous weeks. Nevertheless, last week brought some interesting changes: changes to the script element, CSS timing functions and Hardware Acceleration for the masses.
On Wednesday Google made an announcement which was quite hard to miss: Google Instant. Google Search anticipates on what you’re going to search for and starts displaying results while you’re still typing. Chrome now features a similar possibility named match preview, although I think Chrome Instant sounds more appropriate. You can enable it by supplying the --enable-match-preview flag when launching Chromium, but keep in mind that the implementation still is rather rough.
Since the new HTML5 Parser and Tree Builder in WebKit kept timed script execution in mind, Tony Gentilcore was able to land support for <script async> only a few days after he added support for the defer attribute. To re-iterate, using the defer-attribute defers executing the script to after parsing the page has been completed. The async-attribute enables asynchronous execution of the script as soon as it’s available, therefore not blocking the parser.
Following the discussions of the face-to-face meeting of the CSS Working Group three weeks ago, Apple’s Dean Jackson modified the CSS3 Transitions and Animations modules to include a new timing function called “steps“. The name is fairly obvious: instead of having a continuous transition, the selected properties transition in a predefined number of steps. This timing function landed in WebKit last Thursday!
As you can see, all seven timing functions for transitions have been included in this example. The animated color-boxes in the JavaScript column show what a browser should be doing according to the specification, while the CSS column shows how your browser displays it. Furthermore, if you’re using a modern browser, you can see an animated graph displaying how a certain timing function works by clicking on its name!
Other updates which occurred in WebKit and Chromium last week include:
- James Robinson and Andreas Kling became WebKit Reviewers, congratulations!
- Hardware Acceleration, 3D CSS and WebGL have been enabled by default in Chromium.
- Script elements now understand <script for=window event=onload> per the HTML5 specification.
- Support for index insertion has been added to WebKit’s IndexedDB implementation.
- document.readyState now behaves as the HTML5 specification defines.
- Percentual attribute values won’t cause a crash anymore when used with the <meter> element.
- WebKit ports based on Cairo now have their borders anti-aliased.
- Web Sockets have been implemented for WebKit’s GTK port, also enabled by default.
- A small fix for a bug which allowed a CSS token to occur after a hex color without separation.
- Numeric input types may no longer contain invalid values, and properly applies :invalid.
- Using the middle mouse-button no longer fire the onclick event, matching IE and Firefox.
Finally, for the ones of you who like to be up-to-date as well, I’ve added RSS feeds for my Vendor Prefixed CSS Properties page (feed) and the overview pages of Google Chrome Command Line Switches (feed). Since most content on these pages gets updated automatically, I figured this would be a nice addition. While I cannot guarantee that they already work perfectly at this point, in theory they should be fine. See you next week!