Posts Tagged ‘WebKit’

WebKit / Cappuccino / Google

Posted: August 25, 2011 in IT/Dev
Tags: , ,

WebKit framework, derived from KHTML and having initiated many of HTML5 features (thanks to iPhone’s WebKit implementation, that was also allowed by Core Animation), was launched 10 years ago by Apple. The first verison of Safari was released later in 2003, and the project became open source in 2005 (Google contributed, and it has been used by Nokia, Adobe and Palm/HP).

Creator of Cappuccino worked at Apple in the initial development team for iPhone’s WebKit version (the most impressive from 2007 to 2009). Google may then be interested by 280 North, that was bought by Motorola a year ago, and is now owned by Android/GWT editor.

As I had supposed, Google may use Cappuccino to replace Java as Android SDK. Besides solving the licensing problems, this solution could lure iOS developers, easing Cocoa to Android porting.
The new Google mobile OS would just have to be based on WebKit, in the same way Palm/HP’s WebOS does.

Sencha Animator for WebKit

Posted: October 28, 2010 in IT/Dev
Tags: , ,

Sencha (ExtJS) also presented an animation editor based on WebKit’s CSS Effects (animations, transitions, transforms, gradients), that seems more evolved than Adobe’s solution. As with ExtJS, a licence has to be purchased for commercial use (derived framework or application builder tool).

This article provides a brief history of the revolution brought by Webkit in web graphics. There is to note that CSS transforms and transitions, that appeared in WebKit in 2007, only supported GPU accelerating in the iPhone WebKit version (through Core Animation).
Google developed its own compositing engine for Chrome, Skia, inspired from OSX’s CoreGraphics, for Canvas 2D implementation under Windows and Linux (on OSX Google logically uses CoreGraphics). These two implementations do not manage yet GPU accelerating (Google would have to use CoreGraphics’s CGLayer on OSX for that), however Canvas 2D performance on Chrome under OSX is still ways behind Windows and Linux versions (that isn’t the case for CSS transitions/animations, based on CoreAnimation’s CALayer – and then the GPU).

Quartz has been using GPU accelerating for windows moving since first version of OSX, however content redraw (areas selection) was never optimized (for example text reflow when resizing a window) and is still mainly software based. QuartzGL (that was released in Leopard and that was initially available under Tiger under Quartz Extreme name) was intended to solve this problem, however it is still disabled by default (could lead to visual artifacts, and Apple is still working on resolution independance, that is tied).

Cappuccino team published an article about their choice of NativeHost (that they initially developed for Atlas) over Titanium, in order to provide a native execution mode (menus, window, open/save dialogs), through a transparent wrapper around WebKit engine (no code change required for the Cappuccino web application).

Through a recent WebKit nightly build, the Web Inspector provides many new features :

– styles inspection, contextual DOM editing (and display per chunks for nodes that contain many children),
– informations about HTTP redirect,
– global enabling/disabling of breakpoints, contextual popup (hover) for evaluating elements,
– new keyboard shortcuts,
– timeline that displays the duration of operations (loading, script execution, rendering), sorted/nested against event causation, and with syncrhonous operations being displayed as solid parts,
– audit page (reports unused resources, and provides hints about caching, etc.),
– dedicated page for the console.

Firefox will use Nitro

Posted: March 10, 2010 in IT/Dev
Tags: , , ,

Mozilla announced that Firefox will use a new javascript engine, JagerMonkey, based on WebKit/Safari’s Nitro engine. Recently they stated that Firefox will implement 2D accelerating through Direct2D on Windows, and OpenGL 2.1 on MacOSX and Linux (Safari on iPhone has been providing hadware accelerated graphics through CoreAnimation for years, and it was added to MacOSX desktop WebKit recently).

Adobe migrating to WebKit ?

Posted: December 10, 2009 in IT/Dev
Tags: ,

While Adobe AIR 2 solution is based both on Flash and WebKit, its Creative Suite will use WebKit as default for extensions development. Following Apple, Google, Nokia, and Palm, Adobe now understands that WebKit is the future of web applications, and prepares migrating.

To remember, Adobe made great softwares in early 90’s, on mac System 7 (exclusively, as they couldn’t do such things on Windows… 3.1), then bought Cyberstudio’s GoLive in late 90’s (was cancelled in 2008…), developed PDF (the basis of the MacOSX Quartz rendering/compositing engine since 2000), and SVG standard.

Later Adobe acquired Macromedia, starting the decline of Director and Freehand, and focused mainly on Flash (that Macromedia hadn’t originally targeted to application development solution – Flash has been used mainly for ads and animations, that is non pro level). They even put aside their own SVG !

An article about new features of WebKit’s Web Inspector is available. There is to note that most features aren’t really usefull when developping in Cappuccino, and setting a breakpoint using the Web Inspector doesn’t seem possible in ObjJ source code (as it is converted at runtime in js), I’ve then always used the debugger; instruction instead. Moreover I didn’t find the stop on exception option in Safari 4’s debugger (is said to be present in WebKit – and is also available in Firebug).

Implementation of Websocket (client side) started this Spring in Firefox, and this Summer (since late June) in WebKit. We could also read a document, WebKit Web Socket design doc (that was slightly revised early september), written by WebKit members working on this task (Fumitoshi Ukai, Yuzo Fujishima, etc.). References to many cpp sources files about Websocket implementation have emerged these last three months in the long WebKit development timeline.

In early September Yuzo pointed out (in a thread about requirement for an Apache module that manages Websocket) an experimental open source extension for Apache, mod_pywebsocket, that brings server-side Websocket implementation.

These elements are now listed in the latest changelogs of WebKit timeline (10/26), and test files are provided (start with pywebsocket/test, see also here and there).

At we can find anĀ article about Page Cache, improvements that are worked on, and Load/Unload Event Handlers.

WebGL support in WebKit

Posted: September 15, 2009 in Apple, IT/Dev
Tags: , , ,

WebGL support seems to have been added recently in WebKit (and additional tests).