Archive for March, 2011

Chrome’s new keyboard, the CSS4 matches()-selector and line-box-contain

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

With 1,116 commits, 522 for WebKit and 594 for Chromium, there have been quite a lot of changes again. More progress has been made for Chromium OS’ touch support, a new CSS selector has been implemented, as well as the line-box-contain CSS property.

Chromium gained a keyboard, support for locking and unlocking your sim-card and support for touch-capable devices has been added. The new tab page has been updated and large throbbers have been added for touch UIs as well, albeit not the final version.

Dave Hyatt proposed and implemented a new CSS property for WebKit: line-box-contain. The property addresses cases in which text on the first line will be shown in a larger size than the rest of the line, causing the line-height to change. The prefixed version is already available in WebKit and Chromium nightlies!

As for other specification-related changes, more work has been done to improve percentage rounding. XMLHttpRequest will now properly set the referrer when Web Workers are being used and some more CSS 2.1 counter-related tests will now pass. The onchange-event will not fire anymore when a text field’s contents have not changed.

Mozilla’s any-selector proposal has been implemented for WebKit as -webkit-any(). Following brief discussion, both :any as :not will now accept any selector instead of just simple ones. The Editor’s Draft of CSS Selectors Level 4 has been updated to include “:matches“, idential to :any, just with another name.

Other changes which occurred last week:

  • A nice favicon has been added for the print preview page.
  • An initial implementation of 802.1x, Extensible Authentication Protocol, landed for Chromium OS.
  • A high-quality band-limited audio resampling algorithm has landed for the Web Audio API.
  • The first two patches for WebKit’s Media Stream API implementation landed!
  • The first bits for CSS calc() support in WebKit also landed.
  • Windows users will be redirected to a better Java download-page.
  • No more cognito-mode in the Proxy Configuration example extension.
  • Performance of processing floated objects has been improved a lot.
  • An implementation for asynchronous communication between a Pepper Plugin and JavaScript landed.
  • HTTP throttling may now be disabled via a new tab on the about:net-internals page.
  • A raw video pipeline has been added for the <video> element, with a specialized protocol: media://.
  • A simplified normal flow layout path optimization for overflow recomputation and for positioned objects inside relatively positioned containers has been added.
  • WebGL will now always be exposed to the DOM, even if it has been disabled.
  • Google Gears has now been removed from WebKit as well, of course in favor of HTML5.
  • Web Inspector will now show the correct transfer size for compressed resources.
  • Chrome’s license caught up with the new year.

And that’ll be all again 🙂

Read more (4 comments) »

Chromium OS tablet, GPU accelerated shadows and the new, simpler logo

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

Highlights among this week’s 1,291 commits are quite some Chrome OS touch-related changes, support for relatively positioned table-cells and a wider experiment for background pre-rendering in Chromium.

The Chrome OS team seems to be gearing up for a tablet release. Following some usability-related improvements for touch-based devices, the user-agent string will now indicate the usage of a touch-only device. Furthermore, a brand new New Tab Page landed which provides an iPad-like overview of the installed applications. For all those who want to get a sneak previous of the page, but don’t own a Chrome OS touch-device yet, enable the overview pagina using the “Experimental new tab page” setting on about:flags.

In light of improving specification-compliance, WebKit’s SVG implementation received a rather large commit which implements proper bi-directionality support for SVG Text. Rounding for non-integral percentages has been fixed and exporting WebGL-canvasses to an image, texture or Data URL will now honor the non-premultiplied-alpha attribute.

Relatively positioned table-cells have gained support from the engine and the maxlength attribute for textarea-elements will now take newlines into account. Finally, shadows are now supported for a canvas’ drawImage method and support for GPU-accelerated shadows has been added.

Other changes which occurred in the last week:

  • The prerendering experiment now applies to 30% of the Canary users.
  • Auto-filled form elements will now also force a specific text-color, ensuring visibility.
  • Multiple tab-selection has been enabled by default for Windows systems!
  • Chromium’s libwebp has been updated to the latest version.
  • The brightness and contrast for accelerated video’s in Chromium now meets BT.601.
  • Read-only form fields won’t be automatically filled with information anymore.
  • An API for getting the installed font families has been added to PPAPI, albeit unimplemented.
  • Images used by Web Inspector have been compressed, saving about 120 KB.
  • The default value for window.navigator.vendor has been updated to “Apple Inc.”
  • Various security-restrictions for entering full-screen mode have been implemented.
  • Timer-based events may now inherit the user gesture causing them to be set.
  • Chromium’s UI on Linux won’t paint anymore when the window isn’t visible.
  • All GPU-related features will be disabled for Linux users using either ATI or Intel cards.
  • Prefetches within a prerendered page will be disabled, due to infinite loops.
  • A quota database has been added to Chromium, for per-origin storage restraints.
  • Videos displayed on cnn.com are now a little bit more reliable.
  • Pre-rendering within Chromium will be throttled to once per 500 ms.
  • Syntax for the Content-Security-Policy header has been updated per a spec change.
  • Some great early results for the unified build-system being created for WebKit.
  • Accelerated compositing may now be forced through the “–force-compositing-mode” flag.
  • And of course some changes by the Web Inspector team.

And that’d be all again. You may be interested in following WebKit bug 56727, which talks about implementing the experimental CSS Mixins feature.

Read more (11 comments) »

Multiple-tab selection, tab title elision, animations API and a new Chromium logo

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

Another week passed, bringing a total of 1,350 change-sets to Chromium (796 commits) and WebKit (554 commits). Highlights include a new logo for Chromium, selecting multiple tabs, an Animation API, CSS’ new text-orientation property and an improved pale-violet-red color.

Scott Violet landed the first functional part of a new feature: multiple tab selection. Instead of being able to select just one tab, multiple tabs can be selected by using <shift>+click or <ctrl>+click. While the feature still needs work, including proper rendering of multiple tabs and a better dragging thumbnail, it’s already available for you to check out in nightlies: just launch Chromium with “–enable-multi-tab-selection“.

Another change for Chromium’s tab bar is that adjoined tabs sharing a common title prefix, such as “Chromium Blog”, will have their titles elided. This means that the shown title will be more relevant and that it will be easier to find the tab you’re looking for. Right now it’s only available for Chromium builds on Windows, but support for the other platforms is in the works.

Dean Jackson landed the first part of an API for managing animations which apply to a certain element. The API is available in both Chromium and WebKit nightlies and adds a new method to DOM HTML Elements: webkitGetAnimations. It returns an AnimationList which contains the active animations, as Animation objects. As is visible here, it provides access to most common settings for CSS-based animations. While the play() and pause() methods are being exposed, they’ll start functioning after an upcoming patch lands.

As for new features, an initial part of HTML5’s DataTransferItem and DataTransferItems interfaces landed, together with a partial implementation for Chromium. Dave Hyatt implemented the text-orientation property from the CSS3 Writing Modes module, although it hasn’t been implemented for Windows yet. Luiz Agostini landed the rendering part for the <details> and <summary> implementations.

In the effort to improve standard compliance, several commits addressed failures in the CSS 2.1 test-suite. Several issues with the ex unit have been solved, parsing for background position components has been rewritten and the ::before and ::after pseudo-elements may now be used on table rows. Furthermore, the values of the named “palevioletred” and “mediumpurple” colors have been fixed.

One not so significant, yet certainly interesting change, is the inclusion of the jQuery test-suite in the WebKit tree. Widely used as the library is, it’s a good thing to see that both parties will test on each other’s software to ensure full compatibility.

Other changes which occurred last week:

  • Chromium received a new logo, quite different from the previous one.
  • A minor change in preparation of Chromium’s registerProtocolHandler implementation.
  • Moving nodes across different documents in the DOM is now possible for certain methods.
  • JavaScriptCore fixed three issues with the RegExp prototype, improving conformance with ES5.
  • Through a minor Accept-header change, WebKit now properly indicates to prefer HTML over XML.
  • Safari on Mac OS X Lion will be able to use the AV Foundation framework for media playback.
  • Soft hyphens will now always be correctly rendered when a linebreak occurs.
  • A lookup-based approach for applying CSS properties has been introduced.
  • Warnings and errors for invalid viewport values are accurate again.
  • Following the announcement, Gears has been removed from the codebase. Thanks, @temp_01!
  • WebKit’s HTML parser will now yield for layout before running scripts, improving first-paint time.
  • Web Inspectors breakpoint sidebar-pane has been re-implemented in a more common format.
  • The prerender experiment will now be enabled for about 5% of the Chromium users.
  • Welcoming Google Chrome 12. Too bad about the same message was used for Chrome 11!
  • Search-box extensions may now choose how auto-complete should show: normal, delayed or never.
  • UDP sockets have been implemented for Windows, presumably for Chromium’s P2P API.
  • Chrome will be removing all languages except for English, with Scott Hess liaising for proper user support.

All the best to the people in Japan, I truly hope things will start getting better as soon as possible. Good luck!

Read more (15 comments) »

CSS Quotes, mock-ups of the HTML5 date-picker and the P2P API

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

With 617 commits at the WebKit side and 808 for Chromium, last week was another busy week. Highlights are that WebKit finally implements CSS 2.1 quotes and lots of work on several upcoming features, such as MHTML.

One feature a lot of people are looking out for is the inclusion of a date-picker in WebKit. Tamura Kent started implementing a calendar for several date-related input types exactly a month ago, which has now evolved in a graphical and usable date picker.

While the implementation is by no means complete, it’s a good thing that work is being done to finish support for Web Forms. Keep an eye out on bug 53961 to stay up-to-date.

Chromium users may have seen a new option appear on their about:flags page: “P2P API”. While not a lot is known about the team’s plans, it’s safe to assume that implementation of the HTML5 peer-to-peer connection API has been started, together with an interface for Pepper. So far, an implementation for Mac and Linux was added, a dispatcher for the renderer and initial work on the internal implementation.

The Web Inspector team improved performance of DOM search as it was extremely slow for GMail. The summary bar in the network panel’s item view won’t overlap the contents anymore. Furthermore, the fourth part of Detailed Heap Snapshots landed in WebKit as well, which implements displaying of different snapshot projections. While they’re not available yet, there are some screenshots available.

As for standard-related updates, Dave Hyatt made sure that positioned elements work with vertical text. Ruby text will now be expanded when it’s shorter than its base and the document.open implementation has been updated per the HTML5 specification.

Carol Szabo implemented full support for quotes in WebKit, following the CSS 2.1 specification. The -webkit-hyphenate-limit-{before,after} CSS properties have been added. Safari’s JavaScriptCore JavaScript Engine now implements the seal/freeze/preventExtensions methods for normal object types, except for arrays.

Other changes which occured last week include:

  • The -webkit-hyphenate-locale CSS property has been renamed to -webkit-locale.
  • Layout performance for pages with a lot of floating objects has been improved majorly.
  • Numeric input fields which have an initial value may be cleared again, and accept localized values.
  • Through an ICU update, Chrome now respects the new sorting rules for the French language.
  • WebKit’s GTK port now supports multiple threads for JavaScriptCore due to this change.
  • Handling of the currentColor color for SVG now follows the specification.
  • Support for handling quoted-printable strings has been added, in preparation of MHTML support.
  • CSS Outlines will now be drawn for table and table-cell elements.
  • The WebKit2 API now supports printing pages on Windows.
  • A redundant “Windows; ” has been dropped from the default User Agent string on Windows.
  • The fast-path for rgba() parsing now properly clamps out-of-range alpha values.
  • Another site for the hardcoded HSTS list; shouldn’t we try to avoid doing this?
  • Support for the WebKit Full-Screen API has been added to Chromium, hidden behind a flag.
  • The speech bubble volume indicator has been improved with an indicator for background noise.
  • Another flag has been added to trigger the multi-profile feature, no functionality yet either.
  • The grab and grabbing CSS cursors have been implemented for Mac/GTK.
  • Chromium’s GPU Process on Windows will now be sandboxed!
  • Speech input fields (<input x-webkit-speech>) have been enabled by default.
  • Multisampling will be disabled for all ATI/AMD GPU’s when using Mac OS X, due to buggy drivers.
  • The filesystem: URL scheme has been enabled by default.

And that’s it again. If you want to dig around in the updates from two weeks ago, check out all WebKit and Chromium commits. Upcoming work to keep an eye out for are the visibility API and an implementation of the text-orientation CSS property. Finally: Thanks, guys! 🙂

Read more (4 comments) »