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, onBeforeRedirect, onErrorOccurred and the onCompleted callbacks.
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!
- 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