Archive for July, 2013

Faster querySelector(All)s, PNaCL and a new Popup Blocker

Published on in Blink, Google Chrome, Last Week, tech. Version: Chrome 30

Last week yielded 1,798 commits made by 419 authors in the Blink, Chromium, Skia and v8 repositories. This article discusses them, up to revision 214188.

Takashi landed a fast path for querySelector(All) containing a single ID, class or tag selector, yielding impressive performance improvements (up to 9480%!). Meanwhile, Alpha improved decoding time of gif images by 12%.

Chrome for Android has gained support for MSE and ClearKey-based EME, which may or may not be available depending on the device’s configuration. Anti-aliasing has also been disabled for the Chrome 29 release.

The API exposed by the experimental IME API has been aligned with the latest Editor’s Draft. document.implementation.hasFeature() will now return true for any non-SVG feature and the equally exotic compareDocumentPosition() method also had it’s behavior aligned with the spec. Blink has also switched to using v8’s implementation of typed arrays rather than its own.

The proprietary -webkit-svg-shadow CSS property has been removed. Height calculations for tables which use spanning rows have been improved and parsing of the “column: auto <length>” syntax for the multi-column CSS properties has been implemented.

A new experimental Web Platform feature (available in about:flags) are unprefixed Shadow DOM APIs. Exciting!

Other changes which occurred last week:

  • Support for PNaCl has been enabled by default for all desktop versions of Chrome 30.
  • The in-development Chrome-based Android WebView will have “Mobile” in its user agent for phones.
  • Jochen improved Chrome’s popup blocker to not load popups at all, rather than just hiding them.
  • The HTML Imports feature will be respecting the set Content-Security-Policies.
  • Various improvements and additions were made to the chrome.downloads extension API.
  • Chrome’s “You are offline” page will now display a fancy dinosaur!

There won’t be an update next week because I’ll be on holiday in New York :-). Thanks for reading!

Read more (3 comments) »

Remoting for Android, WeakSets, Numeric Literals and less apple-touch-icon.png requests

Published on in Blink, Google Chrome, Last Week, tech. Version: Chrome 30

Last week yielded 1,880 revisions created by 453 authors, spread over the Chromium, Blink, Skia and v8 repositories. This post discusses them, up to revision 212993.

After introducing the very first beginnings of an Android application for Remoting, Solomon also made it possible to view, pan and zoom around whilst viewing a desktop’s screen on an Android device. Even though basic input support is still under review, this seems to be gearing up towards becoming a very interesting project.

Erik introduced two new ECMAScript 6 features in v8 last week: the WeakSet object, which holds weak references to the objects within the set, and support for binary and octal literals such as 0b10101 and 0o567.

The atob() and btoa() methods are now being exposed to Web Workers and their argument isn’t optional anymore. The onerror callback in for workers will now receive the column at which it occurred as a parameter, a partial implementation of the CSSOM part of CSS Variables landed and basic support for SHA-1 is now available as part of the new Web Crypto implementation.

The text-decoration-{color, style, text} CSS properties will now be supported within ::cue rules for media subtitles. “extend-to-zoom” became a supported viewport descriptor, CSS @keyframes rules can now be scoped and SVG animations will be paused when the document gets detached.

Other changes which occurred last week:

Thanks for reading!

Read more (no comments) »

Fractional spacings, MouseEnter and MouseLeave and Promises

Published on in Blink, Google Chrome, Last Week, tech. Version: Chrome 30

Last week, a total of 1,861 changes landed in the Chromium, Blink, Skia and v8 repositories, made by 435 different authors. This update talks about commits up until Chromium r211631.

Fractional CSS letter-spacing and word-spacing values are now allowed, also enabling much smoother transitions for these properties. Chromium Mobile will no longer fire requests for apple-touch-icon(-precomposed).png if there is no corresponding <link> element present. When Content Security Policy blocks a call to eval(), an error report will now be generated, and such reports will now be served with application/csp-report as the content type.

Blink now supports the “mouseenter” and “mouseleave” events for capturing whether a mouse is on an element. Raphael updated Blink’s implementation of the “capture” attribute, which has been changed to be a boolean attribute. Work on HTML imports is continuing as well, which is a feature part of Web Components. Android’s Media Source Extensions implementation is booking good progress as well, now passing all the layout tests.

The Promise implementation in Blink is seeing good progress with six new methods having been implemented and the feature now being available behind the Experimental Web Platform Features flag. The set() method of a typed array won’t throw on invalid arguments anymore whereas DataView accessors with no arguments will start throwing exceptions. Three iterator methods were added to the Array prototype: Array.prototype.{values, keys, entries}.

Other changes which occurred last week:

  • Mike renamed “Experimental WebKit Features” to “Experimental Web Platform Features”.
  • The “devicemotion” event can now be enabled in about:flags on Chrome for Android.
  • An entry in about:flags is now available to debug pages in Chrome for Android without needing adb!
  • A new double-tab-drag-zone gesture has been introduced to Chrome on Android.
  • While there was a performance regression, work in enabling a Direct3D 11 backend is underway.
  • Chrome’s virtual keyboard implementation now supports Dvorak as a new layout.
  • A generic UndoManager was implemented which will power undo and redo for bookmark editing.
  • Skia is implementing a PDF parser. Sounds fancy!

Thanks for reading!

Read more (no comments) »

Last Week in Blink: Promises, ALPN support and font mime-types

Published on in Blink, Google Chrome, Last Week, tech. Version: Chrome 30

A wild Last Week post appears! That’s been a while. This post describes the 1,326 commits which landed in the Chromium, Blink and v8 repositories during the 4th of July US holiday week, until Chromium r210375.

Chrome DevTools windows won’t disappear anymore when an interstitial page is being displayed, for example warnings about self-signed certificates for developer environments. Six more mime-types will now be recognized as valid font mime-types, decreasing the number console warnings for invalid mime-types used for fonts. Development on CodeMirror as a code editor continues, adding syntax highlighting for six more languages.

Raphael is working on re-implementing the “capture” attribute as a boolean, matching the specification. Textual input and textarea elements now recognize the “inputmode” attribute, indicating what kind of characters the field is expecting (for example, alphabet or kana). The <dialog> element now supports the ::backdrop pseudo-element, support for border-image-repeat: round was added and filters will now be applied whilst honoring the effective zoom level. Finally, “compositionstart” events now include the text which is being replaced.

Dominic has been working on Blink’s custom element implementation, which now triggers events when an element enters or leaves a document, or encounters an attribute change. Blink now uses v8’s ArrayBuffer implementation instead of its own, and saw implementations of Promise.prototype.{catch, then}. The AudioBufferSourceNode and OscillatorNodes from the Web Audio API now support the “onended” event.

Other changes which were made last week:

Interesting topics on blink-dev include an Intent to Implement for unregisterProtocolHandler() and isProtocolHandlerRegistered(), an Intent to Ship for the “mouseenter” and “mouseleave” events, an announcement for Opera 15 and a lengthy discussion on supporting animated WebP images. Thanks for reading!

Read more (3 comments) »