Google Chrome 14, improved text scaling and disabled features for Mac users

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

Although I’m publishing this a day later than usual, there still are 1,122 commits containing interesting changes. Highlights include changes to SVG’s text-scaling, alignment of the Page Visibility API implementation with the spec and Chromium’s new version number: 14.

One of the more obvious changes is that Chromium has reached version number 14. As Chrome’s Product Manager Anthony Laforge is keen to remark: this equals the number of legs a woodlouse has. For the changes which you can expect to be included with Google Chrome 13, check out these articles.

SVG’s text scaling has been improved for texts optimized with geometric precision, no longer causing a stair-step pattern to be visible. Setting the document.body property is now allowed in certain cases and the values for check and radioboxes have been updated to match other browsers.

Following changes in the Page Visibility API’s specification, WebKit has modified the name of the visibilitystatechange event to visibilitychange. Furthermore, the isVisible property on document has been renamed to hidden. Mind that these are still vendor prefixed as well.

Other changes which occurred last week:

  • Chromium’s protocol validation in WebKit now also accepts plusses as a valid character.
  • Frame flattening has been fixed for nested frames within WebKit.
  • Some more progress has been made in supporting websites as MHTML archives.
  • Seeking for very minor offsets in media playback has been improved for Chromium.
  • Vertical scrolling has been implemented for Chromium’s new New Tab Page.
  • Opening pages which use custom protocols via the command line now also works as expected.
  • In-browser thumbnailing has been enabled for Linux and Mac OS X.
  • Following discussion on how Mac OS X users expect the Print Preview feature within Chrome
    to work, it has been disabled for version 13.
  • More bad news for Mac OS X users: Accelerated 2D Canvas has been disabled altogether.
  • The SSL FalseStart field research has finished, as enough testing has been done.
  • When GPU vertical sync is disabled, requestAnimationFrame will now run at top-speed.
  • Tabs on Chromium OS will now also fade-out when the text doesn’t fit in the tab.
  • The “save” button has been renamed to “keep” in dialogs telling about dangerous downloads.
  • Parsing for MPEG4 metadata has been added for the File Browser. Interesting.

While I’m going to do the best I can at publishing articles in the near future, don’t count on (larger) updates in the following three weeks. Since I’ll be moving to London, things are getting rather busy right now. Be sure to keep an eye out for updates on my Twitter account in the meantime!

Read more (7 comments) »

Your own protocols, Page Visibility API and the GPU-accelerated 2D canvas

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

A total of 1,515 commits, 627 for WebKit and 888 for Chromium (made by 220 authors!), brought a large number of interesting changes again this week. Highlights include new features such as the Page Visibility API and the possibility of registering your own protocol.

One well anticipated feature of HTML5 is the possibility to a custom protocol for your site. Starting at revision 86944, registerProtocolHandler is now enabled for all versions of Chromium. It features a neat settings page and allows the browser to become the default handler for arbitrary protocols on Mac OS X and Windows. However, no peter:// for me: the recently added whitelist requires custom protocols to be prefixed with web+.

As for specification related updates, the frequency at which selectstart will be fired has been brought back to just once. The RGBA serialization algorithm has been updated to match the HTML5 specification, just one blur-event will be dispatched when tabbing out with an invalid value and CSS Selector matching has been fixed in regards to attribute selectors. The sniffing mechanism for images has been updated per the latest draft.

There has also been lots of work on implementing new features. Following last month’s v8 change, WebKit now also implements Float64Array‘s for JavaScript. Work on <input type=color> is progressing steadily, the Stream and GeneratedStream classes have been implemented, as have HTML5’s TrackList, MultipleTrackList and ExclusiveTrackList objects. Finally, Yael Aharon implemented the dropzone attribute.

Adam Barth added support for the new crossorigin property on image elements. The attribute, which will eventually also work with video and audio elements, will allow canvasses to properly use remote images if the CORS header allows it, including usage of the getImageData and toDataURL methods. Meanwhile, Jay Civelli added support for reading MHTML files to WebKit. The plan is to allow exporting pages to MHTML archives too.

Other changes which occurred in the last week:

And that’d be all again! If you’re a fan of web conferences, be sure to take a look at this year’s Fronteers! We’ve just announced five more speakers: Divya Manian, Jake Archibald, John Resig, Stephen Hay and, last but not least, Robert Nyman. Only 30 early-bird tickets are still available, so don’t wait too long 😉

Read more (7 comments) »

CurveCP, background event collection and major SVG Filter speed-ups

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

Last week brought a total of 1,228 changes, 529 at WebKit and 699 at Chromium. Highlights include CurveCP, a possible alternative to the TCP transport layer, multi-core SVG Filters and DynamicsCompressorNode.


A private extension API has been added to Chromium adding the capability to communicate with handshake-less TCP service via a proxied Web Socket, such as IRC and SSH. This addresses one of the limitations which were made in favor of security and will, for now, only be available for selected extensions like an SSH client.

Furthermore, an initial implementation of Dan Bernstein’s CurveCP transport layer landed in Chromium. While the plans are still unknown and not everyone is optimistic about the layer itself, CurveCP is similar to TCP but uses high-speed high-security elliptic-curve cryptography to protect every packet against espionage and sabotage.

Web Inspector has been enhanced with the ability to collect background networking events. These are events which occur while the Inspector itself is closed, but will be available when you open it up again. Non-color properties won’t receive a color picker in the Styles pane anymore and incrementing or decrementing very large numeric values in CSS rules no longer results in an invalid declaration.

Now that the ParallelJobs Framework has been available for about a month, work has started to enhance several SVG filters to distribute work over multiple processor cores. The FELighting, FEGaussianBlur and FEConvolveMatrix filters have been updated, yielding performance improvements between 10 and 30 percent.

As for specification-related improvements, HTML5’s numeric input won’t show a zero anymore if the input’s range does not allow the value 0. The region of an area element will be updated when it dynamically has been altered, border-radius properties with negative values will be ignored and document.activeElement will now point to the active iframe element in case content within it has been focused.

Other changes which occurred last week:

  • A new version of Chrome’s client-side phishing model has been rolled out to Chromium.
  • Text-based input elements have been updated to use the Shadow DOM.
  • Work on <input type=color> has begun within WebKit, with various patches up for review.
  • <output>, <meter> and <progress> elements with display: block aren’t tab-focusable anymore.
  • Brent Fulgham and Dirk Pranke are now WebKit Reviewers, congratulations!
  • Support for WebDriver’s alert commands was added to Chromium’s ChromeDriver implementation.
  • A separate link-relation has been added for prerender, to distinguish it from prefetch.
  • The disable-javascript-urls Content-Security-Policy directive has been removed.
  • Some minor progress has been made on updating the Web Socket implementation.
  • Detailed Heap Snapshots in Web Inspector are now enabled by default for Chromium.
  • Two new extension API methods were added to Chromium regarding handwriting functionalities.
  • Support for local stream requests was added to the Media Stream API.
  • Chris Rogers added an implementation for the Web Audio API’s DynamicsCompressorNode.
  • Support for real-time audio threads was added to Chromium, but only implemented for Mac OS X.
  • The event.clientX/clientY properties will now be non-zero when tracking a click on a label.
  • The HTML5 details element will remain enabled for Chromium.
  • Images have been added to Chromium for a new Image Burner user-interface.
  • Support for Motion JPEG has been added to Chrome’s libjpeg-turbo implementation.

And that’ll be all for this week! 🙂

Read more (3 comments) »

Compact Navigation, Print Preview and the CSS3 Grid Layout Module

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

With 484 commits to the WebKit repository and 742 to the Chromium one, totaling up to 1,226 changesets, it has been an average week. This week’s highlights include the Print Preview feature, now available by default, compact navigation and the Page Visibility API.

One well anticipated feature, Print Preview, has now been enabled by default for Google Chrome Builds. The feature generates a PDF file from the opened website and allows you to either save it to a file or send it to a printer, with various options such as orientation and use of colors. Print Preview is not available within Chromium, due to limitations on the used PDF library.

A new type of navigation has been added to Google Chrome, namely Compact Navigation. By making the address bar optional and moving the wrench menu to the title-bar, Chrome’s user interface will now only be 30 pixels in height on Windows. While this would be ideal for pinned tabs and applications, it can cause serious security issues for secured websites as the displayed address is no longer visible.

Shishir Agrawal landed an initial version of the Web Performance’s latest specification: the Page Visibility API. The API allows developers to tune performance of their application based on whether the page (or, more commonly, tab) is visible, similar to how requestAnimationFrame stops working when the tab is hidden. While browsers such as Chrome and Firefox will increase the minimum interval for timers to about a second when a page doesn’t have focus, the API allows for more friendly approaches to be taken by the developer.

As for other specification related updates, the onchange event will now fire for radio-groups when the user changes selection through their keyboard. An issue in handling the currentColor value for SVG elements has been fixed, positioning of validation bubbles on non-text input elements has been corrected, an element’s onclick event won’t fire anymore if it got removed earlier on and the noresize attribute for frames can now be set via JavaScript. Finally, Dave Hyatt seems to start implementing the CSS3 Grid Layout Module!

Other changes which occurred last week:

  • The XSS Auditor doesn’t block all http-equiv meta-elements anymore.
  • The style sidebar in Web Inspector will now be updated based on changes in
    the Resources Panel, including for free-flow text editing.
  • Throttling of the WebGL framerate has been made more accurate.
  • A minor update for the Media Streaming API: exceptions for getUserMedia.
  • Semi-transparent colors for an element’s outlines won’t overlap at the corners anymore.
  • Due to this addition, Chromium will be able to use DNS Prefetching again.
  • The path, build type and more additional information will now be shown in about:version
  • The Remoting host-component has been removed from Chromium, supposedly going to be a plugin.
  • Chromoting seems to have officially been renamed to Remoting now.
  • An option has been added to toggle the availability of background extensions.
  • Panels on Windows can now contain and display (themed) title bars.
  • Pop-ups will now properly be blocked when created in sandboxed iframes.
  • IndexedDB will no longer be visible within sandboxed iframes.
  • Error messages for the Application Cache will now show up in Web Inspector.
  • Following a series of patches, strict PassOwnPtr has now been enabled for Chromium.
  • The headers of an request are now retrievable by the WebRequest API.
  • A context-menu has been added to Chromium OS’ file browser.
  • Function constructors can now be blocked by Content-Security-Policy.
  • Touch Icons have been linked up to the Chromium post, though still no visible usage.

As a special comment, I’d like to thank RIM’s Eli Fidler for the great chats and demonstrating WebKit’s remote debugging capability of the PlayBook. Mostly thanks to Krijn, Peter-Paul and Stephen, I had a great time at Mobilism. If you’re into the mobile web, be sure to attend the event next year!

Read more (18 comments) »

Inspectable Shadow DOM, the file browser and new default avatars

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

Today’s update addresses some of the changes among the 1,280 commits which were made last week. Since I haven’t had any time at all, it’s not as detailed as usual, but contains several highlights. The Shadow DOM is now visible through Web Inspector, quite some polishing is being done on Chrome OS’ file browser and new default avatars for Chrome OS’ landed.

Chrome OS’ file manager has been in development for quite a while now. It’s based on the FileSystem API, features a list of files and folders and a side-panel with additional information. With the final file-type icons now in place and some secret shortcuts, it looks like the feature is coming together nicely. Besides local storage, the manager will support USB drives, memory cards, network storage and possibly digital cameras.

As for WebKit’s specification related changes, fixed text-indents used for input placeholders will now be respected. JavaScript may now be used to set !important CSS rules, the document.innerHTML property has been added and the preload attribute for media elements is now implemented correctly for Safari.

Other things which occurred last week:

  • Support for Core Animation has been added to Chromium’s Cairo-renderer.
  • Accelerated 2D canvasses in Chromium will now use Skia by default.
  • Client-side phishing detection won’t be enabled for stable builds just yet.
  • The skeleton of the Media Stream API within WebKit has been outlined.
  • Drag and drop effects for the Touch UI’s New Tab Page have been improved.
  • An IME UI-related extension API will be implemented (though got reverted).
  • A cross-document DOM binding fuzzer, cross_fuzz, landed to help making Chrome more stable.
  • Chromium on Mac OS X will now use the Garuda and Devanagari fonts to display Thai and Hindi text.
  • Parts three and four of WebKit’s Fullscreen API for Safari on Windows landed, completing it.
  • The default avatars to be used for Chrome OS have landed in the tree. They look awesome!
  • The navigationStart property of the Navigation Timing API will now be available for all request
    types, including cross-origin requests.
  • The Pepper API now works out-of-process in the Windows sandbox.
  • The “Report-only” mode and “disable-javascript-urls” directive for CSP have been implemented.
  • Web Inspector now supports a pane providing access to an element’s Shadow tree.
  • Elements in the Shadow DOM can now use access keys.

And that’ll be all again!

Read more (12 comments) »

Google Canary on Mac OS X, EPUB’s CSS prefix and multithreaded SVG filters

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

With lucky number 13 -Chromium’s current version- now available, version 12 has been branched. Last week’s 1,423 commits bring highlights such as Google Chrome Canary which will be coming to Mac OS X, a new CSS property prefix for the EPUB format and lots of removed code.

While it has not been released yet, Google does seem to be ready to release Google Chrome Canary for Mac OS X systems. The browser cannot be made the default browser through the preferences and the release monitor says that the latest version was released today, using the same revision as Windows’ Canary.

Web Inspector will now show hyperlink auditing requests in the network panel. Copying data from the Resources panel has been made easier, the option “Open link in new tab” has been added to several context menus and it’s now possible to follow retained paths in detailed heap snapshots.

Following discussion on both the mailing list and during the contributor meeting, support for WML (“Wireless Markup Language”) has been removed from WebKit. This was a logical step as only BlackBerry needs to continue to support WML, and are doing so through a proprietary plugin. Microsoft and Opera still support it. Other code removed includes the Image Resizer, support for datagrids and Android’s build system.

As for specification related updates, setting outerHTML on an element will now merge text nodes. The onchange event on text fields has been made more reliable, styling a speech input-button with paddings and borders has been improved and the root element will now establish a new block formatting context, and will therefore expand to enclose overhanging floats. Finally, the CSS sibling selector (~) now works properly with the :target pseudo-class.

WebKit now supports the -epub- CSS property-prefix as an alias, similar to its support for the -apple- and -khtml- prefixes. This addition was made following a conference call in the EPUB Working Group last Thursday, and while not all issues have been resolved yet, it’s likely that they’re here to stay. One thing which is surprising is the fact that all vendors will use the same prefix: -epub-, contrary to CSS’ vendor prefixes.

Other changes which occurred last week:

  • WebKit now supports localized date strings for date input fields.
  • Chris Evans added a setting which will, when enabled, be able to block insecure content on secure pages.
  • Support for pressing mouse-buttons has been added to Chromium’s Web Driver implementation.
  • Support for executing asynchronous scripts has also been added to the Chromium’s Web Driver.
  • The Web Inspector’s Extension API namespace has been changed to chrome.experimental.devtools.
  • Initial support for creating panels has been added for Windows, including dragging them.
  • The framework for speeding up SVG Filters for multicore processors has landed, including an
    implementation for the FETurbulence filter.
  • Mark Pilgrim started porting Mozilla’s IndexedDB test-cases and made small bug fixes. Curious.
  • An FFTFrame implementation for FFmpeg has been added for the Web Audio API.
  • Docking Web Inspector to the browser window using the WebKit2 API is now a possibility.
  • The first parts of the fullscreen API for Safari on Windows have landed at WebKit.
  • An early take at supporting drag and drop for Chromium’s Touch UI New Tab Page has landed.
  • The new Quota API may be enabled by supplying the --enable-quota flag to Chromium.
  • Dimitri Glazkov taught CSS sub-selector chains how to deal with shadow descendants.
  • An early version of a Views-based combobox has landed for Chromium.
  • Windows Vista and Windows 7 now have a lower priority for the IO process.
  • Support for transparent WebKit instances was added for WebView under Windows.
  • The Content-Security-Policy implementation now blocks eval and stylesheets, inline ones too.

Since I won’t have any time at all this week, I expect the update to be rather short. Till then!

Read more (4 comments) »

Spring Loaded Tabs, improved border rendering and the Web Request API

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

Averaging about 180 commits per day in the last month, this week’s commit count of 1,447 pushes the limit once again. Highlights include lots of border-rendering fixes, the WebRequest Extension API in Chromium, progress on Content Security Policy and lots of Web Inspector updates.

The WebRequest Extension API in Chromium, which can be used to intercept, block or modify requests as they’re being made, has been given five new implementations by Dominic Battre during last week: onRequestSent, onResponseStarted, onBeforeRedirectonErrorOccurred and the onCompleted callbacks.

One project I should give more attention to is v8, the JavaScript engine used in Chromium, especially as some interesting developments have become apparent recently. Support for Float64Arrays has been added and work on EcmaScript’s Internationalization APIs continues with a partial implementation of the Collator. Did you know Chromium already exposes a Locale object as window.v8Locale?

Besides that, the first steps towards adding Harmony Proxies have been made by exposing an experimental Proxy object, which can be enabled by running Chromium with --js-flags=”--harmony_proxies”. Do keep in mind that the implementation currently only exposes an empty, thus void, Proxy object.

It has been a busy week for the Web Inspector team again. A “Save As…” option has been added to several menus and, following some refactoring, detailed heap snapshot processing has been moved to a Web Worker. In the Resources panel, resources will now be grouped by their type, a go-to line dialog has been implemented and using tabs in the live editor won’t move away focus anymore. Finally, de-obfuscate has been renamed to Pretty Print and the metrics pane received some functional updates, as well as a small bug fix.

WebKit’s implementation of the Content Security Policy draft received quite some improvements again. Policy violations will be logged to Web Inspector’s console, support for the frame-src directive has been added and the report-uri directive has been implemented, which will send a violation report to a chosen URL, albeit slightly different from the current draft specification. Finally, the policy definition syntax has been updated.

As for specification support, the disabled property of link elements handling stylesheets now matches the HTML5 specification. The error-event for <script> elements won’t bubble anymore and form control elements’ label property will allow custom attributes to be set.

WebKit’s border rendering now sucks less, as Simon Fraser puts it. He fixed several bugs by refactoring a lot of code and implementing optimizations for common cases, among which are overlapping semi-transparent borders, anti-aliasing for borders on transformed elements and rounded border rendering for different border styles, which has been improved. Background color leakage has been fixed, as has gradient leaking.

Other changes which occurred last week:

  • The LevelDB wrappers landed and will be compiled in for Android WebKit.
  • Incremental decoding for the WebP image format has been added.
  • The requestFileSystem method from the FileSystem API has been prefixed.
  • Folders may now be dragged to file inputs with the webkitdirectory attribute.
  • New resources have been added for Chromium OS’ profile photo displays.
  • The auto-fill menu for Chromium got its appearance tweaked.
  • Support for the feDropShadow SVG Filter has been added by Dirk Schulze!
  • JavaScriptCore has started work towards using a General Visitor GC pattern.
  • Feature defines have been added that allow ports to disable <details> and <summary>.
  • Multiple profiles in Chromium can now be enabled in about:flags, although it’s not really functional yet.
  • Print preview will now show a message if the PDF plugin is not available.
  • Better omnibox history matching is now available through Chromium’s about:flags page.
  • A first part of enabling multiple tab selection on Mac OS X systems has been committed.
  • The HSTS list can now be controlled through a command line switch as well.
  • Shortcuts to Google Chrome Canary no longer mention the word “Build” in their name.
  • Support for Spring Loaded Tabs has been added to Chromium!

Given the large amount of command line switches in Chromium, work is being done to move them to different files. This causes the command line overview to be incomplete right now, which I plan to fix this week 🙂

Read more (2 comments) »

Web Audio API, script de-obfuscation, an updated UI and the contentSettings API

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

The Chromium and WebKit teams checked in a grand total of 1,496 changesets over the past 168 hours. Highlights include the availability for the Web Audio API on all platforms, script de-obfuscation in Web Inspector and a slightly updated user interface for Chrome 12.

Following the availability of the Web Audio API on Mac OS X, Kenneth Russell flipped the switch for branded Windows builds, after which Chris Rogers landed a patch making it work on Linux. If you’re on Windows, get yourself a Chrome Canary build, launch it with the “--enable-webaudio” flag and check out some examples! The commit has been reverted, but work is on its way to get the API back in.

The Web Inspector team has made some great commits again. Firstly, obfuscated source-code (such as a minimized jQuery) may now be cleaned up in the Script Panel by right-clicking on the content and selecting the de-obfuscate option. Undo and redo has been implemented for the text editor, accidentally switching panels during live editing using certain shortcuts has been fixed and the resources panel can now display raw HTTP-headers. Finally, early steps have been taken to move the Detailed Heap Snapshots processing into workers.

One of the problems the prefetch relation for <link>-elements has, is that the linked file will be loaded in WebKit at a very low priority. In order to offer authors a way to preload resources which will be used on the current page, Gavin Peters has implemented the “subresource” relation.

As for specification compliance, a regression related to the ACID3 test has been fixed meaning that it will render pixel-perfect again. The Blob’s slice method has been renamed to Blob.webkitSlice, while also having its semantics change to mimic Array.slice. Simon Fraser has begun with improving WebKit’s border mechanisms, initially by improving the logic used to compute the inner radii on curved borders. Stay tuned..

WebKit’s Content-Security-Policy is now aware of the “self” source and will block string arguments to setTimeout and setInterval unless the “eval-script” option has been set, as they would evaluate the string internally. It is now also possible to define what sources media elements can load from, using the media-src directive.

Other changes which occurred last week:

  • Following the skeleton and the WebKit define-switch, compiling the LevelDB back-end for IndexedDB has been enabled for Chromium.
  • The SH4 JIT for JavaScriptCore has been both finished and enabled by default for Qt!
  • WebKit2 now supports searching text within PDF documents using the default Find in Page.
  • Composition propagation has been implemented for object-elements and framesets.
  • ArrayBuffer responses for XMLHttpRequest in Safari on Windows have been enabled.
  • Good news for WebKit reviewers with an iPad: the review tool is now compatible.
  • A bunch of new icons have been committed for Chrome 12’s user interface, being a bit more gray.
  • The SVG lighting filters have been sped up four times for ARM-processors.
  • Speech input has been disabled for readonly and disabled form input fields.
  • Chromium’s compositor will now tile larger (>512 pixels) content and image layers.
  • A unified Quota API will now be exposed from WebKit if it’s built in a certain way.
  • The Qt port has implemented mime-snifing based on Adam Barth’s IETF proposal.
  • A flag has been added so development of a Page Visibility API in WebKit can begin.
  • The experiment with moving the caret by word in visual order received two follow-ups.
  • Chrome’s text anti-aliasing has been fixed when text renders with a shadow.
  • The enableReferrers and enableHyperlinkAuditing options have been added to a new contentSettings extension API for Chromium. Looks promising.
  • A user interface has been added to control Virtual Private Networks in Chromium OS.
  • The Print to PDF dialog for Chrome’s Print Preview feature will now suggest a filename.

And that’ll be all again!

Read more (5 comments) »

Ruby overhang, HTML5 track element and a full-screen button

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

The 630 commits at WebKit and 707 commits at Chromium add up to a total of 1,337 commits. And I’m not even kidding. Highlights are two removed events, automated ruby overhang behavior and offline audio rendering for the Web Audio API.

Quite some visual changes have been made to Chromium. The concept of scrolling tabs has been introduced for the Touch UI, ensuring that selected tabs stay in the view. Users of Side Tabs will have noticed two new arrows at the top of the tab-bar, allowing you to scroll through the tabs upwards and downwards. The profile button has been moved a bit, making space for a new full-screen button and a stub implementation has been added for Panels, one thing I really miss for extensions.

New features have been given quite some attention. Feature defines have been added for an implementation of the <track> element, which means that work will be starting. The getUserMedia method and JavaScript bindings have been implemented for the Media Stream API and WebKit is now capable of rendering fonts using Skia, bringing its PDF rendering one step closer to handling Chrome’s print previews.

Following some discussion and a change to the HTML specification, WebKit has removed support for the onformchange and onforminput events. The CSS parser won’t accept #papayawhip as a valid color anymore, WebKit’s Server-Sent Events implementation will now only accept UTF-8 as its encoding and negative shadow spread should not round inset shadows. Finally, hidden iframes won’t receive focus anymore.

Dan Bernstein had a go at improving WebKit’s ruby implementation by adding support automated overhang, which means that ruby text can overhang characters adjacent to the base text. While this has become the default and only behavior for WebKit, as the ruby-overhang CSS property has not been implemented yet, the specification’s draft does not reflect the new initial value yet.

Now that the Web Audio API has been in development for well over a year, work has begun on making it testable. Offline audio rendering has been added to the AudioContext API and DumpRenderTree (the testing-framework) for WebKit’s Mac port has been improved with supporting audio tests.

Other changes which occurred last week:

  • WebKit’s GTK port is now capable of running WebGL!
  • Spin-buttons for numeric input elements are clickable again when large paddings are used.
  • A WebUI implementation for HTTP Authentication dialogs has landed for Chromium OS.
  • The default favicon to show for websites has been changed to the address bar’s little globe.
  • Tabs on Chromium’s Touch UI tab-bar will be using 32×32 pixel favicons, double their normale size.
  • TCP-classes have been renamed to Transport in scope of unifying APIs for TCP, UDP and SCTP protocols.
  • Dragging multiple tabs in Chromium will now show an accurate thumbnail showing all tabs.
  • Just pre-loading the metadata for video elements can now be done by setting preload=metadata.
  • Adam Barth’s Content-Security-Policy system can now block plugins, inline scripts, images, styles
    and fonts
    and has been given an options directive.
  • A fast path has been added for rendering simple color-based backgrounds.
  • A recently closed option has been added to Chromium’s Touch UI New Tab-page.
  • Another fast path is now available for parsing simple CSS values, such as dimensions and colors.
  • Repaints during style recalculation will be deferred, improving performance.
  • The page up, page down, home and end buttons will now affect selection in the <select> element.
  • Bouncing for single-finger panning gestures on Windows Touch systems is now available in WebKit2.
  • Skia’s PDF back-end has been pulled in to Chromium’s repository and will be compiled for Print Preview.
  • The HTML5 <meter> element now uses the Shadow DOM, and <progress> has been refactored.
  • The new HTML5 Media Elements will now be rendered using Dimitri’s Shadow DOM as well.
  • Similar to Mac OS X, Chromium on Windows will now also fade tab titles.
  • The Bali release of libvpx, used by the WebM video codec, has been pulled in to Chromium.
  • Support has been added to the WebKit 2 API for Windows 7 gestures.
  • Incoming source can now be preload scanned even if the parser is blocked.
  • Web Inspector’s feature to export HAR-files of resource loading has been improved.
  • Several changes to Chromium’s Web Driver implementation add versioning and health checking.
  • Web Inspector’s protocol format will be updated towards the JSON-RPC 2.0 specification.
  • Searching in Web Inspector’s Resources panel has been fixed.
  • Some layout tests were added for Chromium’s detailed heap snapshots’s summary view.
  • Work in WebKit has begun on implementing an unified storage quota for websites.
  • Chrome will start gathering statistics on modal dialogs in unload events.

And that’s it again. If you hadn’t noticed yet, last Tuesday I announced that I’ll be joining the Google Chrome team in June. While the set-up of these updates may change, I definitely intend to continue making them!

Read more (8 comments) »

Joining Google!

Published on in Google Chrome, Personal, tech.

I’m very excited to announce that I’ll be joining Google as a Software Engineer on the Google Chrome team!

Starting mid June, I’ll be working with the guys over at Google London to improve the browser, WebKit and related products. As my passion for both Google Chrome and WebKit has become quite obvious over the past year, I can’t wait to get started on my new position. Since I’m currently living in the Netherlands, this also means that I’ll be moving to London and the United Kingdom.

While this is an amazing opportunity that I’m definitely looking forward to, there’s a lot I have to leave behind. Besides friends and family, I will no longer be the Technical Director at videobankonline, a great company I co-founded. While I can no longer be an active volunteer at Fronteers, the association for Dutch front-end developers, I’ll finish my role in this year’s conference’s committee and will host an HTML5-course in May.

I certainly intend to continue writing last week posts on my blog, but the set up is going to change. Right now I have the liberty to write about anything I find, seeing that I don’t have access to internal information. As this is going to change, I’ll have to be a lot more careful about the things I write about.

Huge thanks to Paul Irish and Dimitri Glazkov. Cheers, guys!

Read more (64 comments) »