Archive for November, 2011

GamePad API, revision 10,000 and WebGL for WebKitGTK

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

Thanksgiving made last week a short week for people living in the United States, and as such only 1,079 changes landed to the Chromium and WebKit repositories. Highlights include a number of extension API updates, work on supporting game controllers and WebGL for the WebKitGTK port.

Quite some housekeeping has been done in Chromium’s extension APIs: the clipboard API has been removed in favor of document.execCommand, the Settings API has been renamed to the Storage API and notifications were added for screen wake-ups and unlocks. Also new is the ability to change a window’s state.

In light of the recent commit milestones Chromium and WebKit hit, it’s noteworthy to add that v8 reached revision 10,000 last week. Performance of switches using string clauses has been improved and preliminary detection for ES.next’s extended mode has been added, which basically reflects strict mode with some added functionality.

Another two CSS 2.1 conformance errors were fixed, the CSS Exclusions implementation has been aligned with the specification and the wrap property will now be parsed. A crash with filters was fixed, and the first step towards being able to use CSS Transforms on SVG elements also landed last week.

WebKit’s side of supporting game controllers was landed by Scott Graham, together with the first part of the Chromium-side implementation. It may be tested using the –enable-gamepad command line flag, or via about:flags. The addCue and removeCue methods for subtitles are now supported, and the HTML5 dirname and Microdata properties attributes are now supported.

Other changes which occurred last week:

And that’s it again. Interesting changes for the upcoming week include the NamedFlow JavaScript interface for CSS Regions and stack traces for cross-origin access errors within Web Inspector.

Read more (3 comments) »

Cross Fading, CSS Flexible Box, Grid Layout, Filters and Meta Referrer

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

Last week was the busiest week so far for both projects, totaling up to 1,745 changes — 794 for WebKit, and 951 for Chromium. Highlights include CSS Cross Fading, Flexible Box, Filters and <meta name=referrer>.

Within Chromium, the new History UI has been launched and can be seen on chrome://history. Content Security Policy will be enabled for all extensions using a (newly introduced) manifest version of two or higher and improved download protection has now been enabled by default, assuming you have Safe Browsing enabled.

Right clicking on function values in Web Inspector will now give you the ability to browse to it’s definition. The font property in the styles pane will now show up as a proper shorthand property, selected items in context menus have been given a slight gradient and messages from the front-end to the back-end are now asynchronous.

Timothy Horton landed support for the CSS4 Images cross-fade() function. Though not fully implemented yet, it can be used as a value for any property that expects an image, such as background-image, and will render a cross faded combination of the two given images or gradients. Examples working in nightlies can be found here.

The new CSS3 Flexible Box implementation in WebKit has been enabled by default. While new features and enhancements are still incoming, it is a lot more performant and aligns WebKit better with the spec. Ojan, Tony and Julien have started working on implementing CSS Grid Layout, some patches for which have already landed.

Another new feature which landed today is support for <meta name=”referrer”>. By specifying the referrer policy in the content attribute, which can be one of never (don’t include a referrer header on navigation), always (which includes cross-protocol requests), origin (just send the page’s origin) and default, you can anonymize any request.

As for improved specification support, another CSS 2.1 test was fixed last week. The document.width and document.height properties have been removed, as has the initProgressEvent method, and access keys now work on all elements. JavaScriptCore’s implementation of Error.prototype.toString is now ES5 conformant, adding invalid track formats will throw an exception and the report-only mode for Content Security Policy has been fixed.

Most CSS Filters now work in WebKit nightlies, which includes grayscale, serpia, invert, hue rotating, saturating, opacity, gamma, drop shadow and blurring effects. Meanwhile, computed styles for CSS Shaders have been implemented as well. For CSS Exclusions, the wrap-margin, wrap-padding, wrap-flow and wrap-through properties are now being parsed, indicating good progress.

Other changes which occurred last week:

Work to keep an eye out for this week are related to Web Intents. That’ll be all!

Read more (7 comments) »

CSS Hue Rotation, r100,000, Changing the UA and Suggestions

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

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.

A large number of changes by Nico Weber removed a significant amount of static initializers and exit-time destructors, which will improve Chromium’s overall performance during start-up and shut-down.

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.

The sandbox attribute for iframes won’t accept vertical tabs as separators anymore, the IndexedDB implementation gained support for compound keys and the textTracks attribute for media elements has been added, supposing your port of choice enables subtitles. The importNode will now do a deep copy by default, zooming of SVG images in <object> elements has stabilized and IDL files have landed describing the Mouse Lock API.

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 :).

Other changes which occurred last week:

And that’ll be all again!

Read more (5 comments) »

Non-economic Printing, Parallel GC Tracing and CSS Shaders

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

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.

For subtitles, a TrackEvent was added, as were load notifications. WebKit now supports the -webkit-print-color-adjust property which allows you to toggle printing of background images and colors, and Fady Samuel landed the parsing stage of a new -webkit-aspect-ratio property, specified on Tab’s blog.

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 number of bugs has already been created, which are being worked on together by Adobe and Apple engineers.

Other changes which occurred last week:

And that’ll be all again :)

Read more (no comments) »