Archive for the ‘WebKit’ category (118 posts)

Tab Sizing, String Values for IndexedDB and Chrome 21

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

1,693 changes landed last week, 650 in WebKit’s repositories and 1,043 in Chromium’s. Highlights include Chromium 21, support for the tab-size property and strings instead of constants for IndexedDB.

Web Inspector’s search box supports CSS selectors again, JavaScriptCore timers will now show up on the timeline and a context menu has been added for tabs.

Text decorations, such as underlines, will now be rendered for text in :first-line selectors. Implementation of the :first-letter selector was aligned with the specification. Eric landed stylesheet inheritance support for seamless iframes, as well as the ability to inherit styles from their parent iframe.  The RadioNodeList interface is now supported, background-size is now part of the “background” shorthand and, albeit disabled, the <intent> element landed.

IndexedDB now uses strings instead of numeric constants. Violation reports generated by Content Security Policy now also include the referer, original policy and the URL which got blocked. The File System API is now able to deal with cross-file system operations, widths and heights are now exposed for <input type=image> images, and the offsetLeft property was broken when used together with CSS Columns.

WebKit has also gained support for the tab-size CSS property. This property, which is also supported by Firefox and Opera, allows you to define the number of spaces a tab should be equal to.

Included among other minor updates on the WebKit website, the conditions under which the WebKit trademark can be used are now available on the Mac OS Forge website.

Other changes which occurred last week:

An exciting thing to keep an eye out for in the upcoming weeks is Luke’s work on bringing CSS Variables to WebKit, the announcement for which has already been made!

Read more (4 comments) »

Sub-pixel layout, Inspecting Web Socket Frames and Seamless Iframes

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

Today’s update covers many Chromium and WebKit changes made over the past two weeks, meaning 2,055 commits for Chromium and 1,418 for WebKit, totaling up at 3,473 changes.

Web Inspector now offers the ability to disable all JavaScript execution on a page, and also allows Web Socket frames to be inspected. The shortcut overlay has received some UI polish and the Timeline Frame Mode has been taken out of experimental.

Fixed placeholders have been implemented for date input types, a form field’s entries supplied through a <datalist> are now barred from validation. The Apple Mac port removed support for BlobBuilder and the Selector APIs have been aligned with the specification when pseudo-element selectors are used.

Retrieving a canvas’ image data will now return a Uint8ClampedArray instead of a CanvasPixelArray object. In preparation of supporting getUserMedia on Chromium, the Peer Connection API implementation has been separated with a compile time flag. Tables now support the createTBody() method and the IndexedDB implementation can now open cursors based on a IDBKey, and advance cursors as well.

Eric landed the first parts of support for seamless iframes in WebKit, namely some tests, sandbox and styling and navigation. A vendor-prefixed version of the Performance Timeline API landed, the getUserMedia() method now takes an object instead of a string and the noteOn and noteOff methods of the Web Audio API’s oscillator got implemented.

Antti made it possible to share stylesheet data structures between documents, decreasing memory usage by several megabytes (take note, kling) depending on the port’s implementation. Furthermore, parsed stylesheets may now be cached, increasing performance of subsequent page loads.

Per commit 116009, Levi and Emil were able to close the meta bug for supporting sub-pixel layout in WebKit. While this has not yet been enabled for any port, this is a significant milestone for the project. This article provides some insight in the importance.

Other changes which occurred last week:

  • Code supporting positioned floats has been removed from WebKit, pending proper implementation.
  • The EFL port has enabled support for the <track> element, the Web Timing API and the Web Audio API!
  • The BlackBerry port enabled support for the download attribute on anchors.
  • Abhishek Arya (inferno) is now a WebKit Reviewer, congratulations!
  • Chromium is working towards enabling getUserMedia by default.
  • Multiple input channels are now supported for the JavaScriptAudioNode.
  • HTTP Pipelining is now enabled for all users on Chrome’s dev channel.
  • All Chrome Canary Windows users will now receive the PPAPI-based Flash.
  • Work is being done to enable an x86 Chromium Android build, which would work in the emulator.
  • A new USB Extension API has been added to Chromium.
  • A command line flag for enabling Peer-to-Peer connections has been added, though is still experimental.
  • It’s now possible to save webpages as MHTML within Chromium.

And that’s it again, thanks for reading! 🙂

Read more (no comments) »

WebKit Contributors meeting, data-lists and HTTP pipelining

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

Last week, a total of 1,575 landed in the repositories: 923 for Chromium and 652 to WebKit. Highlights include the WebKit Contributors meeting, Web Inspector updates and support for <datalist> in Chromium.

Last Thursday and Friday, Apple kindly hosted the 2012 WebKit Contributors Meeting in Cupertino. With contributors from many different vendors around, a large number of subjects were covered in presentations and discussions. Transcripts of most of these are available on WebKit’s Trac, including a group photo of all attendees.

An experimental Style Panel has been introduced to Web Inspector which mimics the interface of the Script Panel, which also features an open stylesheet-dialog. Cross-frame security error spam when typing in the console is gone, calling document.open() will now reset the Elements Panel and the Inspector is now shimming the startsWith() and endsWith() methods on the String prototype, anticipating implementation of Microsoft’s proposal.

Parsing rules of the :nth-*() pseudo-classes has been aligned with the specification. Clipping issues with the CSS drop-shadow filter have been resolved and the “-webkit-filter” CSS property will now show up when enumerating over an element’s computed style.

Support for the HTML5 <datalist> element has been enabled for Chromium. It provides similar functionality to suggestions by the browser based on what you previously entered in a text field, with the difference that these suggestions are provided by the website.

Other changes which occurred last week:

  • The WebKitGTK port has enabled the Web Timing implementation.
  • Performance of several String-returning DOM attribute and property getters has been improved for v8.
  • The localStorage.setItem() method cannot override methods on the Storage prototype anymore.
  • The footprint of an element’s attributes has been reduced to a minimum for common usage.
  • The IndexedDB implementation can now retrieve values or keys by IDBKeyRanges.
  • HTTP pipelining has been enabled for 10% of Chrome’s dev-channel users.
  • The Chrome OS window manager (Aura) now supports the three-finger swipe.
  • Chromium’s touch optimized UI will make menu items 40 pixels in height.
  • Linux users using display resolution larger than 4000×4000 are now able to view all of Chrome again!

Next week’s update will probably be a bit brief as I’ll be in Barcelona. Thanks for reading!

Read more (3 comments) »

Limiting -khtml- and -apple- prefixes, and location.ancestorOrigins

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

882 revisions landed in Chromium’s repository last week and 667 in WebKit’s. Highlights include removal of support for the -khtml- and -apple- CSS vendor prefixes in Chromium, and the new location.ancestorOrigins() method.

Work on Device Emulation in Web Inspector is continuing and now also supports dimension wrapping to mimic orientation changes, and a “fit to width” option which will inherit the browser window’s dimensions as the device’s resolution. Lines having a breakpoint will now show line numbers and the vertical timeline overview now shows the wall time.

Support for -khtml- and -apple- properties has been removed for most WebKit ports, including Chromium, after previous attempts failed due to compatibility issues. Background sizes are now correct if the page is zoomed out, the default box-shadow color now defaults to the element’s “color” property, the viewport-relative CSS units now work for Replaced objects (such as images) and the -webkit-image-set CSS property was enabled for the Chromium port.

The ancestorOrigins() method was added to the window.location object, Chromium now exposes the Battery Status API and a Mutation Observer’s attributeFilter is now able to deal with namespaced attributes as well. The contentNodes property for NamedFlows was added, JavaScriptAudioNodes now respect the number of output channels and timestamps used in WebVTT had their limits relaxed.

Split over a number of commits, Avi has renamed Chromium’s TabContents class to WebContentsImpl.

Other changes which occurred last week:

And that’ll be all :). Maybe see you at the WebKit’s Contributors Meeting!

Read more (4 comments) »

UI for date-input fields, Iframe’s srcdoc attribute and Flexbox updates

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

Last week brought 995 commits to the Chromium repository and 732 to WebKit’s. Highlights include work on the user interface for date-input fields and the “srcdoc” attribute for iframes.

The animatedPathSegList property for SVG path elements has been implemented, completing support for the animVal properties. Minor type updates were done aligning WebKit’s typed array implementation with the specification, the Web Audio API’s Oscillator and WaveTable interfaces have been implemented and plumbing for the new JavaScript Speech API continues.

Support for the CSS flex() function has been removed in favor of the flex property, which Tony Chang implemented and made animatable. Empty @media and @charset declarations are now being ignored, image-set updates dynamically when the device scale factor changes and syntax was updated for two CSS Exclusion functions.

Now that a user interface for color input types is available, next in line is an interface for the date and time input types. Kent Tamura has been working on implementing this, an early example of which can be seen here. Meanwhile, work has started on cleaning up and implementing support for <datalist>. The <iframe srcdoc> attribute is now also supported, allowing untrusted HTML code to leverage an iframe’s sandbox constraints.

Other changes which occurred last week:

As always, thanks for reading. Next week’s update may be a bit brief as I’ll be in the Mountain View area, also attending the WebKit Contributors Meeting!

Read more (no comments) »

Color input, the Network Information API and Chromium 20

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

1,104 changes landed in Chromium’s repository last week, whereas WebKit’s received 792. Highlights include Chromium 20, support for <input type=color> and re-landing of the vw, vh and vmin CSS units.

Chromium’s latest version number is the only number with more than one digit that can be written from base 2 to base 20 using only the digits 0 to 9: version 20. Highlights of Google Chrome 19 include support for the CSS calc() function, quote some updates to the Extension APIs and support for mutation observers.

A skeleton of Chromium’s Content Shell for Android landed last week, which is the very first step towards being able to build an Android .apk file containing Chromium. Meanwhile, work on supporting Password Generation is also progressing with some new constraints and a user interface for Linux.

Support for IndexedDB in Web Inspector’s Storage Panel is now available by default. Line-endings won’t be re-set anymore after editing a file, heap snapshot parsing has been significantly sped up and the shortcut for going to the previous panel has been changed. Development on supporting snippets is ongoing, as is support for device metrics emulation.

After having been rolled out, support for the vw, vh and vmin CSS units has returned to WebKit. Flexbox’ flex-line-pack property has been implemented and two bugs around the flex-pack property have been fixed. Replaced elements now box-reflect and vertical-align and more progress landed for the new Multiple Column implementation. Finally, CSS Exclusions’ shape-inside and shape-outside had their “wrap-” prefix removed, and now occur in the list of computed style properties.

Support for the Network Information API landed in WebKit, currently only enabled for the EFL port. The “preview” state of the Page Visibility API has been implemented and toggling the “disabled” attribute on a fieldset element will now also effect all form associated elements it contains. Verification for the Sec-WebSocket-Protocol header has been made significantly stricter, cross-origin behavior for XMLHttpRequests seeing redirects has been aligned with the specification, and  images will now have their error event fired when the CORS check fails.

Other changes which occurred last week:

If you’re one of the people interested in charting Dimitri Glazkov’s average arrival time in the office based on his daily good morning wishes to the #chromium IRC channel, Brett Wilson has the perfect solution for you: 6,143 indexed pages spread over 13 books containing all of 2011’s IRC conversations!

Read more (3 comments) »

WTF’s move, image-set() CSS Function and Cross-Origin Scripts

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

With 901 commits at WebKit, and 1,298 at chromium’s, last week boosted up to a massive 2,199 changes to the repositories. Highlights include a that WTF no longer is part of JavaScriptCore, a new image-set() CSS function and SPDY/3 which can now be enabled through about:flags.

Following much discussion and preparation, including e-mail threads going back more than a year, Eric Seidel moved the WTF (Web Template Framework) code out of JavaScriptCore. It initially settled there in 2005 as the kxmlcore directory, after which it got renamed to WTF in 2006 as many more useful classes had been included there.

JavaScript files and stylesheets will now be editable by default in Web Inspector’s Resources Panel. Highlighting of SVG root elements with a custom viewbox has been fixed and Source Maps may now be defined inline.

An initial implementation of the image-set() CSS function landed in WebKit, as was proposed for the CSS Images Level 4 module last month. Mixed percentage and absolute combinations for calc() may now be used for masks, background positioning and image sizing, Hyatt is working on the new Multiple Column implementation and fieldsets won’t stretch to minimum intrinsic width anymore if an explicit width has been specified. Besides various other Flexible Box Layout changes, the flexing algorithm got updated.

The crossorigin attribute may now be specified on script elements, causing WebKit to apply the Cross-Origin Resource Sharing policy on script elements as well. Three DOM-mutating JavaScript errors have been updated to align with the DOM4 specification and WebSocket’s Sec-WebSocket-Accept may not occur multiple times anymore.

Other changes which occurred last week:

Finally, if you have interest in Adobe’s recent work on WebKit, they recently hosted a hackathon which yielded some interesting results. It’s a good read!

Read more (no comments) »

Battery Status API, many form changes and animVal for SVG

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

Exactly 1,234 patches landed in the Chromium repository last week, and 751 in WebKit’s, totaling up to 1,985 changes. Highlights include many form-related changes, the Battery Status API and performance improvements.

All signed and float Typed Arrays will now show up as normal arrays in Web Inspector. Taking heap snapshots should now be 12% faster and work is being done in preparation of supporting snippets in the Script Panel. A meta bug covering that work is available on WebKit’s Bugzilla.

CSS parsing now follows the specification when it unexpectedly runs into the end of a file and widths set on a column group won’t affect a column’s width anymore for fixed-layout tables. Three issues with the Flexible Box Layout implementation have been fixed, the “em” unit will be used correctly even when a :first-line pseudo-element changes the size and calc() can now mix percentages and absolute values for gradients and fonts.

The HTML5 meter and progress elements aren’t formassociated anymore, out-of-document radio buttons are now grouped when associated with a form and the form-attribute for labels had its behavior updated. The outer element is now labelable, while hidden input fields have lost that capability. Despite being reverted, support for color inputs seems to be really close for Chromium now.

Samsung has landed an implementation for the Battery Status API, to be enabled on the EFL port. As for Speech Recognition, stubs for WebCore’s controller and the client landed, as well as the SpeechRecognitionEvent part of the API. The MediaStream’s PeerConnection implementation has been deprecated as it’s moving towards a JSEP API. Meanwhile, Nikolas Zimmermann has been busy implementing proper animVal support for SVG.

Besides support for Mozilla’s FullScreen API, WebKit now also supports the very similar W3C Fullscreen API. The primary differences lie in capital usage for the methods and behavior while exiting fullscreen.

Other changes which occurred last week:

Two patches to keep an eye out for are work on making CSS Shaders compile on Chromium and a new image-set CSS property. That’s it again!

Read more (7 comments) »

Improved calc() support, Managed Mode and Flexible Box wrapping

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

1,728 changes found their way in the repositories last week, 1,013 for Chromium and 715 for WebKit. Highlights include improved support for -webkit-calc(), Number.isNan/isFinite support in v8 and progress on ES6’s modules.

Work is being started to implement one-click login to Chrome in the browser. In a nutshell, when Chrome isn’t connected to a Google Account and you log in to, for example, GMail, the browser will ask whether you want to synchronize your data to your profile. For now, it’s still disabled by default and is very likely to change. Also new in Chromium is work on a Managed Mode API, which will provide a way to pre-configure, lock and force a certain profile.

As for Web Inspector, not all percentage signs will attempt to be substituted anymore, the Network Panel will show application/json data again and inactive properties will be checked for vendor prefixes. The button allowing you to toggle the Timeline Panel’s overview mode has been moved and the Inspector has gotten more efficient at inspecting arrays containing large (~a million) elements.

WebKit’s implementation of the CSS calc() function is now able to mix absolute values and percentages for lengths. The Flexible Box Module’s flex-wrap property has been implemented, also for reversed wrapping, and margins won’t be double counted anymore when baseline alignment is used. Finally, multiple values are now accepted for the unicode-bidi CSS property, as an union with bidi-override and isolate is now valid.

Three changes to the JavaScript Speech API have landed, namely the SpeechRecognition(Alternative, Error, Result, ResultList) and the SpeechGrammar(List) interfaces. Support for SVG’s transform-origin attribute has been implemented, getComputedStyle’s result for the height property no longer takes intrinsic paddings into account and rendering of the <shadow> element is now implemented, defining the insertion point for older shadow sub-trees.

Within v8, the Object.is() and Number.isNan/isFinite methods have been implemented. Basic infrastructure for JavaScript ES6 modules is available, and the result of Math.sqrt() will now be consistent on Intel platforms.

Other changes which occurred last week:

Thanks for reading 🙂

Read more (3 comments) »

Viewport-relative CSS Units, Speech API and synchronized Extension Settings

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

Another 1,806 changes landed in both repositories last week, 755 for WebKit and 1,051 for Chromium. Highlights include new viewport-relative CSS units, work on a JavaScript Speech API and ..

Within Chromium, a new page on the New Tab Page has been added aiming to provide suggestions of pages to visit, which can be enabled through about:flags if you’d like to follow the progress. As for extensions, Settings will now be synchronized by default, the Font Settings API has received a setFontName method and a sample extension demonstrating the Download API’s download() method is now available.

Style declarations within Web Inspector can now be added anywhere in the declaration rather than just at the end. The DOM counter graphs aren’t experimental anymore, color pickers will be closed when either escape or enter gets pressed and timeline records will be opened when you click on a DOM counter graph. Furthermore, the Profiles panel has been enabled for Web Workers and suggestions will now be given for Watch Expressions.

WebKit now supports an intra-line character grid for Japanese text layouts. The initial value for the -webkit-flow-into CSS property has been changed to “none”, the display type for inline flexboxen is now supported and David Barton is continuing his work on improving MathML support, this time by fixing <msubsup> formatting. The :empty pseudo-selector won’t apply anymore when scripted additions occur, clipping behavior for a fieldset’s <legend> element has been fixed and the :scope pseudo-class is now supported as well.

The Shadow DOM’s ShadowRoot has been taught about the innerHTML property, and the <content> element will now behave like an unknown HTML element when it’s used outside of a Shadow DOM sub-tree. Microdata’s property collections gained the namedItem method and the NamedFlow object for the CSS Region implementation now has the getRegionsByContentNode method. SVG’s <use> element has been integrated with the Shadow Root implementation and work is being done to stop SVG from mutating CSS styles directly.

Joe Thomas landed support for three new CSS units: vw, vh and vmin. These units allow you to define sizes based on the viewport’s width, height or smallest of the two. Following an announcement on webkit-dev, Hans landed an initial patch towards implementing the JavaScript Speech API.

Other changes which occurred last week:

And that’ll be all again, cheers for reading.

Read more (1 comment) »