Archive for the ‘WebKit’ category (118 posts)

Key Bindings for Extensions and Media Streams for the Web Audio API

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

A total of 1,599 commits landed last week, 745 for WebKit and 854 for Chromium.

Extensions using script badges will soon be able to use the Command API, allowing them to declare keyboard shortcuts for triggering events on an extension. Browser integration will become a lot richer with this addition!

The classList property moved from HTMLElement to Element, so may now be used with other types of elements as well — for example, SVG elements. Implementation of a MediaStreamAudioSourceNode for the Web Audio API has begun and audio destinations now support local and live audio input. For the CSS Regions implementation, the regionLayoutUpdate event will fire on the NamedFlow object now.

Sliders with a <datalist> attached to them will now have their handle snap to the available options, and an implementation for using <datalist> with color input-fields has been added for Chromium. The webkit prefix has been dropped from the Vibration API implementation as it reached Candidate Recommendation. Overflow will no longer apply to table rows and row-groups, instead, it only applies to block containers, and a bunch of improvements have been made to the Flexible Box implementation as well.

A setting and API has been added to WebKit2 ports, introducing an option to disable third parties from being able to store data. Besides blocking cookies, this will also encapsulate storage APIs such as localStorage.

Other changes which occurred last week:

  • An API has been added for WebKit2 ports introducing an option for blocking third-party storage.
  • Work is being done on re-implementing support for quotes and the <q> element.
  • Web Inspector’s User Agent setting screen has been renamed to Overrides.
  • The Pointer Lock API has been blocked for sandboxed iframes, and the old API has been removed.
  • Support for CSS Filters has been enabled for the BlackBerry port.
  • Chromium’s Mac OS X deployment target has changed to 10.6, deprecating Leopard.
  • Speculative resource pre-fetching has been enabled for 90% of the users using Dev or Canary.

Last week of the Olympics. Especially for those of you in London, enjoy!

Read more (1 comment) »

Content Security Policy API, Flexible Animations and Sticky Positioning

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

A total of 1,517 commits landed last week, 692 for WebKit and 825 for Chromium.

Web Inspector’s Settings dialog has received a new experimental option to override the Geolocation results. Experimental support for supporting SASS source-maps has been implemented as well, and drag and drop won’t be started anymore when using right clicks.

CSS Transitions and Animations now work between different types of length units, for example from percentage to pixel-based widths. For the Flexible Box Module implementation, percentage-sizes items will now wrap properly and the “order” property will now influence the painting order as well.

Mike added a JavaScript interface for Content Security Policy, enabling authors to apply feature detection to determine the limitations applied to their content. Initializing TypedArrays based on other TypedArrays has been sped up by 3 to 30 times, the undoscope property is now supported and Microdata’s PropertyNodeList interface has been implemented.

As for new features, a build flag was added announcing work on CSS Blending and Compositing. Simon started working on implementing sticky positioning, starting with the compile-time flag and parsing support. Sticky positioning is useful for elements that should remain visible on the screen regardless of the scrolling position, while also sticking to their containing element.

Other changes which occurred last week:

Revision 123,456 for WebKit also landed, last week!

Read more (1 comment) »

Find & Replace, a Slider’s Tick Marks and Image Orientation

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

Last week, WebKit received 621 commits whereas Chromium received 810, totaling up to 1,431. They were made by 373 different authors, and include a change adding search and replace to Web Inspector.

Find and replace functionality for source files has been added to Web Inspector, after less than a day of being experimental. Furthermore, an icon has been added for pausing JavaScript debugging.

The top property on the window object no longer is replaceable. It’s now possible to apply Shadow DOM to image elements, invalid script-nonce directives for Content Security Policy will cause WebKit to block script execution and  the calculation for serializing CSS rgba() functions has been corrected.

Sliders can now have tick marks painted if they have an associated datalist, and behavior of negative values for text-indent has been aligned with CSS 2.1. As for experimental work, a compile time flag and parsing support for the image-orientation CSS property have landed. Initial support for positioning grid items by their row and column index is now available as well, and displaying dialogs will now take the open attribute into account.

Other changes which occurred last week:

That’s it again, thanks for reading.

Read more (3 comments) »

HTML5 Dialog Element and getUserMedia() for Chrome Frame

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

Last week brought 1,433 commits to the repositories, 611 for WebKit and 822 for Chromium, made by 357 different authors. Highlights include work on the <dialog> element and removal of the hixie-76 protocol.

Within Web Inspector, the looks of the find bar have been updated, and several other parts of the UI are also receiving refreshments. Furthermore, the tab size now defaults to four spaces.

The CSS 3 blur filter will now work correctly when it’s applied to the parent of a fixed position element, and support for min-height and min-width in the CSS Flexible Box Module has been implemented, including the implied minimum size of flex items. The state of state-less form controls, such as password fields, won’t be stored anymore. Date and time input types are now supported by the BlackBerry port as well.

Backwards iteration over HTML Collections no longer has O(n2) performance, making it significantly faster. For CSS Regions, the firstEmptyRegionIndex attribute has been implemented for Named Flows and the getRegionsByContentNode method had “Node” dropped from its name.

A compile time flag has landed, marking the beginnings of an implementation of the HTML5 <dialog> element. Meanwhile, support for the old hixie-76 Web Socket protocol has been removed.

Other changes which occurred last week:

Thanks for reading!

Read more (2 comments) »

Scroll into View, XHR with ArrayBufferViews and Text Autosizing

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

With just 770 commits last week, 333 at Chromium and 437 at WebKit, the impact of the Independence Day celebrations is quite visible. Since the open-sourcing of Chromium in 2008, there have been only 11 weeks during which WebKit received more commits than Chromium.

The context menu for nodes in Web Inspector now includes a “Scroll into view” item. Snippets can be evaluated and the visual appearance of Web Socket frames has been improved.

Following I/O’s Chrome for iOS announcement, first steps are being made towards upstreaming the iOS code.

XMLHttpRequest’s send() method is now able to transmit ArrayBufferViews, the “script-nonce” directive from the Content Security Policy specification has been implemented, and a basic framework for Text Autosizing had landed.

BlackBerry enabled support for the Microdata API and scoped stylesheets on their port. EFL also enabled some features, namely support for both the Gamepad and the Microdata APIs.

Read more (4 comments) »

Color Profiles, the DPPX, DPI and DPCM units and CSS Variables

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

A total of 1,814 commits landed in the projects last week, 625 for WebKit and 1,189 for Chromium.

Web Inspector switched to using Chas Emerick’s jsdifflib for creating diffs between revisions. A dock-to-right icon has been added to the status bar, the settings screen has been rearranged and the list of local modifications may now be cleared. Furthermore, removing a result in the Profiles Panel can now be done through a context menu, and JavaScriptCore now supports breaking from native callbacks.

Following Chromium for Mac, Tony made sure that the Windows and Linux versions now also support color profiles in images, by utilizing ICCJPEG and QCMS libraries.

Animations and transitions may now be applied to :first-element pseudo-elements. The accept attribute of input elements now accepts file extensions and accuracy of state tracking in radio button groups has been improved. David Barr is making good progress on implementing CSS’ image-resolution property, also adding support for the dppx, dpi and dpcm units.

The Blob.slice method has lost its prefix. The document.documentURI property is now read-only, the overset property of Named Flows will return true when no region chain has been attached and the Pointer Lock implementation was updated with the pointerLockElement property, and the requestPointerLock and exitPointerLock methods.

Luke landed the initial implementation of CSS Variables in WebKit. While it’s disabled by default and not enabled on any platform yet, it’s very exciting that work is on its way.

Other changes which occurred last week:

There will only be a brief update next week, while there won’t be any at all the week after.

Read more (23 comments) »

Unregistering protocol handlers and improved input accuracy

Published on in Google Chrome, Last Week, tech, WebKit.

Last week, Chromium counted 1,018 changes while WebKit received 587.

Web Inspector’s pretty print feature now respects the indenting preferences. Only the root domain will be expanded in the Sources and Scripts Panels and links will be opened by default in the Sources panel, falling back to either the Resources or Network panels.

Nico landed yet another piece in improving Chrome’s experience on Mac High DPI modes, this time initial support for High DPI in web content display. The Chrome Blog has a nice image showing the impact his work has.

Zero is now a recognized number again for numeric input fields. Rendering nested flexible box objects has been fixed, the “order” property now accepts a number rather than an integer and more CSS 2.1 issues have been fixed.

Besides registering protocol handlers, they can now be checked for existence and unregistered as well. The imageSmoothingEnabled setting for 2D Canvas contexts will now apply to patterns as well, client rectangles for frames in scaled pages will return the right values and the Pointer Lock implementation gained support for the change and error events. Finally, a build flag for the Undo Manager has landed.

The Blob constructor now accepts ArrayBufferView instead of a normal ArrayBuffer for its constructor’s parameter. Elements with an empty string as it’s “itemprop” value won’t be listed in Microdata’s properties list anymore and several SVG features now report to be supported through DOMImplementation.

After some more intermediary steps, Yoshifumi Inoue introduced the new Decimal type for an input’s value properties, fixing rounding errors in number and range input fields.

Other changes which occurred last week:

  • Duplicated Content Security Policy directives will now display errors in the console.
  • The “target-DensityDPI” viewport meta value will no longer be recognized by WebKit.
  • Wins of 3% on Kraken and 3% on v8 for the JavaScriptCore engine.
  • Render Nodes lost 8 bytes of weight, saving up to 2.6 megabytes when viewing the HTML5 specification.
  • GPU accelerated canvas can now be disabled through about:flags.
  • Support for DTLS-SRTP (RFC 5764) has been implemented in Chrome’s NSS.

I’m not sure about the schedule of updates in the next few weeks, as I’ll be traveling through the United States. I’ll try to keep up!

Read more (2 comments) »

Image resolution, error’d exceptions and querySelector performance

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

728 WebKit commits and 924 Chromium commits add up to a total of 1,652 changes made during last week.

Parsing for the box-decoration-break CSS property landed, with the rendering part still pending. Form controls in disabled fieldsets won’t be checked for validity anymore, and fieldsets themselves now feature the elements accessor. Input elements with a :first-letter style are editable again, the &AElig named entity will now be rendered as expected and the :enabled pseudo-class now applies to option elements too.

Implementation of CSS Images Level 3’s image-resolution property has started, just like bits of the CSS4 Media Queries specification, with the implementation of the “hover” and “pointer” queries for Chromium. Various names used in the Flexible Box Module implementation have been renamed to the names now listed by the updated specification. Dave Hyatt is continuing work on re-implementing Multiple Columns to be based on Regions.

Exceptions now have Error.prototype on their prototype chain. The reserved 1005, 1006 and 1015 closing status codes for Web Sockets will now be handled as broken. Content Security Policy messages to the console will now include a line number for ports using JavaScriptCore, the “overflow” property of NamedFlows has been renamed to “overset”.

The “files” attribute for input elements is now writable and IndexedDB requests and transactions now support the error property. Usage of window.blur() is now disallowed altogether, while window.focus() may only be invoked from the context that created the window.

Other changes which occurred last week:

  • Kentaro Hara improved performance of querySelector() by about eight times!
  • Web Inspector’s Settings screen now features multiple tabs to more clearly support all available settings.
  • Attribute getters returning empty strings has been made 66% faster.
  • The need for a second layout for certain Flexible Box features has been optimized out.
  • The EFL port has enabled support for -webkit-image-set().
  • A new gesture was added for Chromium: two finger-tap to trigger the context menu.
  • WebGL has been enabled by the Qt port when using the WebKit 2 API.
  • The extension overview page in Chromium now shows a warning when a private key is included.
  • Legacy viewport feature such as MobileOptimized and HandheldFriendly are now supported.
  • An Extension API has been added to Chromium for access to Serial ports, now implemented on Windows.
  • Following a Mac OS X Lion update, Chromium will now allow proceeding with <1024bit certificates again.
  • Only twenty static initializers are remaining in Chromium Mac builds!


Read more (no comments) »

Seamless iframes, Private Names and the new Sources Panel

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

Last week brought 981 commits for Chromium, and 931 for WebKit, totaling up at 1,912 changes. Highlights include a new Sources Panel for Web Inspector, seamless iframes for Chromium and sub-pixel layout for Chromium.

Web Inspector’s Sources Panel, which intends to combine features from the Resources and Scripts panel such as revision historyis no longer experimental. The Go to Source shortcut is now accessible from all panels, drag and drop from the Navigator Panel has been added and preparations are being made to visualize layer compositing performance on the Timeline Panel.

With the layout code landed, most of the functionality seamless iframes deliver has been implemented. The new negative flexing algorithm for the Flexible Box Module has been implemented, and automated margins on flexboxes will now allocated space in the flex and cross directions. The color CSS Property may now be used on regions. Chromium has enabled support for sub-pixel layout in WebKit.

JavaScriptCore has started to implement ECMAScript 6’s Private Names feature, initially be allowing property maps to contain keys that aren’t identifiers. The interface code for DOM4’s DOMError landed, key paths in IndexedDB may now be arrays and a page’s scrollWidth() and scrollHeight() are now page scale invariant.

Other changes which occurred last week:

  • A setting has been added for disabling synchronous XMLHTTPRequest requests.
  • John committed compile and runtime flags for Font Boosting, Chrome for Android’s text inflation algorithm.
  • A setting has been added to make fixed positioning create a new layer stacking context.
  • WebKit’s backface-visibility tests have been updated per the HTML5 specification.
  • Carlos Garcia Campos is now a WebKit Reviewer, congratulations!
  • Grammar checking has been enabled for Chromium upon pasting text in any editable field.
  • Dictionaries for Afrikaans and Faroese have been added for spellchecking in Chromium.
  • Chromium OS now features an high contrast mode, available through the Accessibility settings page.
  • Touch-screen pinch zooming may now be enabled through about:flags.
  • An implementation of the Connection Status API has been added to Chromium.

And that’s it again for last week. This week we may see a tabbed settings dialog for Web Inspector!

Read more (2 comments) »

Decreased input padding, 8-bit canvas and getUserMedia()

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

Last week brought 1,819 commits, 999 for Chromium and 820 for WebKit. Highlights include changes to the padding of <input> elements and getUserMedia() being available by default in Chromium.

The debugger sidebar for Web Inspector’s Script Panel can now be toggled using a button. Console messages about Content Security Policy violations now name the directive and support for saving snippets has been implemented.

Using the latest CSS Flexible Box module now requires you to define an element’s display property as “-webkit-flex” as opposed to the previous “-webkit-flexbox”. Input elements are now two pixels smaller in width, as one pixel of unnecessary padding has been removed from either side.

Image smoothing for the <canvas> element may now be disabled. Loading video files served through scripts without a supplied mime-type will now work, and two issues with CSS 2.1 support have been fixed, namely text baselines in the first row of a table and wrapping stand-alone table columns in anonymous tables.

A compile-time flag has been introduced for toggling support for CSS Variables in WebKit ports. Furthermore, an initial test-suite to test the status of the implementation has landed as well.

Other changes which occurred last week:

For those of you interested in security, information about Pinkie Pie’s Pwnium exploit has been published — a very good read! Finally, a hat tip to 00 :-].

Read more (no comments) »