web content in GNOME future visions using WebKit to enhance the desktop July 2008 Alp Toker GUADEC, Istanbul Are we there yet? Applications moving towards hybrid desktop/web technologies A lighter and more integrated web toolchain for GTK+ enables – Incremental enhancements to existing applications – Entirely new approaches to application design GNOME 2.24 shaping up as a leader in web/desktop integration WebKit gives us the tools to go forward JavaScriptCore WebCore portable C API content engine WebKit public API applications ... C, C++, C#, C++, Vala, Python, Perl WebKit language bindings Vala bindings Language binding features – Maintained by Jürg Billeter 1 Python bindings WebKit widget – Created by the OLPC team and related classes – Maintained by Jan Alonzo 2 C#/CLR bindings DOM binding – Also features a JS bridge Perl bindings 3 JavaScript runtime – Available from CPAN bridge gtkmm Web standards and features Full-featured SVG implementation HTML5 parser/renderer HTML5 canvas Fast JS/AJAX Strong CSS standards support CSS extensions for implicit animations and transformations Offline Web application support Introducing WebView Write a browser in a dozen lines import gtk import webkit view = webkit.WebView() sw = gtk.ScrolledWindow() sw.add(view) win = gtk.Window(gtk.WINDOW_TOPLEVEL) win.add(sw) win.show_all() view.open("http://planet.gnome.org/") gtk.main() WebView modes: Scrollable Packed in a GtkScrolledWindow – Provides a full-featured browser engine for document display and editing WebView modes: Packed Packed directly into the UI – Acts as an integral part of the surrounding GTK+ UI – Place Web content in amongst GTK+ widgets Web content / GTK+ size request interop (landing soon) Develop and design in parallel Let programmers work on the core ● Let designers produce UI elements using web skills ● When to use a WebView When do you use straight GTK+? When does Web content enrich the experience? Great power; great responsibility WebView isn't the right tool for every job – Continue to use GtkTextView for light viewing and editing – Use GtkTreeView and GtkIconView unless you really need a custom look “The idea was that anybody who used the web would have a space where they could write and so the first browser was an editor, it was a writer as well as a reader.” Tim Berners-Lee 10/50
Description: