Last week, 912 commits landed in Chromium and 754 at WebKit, totaling up to 1,666 changes. Highlights include scoped stylesheets, parsing of properties for the Grid Layout and a new interpreter for Apple’s JavaScript engine.
Two new extension APIs have been added to Chromium, namely a fontSettings API which will (so far) allow you to retrieve the font family for a given script, and a Key Bindings API which allows you to register shortcuts triggering events in your extension. An API has been added allowing the Chrome Web Store to install multiple extensions at once, and extensions now also support icons sized either 256×256 or 512×512 pixels.
A command line flag and an about:flags entry have been added to Chromium allowing you to enable support for scoped stylesheets. CSS rules declared in <style scoped> elements will only apply to the subtree rooted at the style element’s parent element, which will prove to be really useful for components and better encapsulation of styles.
Apple’s JavaScriptCore is now a triple-tier virtual machine, adding a new low level interpreter which is 2 to 2.5 times as fast as the old one. While performance of the triple-tiering engine is neutral on performance tests, reducing the amount of JIT’ed code delivers strong performance improvements on actual websites.
Other changes which occurred last week:
Style and link elements will now emit events based on whether the stylesheet was successfully loaded.
Ian Vollick hasbeenbusy on implementing support for animations in Chromium’s compositor.
An empty skeleton of KURL based on WTFURL, a new URL parsing library, has been added.
Last week also happened to be Evan Martin’s last week as a member of the Google Chrome team. Besides having made more than 1,400 commits, Evan has had tremendous impact on the project ever since he started working on it. Thanks, and good luck on your next endeavours!
Another 1,642 changes landed in the repositories last week, 958 for Chromium and 684 for WebKit. Highlights include a color picker for Web Inspector and early functionality for the calc() function.
Brian Grinstead’s color picker is now enabled by default in WebKit nightlies, following some slightpolishing. To aid the undo and redo system, an event has been added to monitor CSS modifications, percentage calculation for empty heap snapshotshas been fixed and the first UI for managing IndexedDB databases is available. The free-flow DOM editing experiment has ended, concluding that it wasn’t an optimal solution for highly dynamic pages. Single-click CSS editing did however get enabled by default, and the Elements Panel will nowshow previews for images.
Per Mike’s commit, basic usage of CSS’ calc() function have started to work in WebKit. Two new CSS properties have been added, -webkit-line-grid to support the alignment of lines in the inline direction to the line grid and -webkit-overflow-scrolling, indicating that an element with overflow scrolling should follow the platform’s behavior. Nested horizontal flexboxes for the new implementation have been fixed, the nowrap value for the flex-wrap property has been renamed to “none” and the computed style for auto flex-item-align now resolves to its parent’s flex-align.
All HTML elements now support the translate attribute. Support for the DOM Level 3 FocusEvent class has been added and the “types” attribute for HTML5′s drag and drop Clipboard object now returns a DOMStringList. As for CSS Regions, it’s now possible to check whether a named flow overflows and update the regionOverflow property for all elements. Finally, a repaint issue and a text selection issue related to Regions have been fixed as well.
Other changes which occurred last week:
CSS Animations can now be driven through requestAnimationFrame, evading the 40Hz limit.
With 995 commits to Chromium’s repository and 754 to WebKit’s, last week brought in another 1,749 changes to the projects. Highlights include Mutation Observers being enabled for all WebKit ports and reversed CSS Animations.
Web Inspector’s Heap Profiler overview screen got some UI improvements and will now show percentages by default next to absolute usage numbers. Hovering over elements with :hover styles defined won’t lock up anymore, the debug side-bar in the Script Panel can now be hidden and DOM edits can now be undone. Brian Grinstead contributed a color picker, bridging the gap until actual <input type=color> gains support. Touch events are now supported by Web Inspector, and can be enabled through the Settings panel.
Mutation Observers have been enabled by default on all WebKit ports. The click() method is now implemented on HTMLElement, making it available for all elements in the DOM. URLs specified in <a ping> won’t be lowercased anymore, the state attribute has been added to the History’s DOM interface and the MediaStream API now supports the onstatechange event for PeerConnection. Finally, the Shadow DOM’s <shadow> element has been added.
1,368 changes found their way to the repositories last week, 802 for Chromium and 566 for WebKit. Highlights include Chromium 19, an Extension Activity Log page and no more high-latency audio code path.
The branch for Google Chrome 18 has been created, giving Anthony a cause to remind us about Potassium while kicking Chromium’s version 19. Approximately 6,500 Chromium, 4,400 WebKit commits and 300 v8 commits participated in this release, giving a combined total of over 11 thousand changes. Chrome 18 brings six new stable extension APIs, a CSS Selector Profiler, Mutation Observers and many, many more changes.
Work has been started on an Extension Activity Log page which will share information about API calls a certain extension makes, allowing you to keep an eye out on their behavior.
929 changes landed at Chromium’s repository last week, whereas WebKit’s received 626, totaling up to 1,555. Highlights include quite some progress on implementing the Shadow DOM and the Pointer Lock API.
Web Inspector’s Timeline Panel has been extended with three graphs, all hidden behind the Experimental Settings option, showing information about objects and events in the DOM. Hovering over a function in the Script Panel may now showan overlay with general information and it’s source-code and elements within iframes are selectable again.
In order to verify whether ES.next’s let keyword will be compatible with websites, Apple has reserved the word from normal usage in JavaScriptCore. Support for Uint8ClampedArray has landed for both V8 as JSC, values for the dropzone attribute will be normalized and various issues with radio-button groups have been fixed.
Last week brought 563 new commits in WebKit’s repository and 709 new commits to Chromium’s, totalling up to 1,272 changes. Highlights include a content shell for Chromium and work on emulating screen sizes.
Chromium’s content shell for Linux-based systems was announced on the chromium-dev mailing list on Friday, sharing the news that it’s now usable for day-to-day WebKit development. It uses Chromium’s content module but leaves out other parts of the browser, so it’ll be significantly faster to compile and run.
For free-flow HTML editing in the Resources Panel of Web Inspector, revisions will now be tracked. Unsafe cross-origin requests will now show a stack trace in the console, making them easier to track down and content in iframes won’t appear to be in the same document anymore when using the DOM Viewer. Finally, a screen-size emulation back-end has been implemented, which will eventually allow you to emulate mobile device screens!
The -webkit-cross-fade will now report the intrinsic size of the background, fixing rendering when the background-size property is being used. Baseline grid alignment has been implemented, as have the text-overflow property for input fields and parsing for the custom() function of CSS Shaders. Painting background colors for regions has been re-enabled, and regions will now be exposed to the DOM.
WebKit’s Device Orientation implementation has been updated with the absolute property, which indicates whether the angles in the event are absolute. The abort() method for Application Cache has been added, as has a constructor for MediaStream accepting a collection of MediaStreamTracks. A window’s innerWidth and innerHeight properties won’t be affected by page scales anymore and drop and dragend events will now be issued for contentEditable elements.
Finally, the first significant patch in exposing the Shadow DOM to JavaScript has landed in WebKit! Minor as it is right now, it’ll pave the path to implementing the rest of the specification.
Exactly 1,500 changes landed last week, 890 for Chromium and 610 for WebKit, bringing changes such as some usability updates in the CSS Profiler and new font-related CSS properties.
Early steps in supporting IndexedDB in Web Inspector have been made and a “source” column has been added to the CSS Profiler, directly pointing out the offending CSS rule.
As part of an ongoing effort in WebKit, several failing tests on the IE Testcenter have been fixed. Among these are executing prepared scripts even when they’ve been removed from the DOM and sandboxed i-frames will now block the autofocus attribute if the sandbox flags request it.
The new year’s first week ended calmly, bringing in 547 commits to WebKit and 650 to Chromium. Highlights include support for temporal dimensions for media files, alignment of Safari’s JavaScript engine with ES5 and lots of performance improvements.
Sanitization of non-parsable strings in date and time input boxes is now possible in WebKit, emptying the value if an invalid value has occurred. The </script>-close tag will now be properly highlighted in View Source, and horizontal paddings and borders will be used instead of vertical ones for a CSS table’s fixed width.
Eric Carlson implemented the temporal dimension portion of the Media Fragments URI specification. This allows you to append a formatted hash-string to any media file’s URL selecting which portion of the file should be played. For example, this plays the fourth until the twelfth second: video.webm#t=4,12.
Happy New Year! Since I didn’t publish an update last week, this one will cover all 680 WebKit and 986 Chromium commits made in the past two weeks. Highlights include a ton of Web Inspector changes, Jarred’s work on XMLHttpRequest and access to new JavaScript features through about:flags.
Besides support for true hardware acceleration, which pretty much is a requirement for features such as WebGL and CSS 3D Transforms, attention is also being given to software renderers. Several crashes for Apple’s OpenGL-software renderer have been fixed, and support for SwiftShader has been added for Windows installations, which will automatically be downloaded if support for GPU-based WebGL is blacklisted. While performance definitely won’t be en par with GPU-based WebGL, it’s a good solution for those on older systems.
The Web Inspector team landed some great new features, mostnotableof which is the CSS Selector Profiler. Available through the Profiles Panel in the Inspector, it will show the number of matches for a certain element and its contribution to the total style matching run-time. Two other new features, both displayed in the image below, are the ability to dock the Web Inspector to the right-side of the browser window (through the Settings window) and an experimental tabbed interface for the Script Panel.
On Chromium’s side for Web Inspector, both the chrome.devtools and the chrome.debugger Extension APIs graduated from being experimental, so hopefully we’ll be seeing a lot of extensions starting with Chrome 18!
WebKit’s HTML5 parser has received a number of updates, which include support for the Noah’s Ark condition, 93 named entities which expand to more than a single character and some minor fixes related to NULL characters in HTML content. Video subtitles through the <track> element can now be rendered on a video, and subtitles will be enabled for WebKit-mac builds, meaning Safari. Finally, the dropzone attribute got aligned with the specification.
Another 1,492 commits have been added to the projects; 826 to Chromium and an evil 666 to WebKit. Highlights include support for <ol reversed>, lots of changes for CSS Filters and rendering CSS Shaders.
Going forth in improving security in the browser, Chromium will now display a fatal error when it encounters pages using SSL certificates signed with the MD2 and MD4 hashing algorithms, and will display an interstitial warning page for certificates signed with MD5. Certificates with RSA and DSA keys of less than 1024 keys will also be rejected.
Within Web Inspector, a sidebar has been added to the Script Panel displaying the included scripts on by their host. A large amount of internal properties of objects using the Detailed Heap Snapshot tool have been hidden and hex-colors with just three characters will now be highlighted.
A significant memory improvement for Windows, sometimes yielding 5% improvement.
Another 4% speed-up on Kraken for Apple’s new DFG JIT.
Visited link hashes will now be cached, speeding up the total CPU usage on the HTML5 spec by 1%.
Since next Monday happens to be Boxing Day, I’ll publish a (probably brief) update the day after, Tuesday the 27th. Thank you for reading and have a Merry Christmas!