Last week brought another 1,245 accepted changelists in the repositories of Chromium and WebKit. Highlights include a new Settings extension API for Chromium, CSS Regions and Exclusions being enabled by default and a separate i18n project for v8.
Chromium’s new New Tab Page, which has been in the works for several months now, now is the default one for the browser. It contains three pages, most visited, Apps and bookmarks, is touch-friendly and accessible. It looks quite good too. If you really want to go back to the former version, you can use the –new-tab-page-3 command line flag.
The experimental Internationalization API that’s being implemented in v8 has moved to it’s own open-source repository, allowing the work to progress more visibly. The API will expose the possibility to utilize features like localized string matching, number formatting and date and time formatting to web authors.
Benjamin Kalman has landed the first part of the long awaited Settings extension API to Chromium. This API will allow extension authors to specify settings for their extensions, which can then be synchronized across a user’s computers. Just like bookmarks. Early documentation is available on Chrome’s Google Code docs.
Within Web Inspector, the Network Panel won’t show local resources statuses as pending anymore. You can now choose to hide user-agent stylesheets in the style panes, the Resource Panel will now show cookies for the main resource, folders in the Script Panel are now optional and it’s now clearer which properties are non-enumerable when expanding objects. Finally, scripts from different domains won’t appear in the same folder anymore.
As for specification related updates, the width of a numeric input will now depend on the values it accepts. Basic horizontal flexing has been implemented for the new Flexible Box implementation and WebSockets now accept multiple sub-protocols and supports the protocol and binaryType attributes. Tom Zakrajsek made sure that unknown HTML elements now derive from HTMLUnknownElement and advanced text shaping was implemented for Linux.
Following thesetwo commits, Ryosuke Niwa was finally able to claim victory on his crusade to get rid of wrapping spans and Apple’s Apple-style-span class in WebKit’s editing component. His work resulted in much cleaner generated HTML for editable components.
With just 1,227 commits in the past week, 487 at WebKit’s and 740 at Chromium’s, it has been a normal week again. This week’s highlights include a new validation message UI, two full-screen modes for Chromium on Mac OS X Lion and the first step in supporting low level font features through CSS.
With Nico Weber toggling the switch, Google Chrome versions 15 and beyond will no longer use GCC for compiling the source, but instead will be using Clang. Clang is the C, C++ and Objective C front-end for the LLVM compiler. This change has led to a size-drop of well over 10 megabytes in the size of Chromium.app!
In the effort of improving Chrome’s support for Mac OS X Lion, status bubbles will have their corners rounded appropriately now. More importantly, the concept of full-screen has been split into two modes: Lion’s own interpretation of “full-screen”, placing the window in it’s own space while still having a visible dock, and a presentation mode which is a more conventional full-screen mode.
After adding a new performance test for float element lookup, Adobe’s Alexandru Chiculita landed an optimization which yields a performance improvement of about 150% for looking up a floated element. Nice!
As for specification related work, using a percentage value for an object’s border attribute now works appropriately. The PeerConnection interface from the Peer2Peer API has been implemented, a VTT parser has been added for subtitles for the <track> element and an important part in supporting <input type=color> has landed too.
Last week brought 1,352 updates to the projects, 445 for WebKit and 907 towards Chromium’s repository. Highlights include Chromium 15, the download attribute and work on implementing positioned floats.
The Web Intents shim was announced by Paul Kinlan about a month ago, and last week the initial signs of Chrome’s implementation started to show up. While it’s only preparatory work so far, a command line switch has been added and work on WebKit’s side is about to start.
In light of adding a cd()-like feature to Web Inspector, some refactoring has landed last week. An initiator column has been added to the network overview, and instead of disabling it altogether, the cache will now be cleared after navigation. Custom getters in the property pane won’t appear dimmed anymore.
As for specification-related changes, the selectionDirection property on input and textarea elements is now supported, just as the sizes attribute for link-elements is now supported as well. Specifying unicode-bidi as plaintext on textarea elements works correctly again, behavior of the Float32Array constructor has been fixed and v8 can now actually serialize script elements correctly.
Following Darin’s announcement, this response from Ian Hickson and the actual edit to HTML, WebKit now supports the download attribute on anchor elements. It’s quite simple really: specify the download attribute, optionally defining a filename, and the browser will download the anchor’s location rather than navigate to it.
Dave Hyatt has started to work on implementing positioned floats in WebKit. Currently, floated elements either float to the right or left side of their container, allowing content appear on the opposite side. Positioned floats allow floated elements to appear, for example, in the middle, spreading content between the left and right hand area’s of the floated element. While there definitely is progress, no actual rendering effects will be visible at this point.
Other changes which occurred last week:
The first basic layout test for the Web Audio API landed!
A remarkable change from Apple’s side: support for a built-in -webkit-pictograph font which can
render image-like glyphs. The font face itself seems to be private.
Chrome can now identify itself with the freeway running between California and Montana.
Larger hit-boxes will apply to select-boxes when Touch UI support has been enabled.
Knobs of disabled range controls will no longer be draggable.
The Data-tab of Chromium’s net-internals page has been split up in three tabs: Import, Export and Capture.
Tests for validating WebKit’s WebVTT parser (for <track>) have been added.
Printing an accelerated canvas in Chromium now works properly again.
As work on WebKit’s brand new XML Parser continues, a wild tokenizer appeared.
Chromium’s close-animation on Mac OS X has been sped up by request of the Gods.
The avatars available for multiple profiles have been revised, and several new ones have been added as well.
Chromium will now remember whether you wanted to print the last page in grey-scale or in color.
The filename-text for file upload controls is now properly aligned with the button-text for various platforms.
Splitting up the chrome-library in components can now create views.dll/.so as well.
Work on eliminating 2-pass painting for composited pages already gained 20% in performance in tests.
Support for bitmap images was added to Chromium OS’ file browser.
Two new experiments related to Instant will be done with 10% of the Google Chrome users.
The Web UI Task Manager will be enabled by default for the Chrome OS 14 release.
Motorola is busy adjusting WebKit GTK to use the v8 JavaScript engine.
And for a pretty exciting update on browser usage: open source-based browsers (being Chrome and Firefox) now serve the majority of the web with a combined market share of 50.09%! That is pretty cool.
Another 490 commits landed in WebKit’s repository last week, together with a massive 938 commits to Chromium’s, totaling up to 1,428 changesets. This week’s highlights include the ability to completely disable cache in Web Inspector, per-user proxies and quite some changes to Chromium.
Whereas using proxies on Chromium OS used to be system-wide, thus shared among all users and networks, Kuan Tan has added support for more flexible per-user and per-network proxies. Especially for those using corporate networks, as well as personal ones, this is a very welcome enhancement.
Another notable addition is that active audio streams will now be displayed on the chrome://media-internals/ page. So if you’re one of these people with hundreds of tabs open when one of them starts making noise, now you know where to find which tab to close.
As for specification related updates, using the “none” value when using multiple backgrounds will no longer break other images. Calculating the height of replaced elements has been fixed according to CSS 2.1 content height rules, support for HyBi WebSocket Frames has been added and the microphone icon for right-to-left input elements will now be positioned correctly, just like numeric input types have also been fixed for rtl.
v8’s implementation of serializing script values has been brought up to speed with the specification, a Ping-From header will now be included for cross-origin, non-secured connections when clicking <a ping> anchors, three new SVG elements won’t collapse anymore when paginating content.
Other changes which occurred last week:
Focus and selection events will now fire when the selected value of an <select>-element changes.
Naming has been clarified for registerProtocolHandler’s messages on the mailto: and webcal: protocols.
The dimensions of buttons on the virtual keyboard will now be determined through CSS Flexbox.
An early collection of multiple-profile avatars has been added to Chromium.
As part of progress on implementing the Peer Connection API, an AudioInputDeviceManager has been added.
Thousand separators for numeric input types have been disabled, as they’re not always convenient to have.
Apple has enabled the DFG-JIT for x86-64 Mac OS X platforms!
And that’ll be all for this week again. Things to watch out for this week will be work on CSS Flexbox and Regions, as well as more media related commits.
Last week brought 1,204 changes to the Chromium and WebKit repositories, with highlights such as work on the new Web Sockets protocol, a minimum window size on Windows and collectively improving Web Inspector.
Web Inspector is now able to show alert modal-dialogs in docked mode as well. More work has been done on enabling debugging of Shared Web Workers, performance of panel switching has been improved, resizing of the sidebar pane has been fixed for the Timeline and Profile panels and a flickering “please wait” message on Chromium has been removed. For Chromium, some infrastructure has been added for optionally gathering user metrics, which in the long run can be used to improve Web Inspector based on actual usage. Finally, welcome to John J. Barton!
As for improved specification support, Chromium on Windows is now able to hide the cursor by setting cursor: none. Canvas compositing with a global destination-atop now works properly, SVG Text rendered by Chromium will now always use geometricPrecision, associating form elements with non-existing forms has been aligned with the ES5 specification. Finally, in order to improve coverage of tests over the CSS Selectors implementation, the official test-suite has been imported.
Work on implementing the latest Web Socket Protocol is coming together nicely as well, tools are being updated, the new hand-shake has been implemented and a patch for the updated framing structure landed earlier today. Adobe added parsing of two new properties as well, CSS Region’s content-order property and Exclusion’s wrap-shape one.
Other changes which occurred last week:
A WebRTC Audio Device has been implemented for the renderer process, start of binding it with WebKit?
Accessibility notifications have been added to the range input-type when its value changes.
The new New Tab Page now includes a link to the Chrome Web Store, which cannot be uninstalled.
Improvements for Chromium’s component build: a separate UI library and one define instead of many.
An experimental implementation for SPDY over WebSockets has been added to Chromium.
Initial support for remote Cloud Print servers in the Print Preview dialog has been implemented.
Much later than usual, but live from Mountain View this time! Last week brought 838 updates, 468 at Chromium’s, the rest at WebKit’s. Highlights include work on a new tool for WebKit Gardeners, many updates for Web Inspector and two more parsing patches for Adobe’s CSS Regions.
Adam Barth started to work on a new Gardening tool for WebKit, called garden-o-matic. Gardening is the act of making sure that the build tree remains green, ensuring there are no unexpected test failures, etcetera. The idea is to provide a dashboard to developers allowing convenient access to actions like reverting changes, finding unexpected failures and the build which made them fail.
Now that WebRTC has landed as a Chrome dependency and work on implementing several related features in WebKit is well on its way, Magnus Flodman landed an early implementation of the Media Stream Manager. This Manager will coordinate between WebKit’s API, permissions, WebRTC and of course your camera and microphone, ensuring that the feature will work smooth and secure.
The multiple profile feature has received quite some work as well this week. The setup UI for a new profile has been implemented, deleting profiles now is a possibility, the displayed avatar can be customized and will contain most profile-related options. Finally, it has been enabled by default on the Views UI, presumably Chromium OS.
An incredible amount of changes happened for Web Inspector last week. You can now drag and drop elements and other nodes in the Element Pane, a new settings panel hasbeen added, and cache and cookies can soon be removed via the Network Panel. Speaking of which, you can now also search in the Network Panel, albeit still limited to filenames and paths.
The specificity of !important properties for the Inspector has been fixed, links to stylesheets will now open in the Style Panel, multiple resources will be shown when a URL is referred to multiple times and requests made by plugins will be shown in the Network Panel. Finally, it’s now clearer how to add a new style rule and adding CSS properties will no longer result in messy CSS rules.
As for specification related updates, the value property of an indeterminate progress bar will now return zero. A change event will be triggered when the selected files of a file input change, column-break-inside: avoid has been re-enabled and more key-bindings have been added to range inputs. Furthermore, parsing capabilities for the flow and from-flow properties, as part of their CSS Regions proposal. Finally, more workonswitching WebKit’s Render Tree to a float-based representation hasbeendone.
Other changes which occurred last week:
A new user interface for the media controls in Chromium is being implemented, though not yet available.
Shaders will now be shared among multiple compositors, improving performance as compiling them is expensive.
Audio rendering can now be done through a low-latency path, eliminating several noticeable delays.
Flicker when switching tabs on Chromium OS has been fixed.
The text-to-speech extension API has been extended with additional info, such as word boundaries.
The login keyboard for Chromium OS now uses an animation to slide in, rather than pop-in.
Support for ShadowBlur was added to the Qt port, improving performance.
Zoltan Herczeg now is a WebKit Reviewer, congratulations!
And that’ll be all! I will be in the Mountain View area until July 23rd and will attend Open Web Camp III (thanks, John Foliot!). If you want to meet up, feel free to drop me a note.
Last week brought 1,367 changes to the projects, 572 for WebKit’s repository and 795 for Chromium’s. Highlights include Samsung’s WebCL prototype, an experiment which disabled modal dialogs in the onunload event and the recent steps to move away from an integer-based render tree.
Samsung has announced the direct availability of a WebCL implementation for WebKit. While the prototype is limited to newer Apple laptops running Mac OS X, the work by itself looks promising. Nokia did something similar, they created a WebCL extension for Firefox.
Just over a week ago, Sreeram Ramachandran posted a message to the webkit-dev mailing list with statistics about websites using modal dialogs in the onunload-event: 2.3% of all users encounter at least one such modal dialog every week. Despite mixed opinions on the list, Chromium will no longer allow modal dialogs (such as those spawned by confirm() and alert()) in this event.
A few interesting changes have been made for Web Inspector. The boundaries of grouped console messages have been clarified, and nested groups won’t be merged anymore. Preparations have been made to allow pseudo-class style inspection in the future and various new entries have been added in the HAR output for requests. Finally, node selection has been sped up significantly.
Quitesomework has been done in the effort to move away from using integers for Layout in WebKit. The main rationale behind moving towards a float-based rendering tree was to allow for better zooming and scaling support, but in the long run this may lead to support sub-pixel layout and positioning. WebKit is the only engine which doesn’t support this internally yet.
As for standards support, WebKit now handles adjacent sibling-selectors with the <nav>-element correctly. Multiple e-mail addresses may now be separated by spaces, the legacy color-attribute parser has been updated to match the HTML5 specification (by Tab!) and the autocomplete DOM property for forms is functional again. Support for the plaintext value for the unicode-bidi CSS property has been added as well.
It’s been a while, and even though I cannot guarantee the updates to become weekly again, here are the highlights of last week’s 1,366 commits. They include a rollout of the SpellCheck API, early work on smooth scrolling for Chromium and a decreased maximum depth of the created DOM tree, namely 2048 levels.
Even though it won’t be functional yet, since last Tuesday it is a possibility to enable the Media Stream APIs in WebKit by passing the “–enable-media-stream” command-line flag to Chromium. Furthermore, following some fine-tuning and a commit saying that the basic implementation of Remoting hosts has been completed, work in the Remoting feature seems to progress steadily.
Following this announcement, WebRTC has now become a dependency of Chromium. Inclusion of the library in the browser will definitely aid in work bringing camera and microphone access to web applications, as well as the ability to stream that -and other- information to other users.
Two interesting Web Inspector changes are the addition of a context menu item for enabling inspecting native workers in Chromium, and the ability to pause the debugger on changes to an element’s style attribute.
As for on-going work, Tony Chang and Ojan Vafai have announced to start working on adding support for the new CSS Flexbox specification to WebKit, the first patch of which landed last Wednesday. Yuta Kitamura announced to start implementing the latest WebSocket protocol (-09), the first patch of which landed as well. According to Ian Fette, the protocol is mostly finished. Both features are still disabled by default.
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.
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!
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 implementsFloat64Array‘s for JavaScript. Work on <input type=color> is progressingsteadily, the Stream and GeneratedStream classes have been implemented, as have HTML5’s TrackList, MultipleTrackList and ExclusiveTrackListobjects. 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 allowexporting pages to MHTML archives too.
Other changes which occurred in the last week:
The Task Manager in Chromium now also shows the number of displayed frames per second.
An extension API has been added to Web Inspector for accessing timeline data.
Work has begun on enhancing the possibilities to inspect Web Workers through Inspector.
The LevelDB back-end for IndexedDB now supports transactions.
Borders, outlines and rules will always be anti-aliased again when they’re being scaled.
Painting on Windows will be capped to 30 frames per second in new Safari releases.
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 😉