State and Future of Qt Webkit Allan Sandfeld Jensen Digia Germany - - PowerPoint PPT Presentation

state and future of qt webkit
SMART_READER_LITE
LIVE PREVIEW

State and Future of Qt Webkit Allan Sandfeld Jensen Digia Germany - - PowerPoint PPT Presentation

State and Future of Qt Webkit Allan Sandfeld Jensen Digia Germany San Francisco, 8th of November 2013 Who am I? Allan Sandfeld Jensen Living in Berlin and working on Qt WebKit for Digia Hired by Nokia in 2011 and transfered to Digia in 2012


slide-1
SLIDE 1

State and Future of Qt Webkit

Allan Sandfeld Jensen Digia Germany

San Francisco, 8th of November 2013

slide-2
SLIDE 2

Who am I?

Allan Sandfeld Jensen Living in Berlin and working on Qt WebKit for Digia Hired by Nokia in 2011 and transfered to Digia in 2012 Maintainer of Qt WebKit since last month Been active in KDE since 2001 Originally worked on aRts, aKode and Phonon Worked on KHTML from 2004 to 200?

slide-3
SLIDE 3

Outline

State of Qt WebKit Overview of Qt WebKit New features in Qt WebKit Optional features in Qt WebKit Limitations and future of Qt WebKit

slide-4
SLIDE 4

Recent history in WebKit

Qt WebKit was developed upstream Apple being Apple Google left in April Digia was left maintaining Windows and Android (Apple does not even support the OS X versions Qt does) Digia will make new Chromium based Qt WebEngine Qt WebKit left upstream last week

slide-5
SLIDE 5

State of WebKit

Contributors and commits per month halved

slide-6
SLIDE 6

State of Qt WebKit

What is going to happen now, is Qt WebKit dead?

slide-7
SLIDE 7

Future of Qt WebKit

Qt WebKit in 5.2 is based on a new branch of WebKit trunk The diff is well over 2 millions lines: Mega merge The Qt port is beinghas been removed from WebKit trunk No new branches of WebKit trunk ...

slide-8
SLIDE 8

Future of Qt WebKit

Continued support of Qt WebKit in Qt 5.x Best effort compatibility in Qt WebEngine. Compatibility will likely be best for the QQuick2 API Qt WebKit likely to be fully or partially deprecated after Qt 5.3 Some features of the Qt WebKit API will not be possible in Qt WebEngine

slide-9
SLIDE 9

Overview of Qt WebKit Versions

Qt WebKit 2.2 (Qt 4.8)

Based on WebKit from September 2011

Qt 5.0

Based on WebKit from November 2012 (r136242)

Qt WebKit 2.3

Unofficial backport for Qt 4.8 As close to the Qt 5.0/5.1 branch as possible

Qt 5.1

Based on WebKit from November 2012 (r136242) Same branch as Qt 5.0, but with extra cherries on top

Qt 5.2

Based on WebKit from July 2013 (r153112)

slide-10
SLIDE 10

Overview of Qt WebKit APIs

QWebView

WebKit1 (single process API) QWidget API

QGraphicsWebView

WebKit1 (single process API) QGraphicsScene API OpenGL acceleration possible

QDeclarativeWebView QQuickWebView

WebKit2 (multi process API) QQuick2 API Always OpenGL accelerated

slide-11
SLIDE 11

New features in Qt WebKit

JavaScript JIT/LLInt

MIPS/SH4 : LLInt, JIT, JIT DFG Windows 64 : JIT x87 (x86 FP minus SSE2) : LLInt

JavaScript Garbage Collection

Incremental sweeper Activity triggered Parallel threaded

Font rendering

Kerning by default. For instance: TeaToolsVAV, Web Fonts: WOFF support, better SVG fonts.

slide-12
SLIDE 12

New features in Qt WebKit

Canvas Path Object Page Visibility API

New API for visibility aware web apps.

Link prefetch

<link rel="prefetch" href="www.example.com">

Mouseenter and mouseleave events

Better for hover effects than mouseover mouseout.

Web Notifications Geo Location (depends on new QtPositioning module, and geoclue on Linux) CSS compositing and background-blend-mode. Example

slide-13
SLIDE 13

New features in Qt WebKit

CSS Image-rendering quality

image-rendering: auto; image-rendering: optimizeQuality; image-rendering: optimizeSpeed;

CSS Filters and Shaders: Adobe CSS Filter Lab CSS Regions: Region example CSS Grid, Shapes, Multi column and improved animations

slide-14
SLIDE 14

Optional features in Qt WebKit

How can I tell which features are enabled? Listed when running qmake You can enable disabled features using WEBKIT_CONFIG You can also edit qtwebkit/qmake/mkspecs/features/features.pri

slide-15
SLIDE 15

Optional features in Qt WebKit

CSS Text Decoration 3

WEBKIT_CONFIG+=css3_text

  • webkit-text-decoration-style: wavy
  • webkit-text-decoration-style: double

MathML

WEBKIT_CONFIG+=mathml

σ = 1 N

N

i = 1(xi − μ )2.

Download attribute

WEBKIT_CONFIG+=download_attribute

slide-16
SLIDE 16

Optional features in Qt WebKit

CSS Variables

WEBKIT_CONFIG+=css_variables

Shadow DOM API

WEBKIT_CONFIG+=shadow_dom

WebAudio (GStreamer only)

WEBKIT_CONFIG+=web_audio

MediaStream (GStreamer only, some hacking required)

WEBKIT_CONFIG+=media_stream

HTML5 Video text track (subtitles, captions, etc.

WEBKIT_CONFIG+=video_track

Help out, and you might see some of these features in Qt 5.3

slide-17
SLIDE 17

Limitations in Qt WebKit

QML2 on embedded, and non-X11 Linux Plugins in WebKit2 on non-Linux LLInt and DFG on Windows 64 OpenGL acceleration requires specific setup or WebKit2 Currently no Android support

iOS support is not possible either, but that will be the same for Qt WebEngine

slide-18
SLIDE 18

Unique features of Qt WebKit

Single process Access to JavaScript objects (for now) Synchronous access to JavaScript objects Synchronous access to web engine internals Synchronous access from JavaScript to QObjects Replaceable QNetworkAccessManager (for now) Low memory consumption A feature complete API (for now) JIT support for less common architectures

slide-19
SLIDE 19

What do you need?

Mailing-list: webkit-qt@lists.webkit.org Speaker: Allan Sandfeld Jensen <allan.jensen@digia.com>