With another 1,616 commits down the pipeline, 904 at Chromium’s and 712 as WebKit’s, another very busy week has passed. The highlights include a first working CSS Filter, the hundred-thousandth commit for WebKit and the ability to change your user agent in Web Inspector.
Web Inspector now shows the media queries which are associated with certain CSS Rules. The user agent with which a page gets loaded may now be changed, selected text in a Script panel received an extra context menu option to evaluate it directly in the console and a suggestion box will now be shown for both CSS as JavaScript properties. Finally, the indentation of pretty-printed JavaScript can now be configured.
Dean Jackson added code to WebKit’s CSS Parser, making it understand the syntax for drop shadows. Meanwhile, the first part of parsing the custom() filter definition, used for CSS Filters, landed as well. Support for parsing the line-grid-snap property has been added as well, which will allow snapping of text towards the nearest enclosing grid.
For WebKit ports who have CSS Filters enabled, the hue-rotate() filter started working per Dean’s plumbing of filter effects through the rendering code. Small as it is, it’s enough to be excited about :).
Last week, 1,332 changes landed in both repositories: 768 at Chromium’s and 564 at WebKit. Highlights include the possibility to print background images and colors, a vastly improved GC for Apple’s JavaScriptCore and quite some updates on Content Security Policy following last week’s TPAC.
A multi-threaded accelerated surface implementation has landed now for Chromium on Windows as well, which, together with a follow up patch, will aid in having multiple windows rendering at 60 frames per second.
Following discussion at last week’s TPAC, WebKit’s Content Security Policy implementation has been updated to handle empty URLs, the allow-popups directive has been implemented on request of Microsoft, as has the sandbox directive, which basically mirrors the “sandbox” attribute for html and iframe elements.
In terms of specification compliance, the CSS Parser has been adjusted to accept any character in a string except for newlines and the string-opening quote. Finally, window.onerror will now fire for exceptions and errors in attribute-scripts. Canvas objects can now be exported to WebP images and using a border-box box-sizing with elements that have display on table-cell won’t calculate the content height anymore.
In the past few weeks, a lot of performance improvements already landed for Apple’s JavaScriptCore, followed this week by another 3.8% on Kraken and 3.5% on v8. The latter is especially interesting, as it adds parallel tracing to the garbage collector, reducing GC pauses by almost 50% in day-to-day usage!
A compile time flag has been added for CSS Shaders, indicating that work there will be starting! A fair numberof bugs has already been created, which are being worked on together by Adobe and Apple engineers.
Other changes which occurred last week:
As discussed, Adam Barth started with moving WTF out of JavaScriptCore.
The arithmetic composite SVG Filter has been optimized for CPUs supporting ARM-Neon instructions.
Another 1,511 changes further on, 885 made at Chromium’s repository and 626 at WebKit’s. Last week’s highlights include upstreaming of OpenBSD support into Chromium, lots of progress on implementing support for HTML5 Microdata and first steps towards supporting the CSS cross-fade() function for images.
Within Web Inspector, it’s now possible to select the indentation which will be used in the text editors. The four options available are two, four or eight spaces, or a tab. Advanced search is now available for content scripts and inline background-image CSS properties won’t show a warning anymore in the console.
Arko Saha’s work on implementing the HTML5 Microdata properties and DOM API is progressing nicely, as the itemprop, itemref and itemvalue properties landed last week. The itemtype attribute has been enhanced to accept a space-separated list of values, and code for the itemid attribute is justabout to land as well.
As for specification related improvements, drawing images on a canvas by using certain composition modes has been fixed. Input step-values may now start with dots, IndexedDB has been taught the deleteDatabase method and two patcheslanded implementing parts of the Mutation Observers specification.
Parsing of two new CSS features has landed, namely for line-grid and for the cross-fade() function. The former is a shorthand for line-grid-mode and line-grid-progression defined in the CSS Text Module, whereas the latter allows cross fading images and is defined in CSS Image Values Level 4.
Other changes which occurred last week:
Accessibility of the omnibox in Chromium has been vastly improved.
With 974 changes to Chromium’s repository, and 637 at WebKit’s, last week totaled up at 1,611 commits. Highlights are the new Chromium version, work on the Mouse Locking API and more work on Regions.
Chromium has reached version 17. The number, which also happens to be a repunit prime when written in base-16, supersedes the now branched Chrome 16. There are about 5,500 Chromium revisions going in the 16th major.
Vincent Scheibb has been working on a Mouse Locking API, the back-end for the settings of which landed in Chromium last week. Meanwhile, the WebKit side of the implementation is also starting, with the ability to toggle the feature either at compile or run-time.
As for specification support, the -webkit-from-flow value for the content property has been changed into its own property: -webkit-from-flow. Furthermore, the @-webkit-region at-rule can now be parsed, support for XPath is now enabled for all ports and the new Flexible Box Module implementation can now handle column flows.
Rendering of certain column-rule styles in vertical writing modes has been fixed, the ArrayBuffer object now supports the slice method, IDL files for the <track>-element have been added and content can now be clipped to variable width regions. Column rules will now be positioned correctly in vertical layouts when horizontal borders or paddings apply. Twopatches have been committed in relation to the new Mutation Observers API as well.
Last week introduced another 1,540 changes in the WebKit and Chromium repositories, which beats the previous record of 1,515 commits. Highlights include a branch for the Web Component Model, first steps in WebKit’s Microdata implementation and searching through multiple scripts in Web Inspector.
The Web Component Model has received its own branch at WebKit, allowing initial work to start. The Component Model provides programmatic ways to ways to build components, utilizing features such as the Shadow DOM, templates and the ability to create your own elements. It layers a declarative form of the same capabilities on this infrastructure, making it available to most HTML developers. See Alex Russell’s slides for more information.
A number of updates were done to Chromium’ Extension APIs. The Permission (docs) and Panel (docs) APIs have been moved out of experimental, whereas support for a new experimental Clipboard API has been added, which will grant extensions access to the system’s clipboard. Finally, the onAuthRequired callback in the webRequest API can now provide credentials when needed.
Within Web Inspector, support was added for an advanced search feature in the Scripts Panel that allows you to search through multiple scripts at the same time. Back-end work was done in preparation of supporting the ability to debug shared work initialization, and the ability to look up and explore an object from an heap profile was added.
As for specification support, the first patch for implementing HTML5 Microdata has landed, namely the getItems() method. For CSS Regions support, the content-order CSS property has been removed, flowhas been renamed to flow-into and positioned blocks now work with variable width regions.
Robert Hogan has landed threemorepatches fixing tests from the CSS 2.1 test-suite, the event.layerX and .layerY properties have been removed, the :checked pseudo-element selector now matches a selected option and right-margins will be taken into account for vertical writing modes. Finally, the new CSS3 Flexbox implementation now supports flex-align for cross axis alignment in flex-flow: row containers.
Other changes which occurred last week:
The Web Socket implementation has been updated to hybi-17, another breaking change.
Due to the absence of last week’s update as I was having a vacation, this article covers the past two weeks. In total, 1,118 commits happened at WebKit and 1,743 at Chromium, totaling up to 2,861 changes.
Last week, an extension has been released which implements Remote Desktop support to Chromium. Previously known as Chromoting, the extension allows you to remotely see and control any computer on any platform.
Web Inspector is still gearing up to support source mapping for languages such as CoffeeScript. Highlighting inline elements now differentiates between paddings, borders and margins and the heap snapshot color legend will pop-up again. Furthermore, manymorefileshavebeen added to the script compilation.
Firstly, WebKit’s implementation of the HTML5 <track> element has finally matured enoughto be exposed to web authors without custom builds. By supplying the --enable-video-trackcommand line switch to any recent Chromium build, all available elements, attributes and properties will be exposed to your scripts. While the implementation is still incomplete, it’s definitely one to play around with.
A lot of work has been done in implementing CSS Regions in WebKit. The majority of overflow behavior has been implemented now, covering clamping a region’s descendants to their containing region, correct box painting of overflowed content into regions and proper behavior for the hidden, auto, scroll and visible values for the overflow property. Block splitting for regions with variable widths has been implemented, positioned objects will now use the first region as their initial containing block and the region-overflow CSS property and outlines are now supported.
Accessibility-wise, the new HTML5 section elements now map to the appropriate ARIA roles. Following this change, screen readers can actually understand your newer HTML5 code.
Other changes which occurred in the past two weeks:
Improved support for ARIA live regions and various form elements has been implemented for Mac.
Low-latency audio has been enabled by default for all platforms on Chromium.
The high-contrast mode for visually impaired users is now available for the Profile menu.
Tracking tasks may now be done via the new about:tracking page.
Code for compact navigation has been removed from Chromium; the experiment ended.
Remind me not to skip next week, this was quite a write-up. More personally, thanks to all the awesome Fronteers 2011 attendees, speakers and organizers! I had a great time and the conference was a great success 🙂
Last week, 539 changes landed in WebKit’s repository and 824 landed in Chromium’s, totaling up to 1,363 changes. Highlights include start of the CSS Filter implementation and lots of removed code within WebKit.
The Extension Settings API has been implemented for Chromium! This new API will allow you to specify settings for your extensions which will then be synchronized to the user’s Google Account, similar to your bookmarks.
Google Chrome Frame has been updated to no longer show a security prompt after it has been updated without re-starting Internet Explorer. This improves the user-experience for those stuck to IE quite significantly.
For those using Web Inspector on Windows, saving the timeline data is now working again. Callbacks originating from requestAnimationFrame will show up in the timeline panel, and the Metrics sidebar pane for the Elements panel will now be drawn at all times. Outlines have been removed from this pane as well, considering they’re not part of the box region.
Two more tests from the CSS 2.1 test-suite are now passing, getting a non-premultiplied image from a WebGL object will now yield the expected result and positioning issues with :before and :after pseudo-selectors used with tables have been fixed. Finally, Apple finally implemented Function.prototype.bind for their JavaScript engine, and also aligned the String.prototype.split implementation with ES5!
As for new features, Dean Jackson announced to startimplementing the CSS Filter Effects, an effort led by the SVG and CSS Working Groups, enabling effects such as blur and drop shadows to occur on a page. Besides the implementation itself, investigation will be done as to enabling the effects to be animated and to be accelerated.
Other changes from last week include:
The chrome://settings/extensions page has now officially taken over from chrome://extensions.
The Console Extension API for the Developer Tools has now been exposed to extensions.
WebKit’s repository received 460 commits during last week, while Chromium’s repository received 939, totaling up to 1,399 changes in a single week. Highlights include progress on the Download API, layers being clipped to border-radius and a completely implemented border-image.
Implementation of the download extension API in Chromium is continuing at a steady pace. Last week support was added for the onCreate and onErased callbacks, together with an implementation of the download() method. With this, the most basic behavior should be functioning.
As for specification support, the PeerConnection constructor has been renamed to the prefixed webkitPeerConnection, indicating that it may get enabled soon. Apple’s experimenting with removing the ability to call most collections, ruby text won’t overhang more than half the width of the neighboring text, the flex-align values have been renamed to match the specification and regions no longer slice line box render.
Work is continuing to support event constructors in WebKit. During last week, patches landed to support constructing ProgressEvent, ErrorEvent and HashChangeEvent, among various others for both V8 and JSC. WebKit’s hyphenation won’t wrap anymore between hyphen-minus and numeric characters, and changing the document.title variable will now affect the contents of the title element in XHTML documents.
With 903 commits to Chromium and 438 commits to WebKit, a combined 1,341 changes landed to both repositories during the last week. Highlights include revision 100,000, all separate border-image properties and isolated bidi.
Starting last Friday, Chromium’s version number is equal to the number of ounces in an avoirdupois pound. Meanwhile, Kazuhiro Inaba landed revision number 100,000, beating five other people who accidentally committed right around that time as well. On to revision number 217!
A new user interface is being implemented in Chromium for errors and warnings. The wrench menu badge and icon were added last week, shortly followed by bubble views for Mac, Views and GTK. The bubble will initially be used for displaying synchronization errors, but may later on contain other messages as well.
Within Web Inspector, pressing F5 on non-Mac platforms will refresh the page again as expected. Pop-overs will be disabled when a mouse button is pressed, suggestions in the Style sidebar pane can now be tabbed through infinitely and live editing for JavaScript and CSS has been made more discoverable. Finally, Chrome’s extension API for accessing the resources has been renamed from devtools.resources to devtools.network and the console API has been exposed.
As for specification related updates, the HTMLSpanElement object has been added and the HTMLBlockquoteElement has been removed. Change events for numeric input fields will be fired when the user reverts a script-made change, support for the parting the scoped attribute has been added, in preparation of supporting scoped stylesheets and Eric Seidel finalized support for the unicode-bidi: isolate CSS property, together with the new <bdi> HTML element.
Three new CSS properties were added last week. Firstly, Dave Hyatt finalized support for the separate border-image properties by landing patches for border-image-width and border-image-outset, again with their masking equivalents. Dan Bernstein landed support for the hyphenate-limit-lines property, even though Safari is still the only port supporting hyphenation.
Other changes which occurred last week:
Support for the JavaScript Full Screen API has been enabled by default in Chrome 15.
Closing full screen mode on Mac OS X can now be done by pressing <apple>+<shift>+<f>.
The Media Source API within WebKit can now be disabled or enabled during runtime as well.
Support for drag and drop has been added to bookmarks on the new New Tab Page.
Enterprises deploying Chrome with configuration policies can now have black and white-lists for sites.
With 563 commits at WebKit and 854 at Chromium, totalling up to 1,407 changes, it has been a busy week again. Highlights include addition of the Media Source API and support for binary Web Socket messages.
Dominic Mazzoni landed quite some accessibility improvements in Chromium for Windows. Dozens of roles and states have been corrected for a variety of elements, support for tables featuring row and column spans has been improved, and support for range inputs and live regions has been added. Finally, an onVolumeChange event has been added to the Accessibility Extension API. Mac work will follow soon.
Network related error messages in Web Inspector’s console will now link to the respective request in the Network panel. Furthermore, the window won’t grow anymore on every close-open cycle.
As for improved support for specifications, Chris Marrin landed support for requestAnimationFrame in the Mac. Text within a <dfn> element will now be italic, the WebVTT cue text parsing rules have been implemented, together with DOM construction and six new non-prefixed protocols are now supported by registerProtocolHandler. Top margins for table captions will now be respected, media elements have been taught the muted attribute, border attributes with percent values now work on images and column breaks are now more reliable with large line heights.
For folks using Web Sockets, WebKit now supports both receiving binary messages (as Blobs and ArrayBuffers) and sending binary messages (also as Blobs and ArrayBuffers). This is a huge step forward in supporting the new protocol. Meanwhile, Aaron Colwell implemented the Media Source API within WebKit, making it possible to dynamically append data to video playback.