By Adrian Perez de Castro.
In the session we will talk about WebKitGTK+ new release and plans. The new WebKit2 API is going to be stable very soon, we will explain the differences, new additions and current situation of the API in more detail and we will show how to embed and use the new widget. We also will explain the multiple features we have added in the last year (accelerated compositing, gstreamer 1.0, networking, etc.) and the roadmap for the next year. Also as usual we will add nice demos.
The talk should be interesting for embedders because new WebKit2GTK+ API should be used in the near future.
8. Previously on WebKitGTK+…
Stable release 1.10.x
· Now enabled by default:
- Geolocation
- WebGL
- Web Timing
· New features:
- Accelerated compositing
-
Smooth scrolling
Full-screen mode
HTML5 History API
WebAudio
- JSC LLint
· Boatloads of bugfixes.
· WebKit2GTK+ API augmented, nearing stabilization:
- To happen
# webkitgtk # fosdem with GNOME 3.8, including Epiphany.
8/24
9. WebKit2 now
State of the art
·
·
·
·
WebKit2 announced in April 2010
Apple has released Safari using it
Cross-platform internal C API exists
One Two Qt browsers out there in the wild
- N9 browser: uses the C API
- Snowshoe: uses Qt5
· WebKitGTK+ is the next to have support ☺
# webkitgtk # fosdem
9/24
10. So… How's WebKit2GTK+ doing?
The evil is in the details
Doing nicely:
· The basics have been working for quite a while
· Most of the small details are already in place as of 1.10:
- Context menus
- Web inspector
- Favicons
- On-disk cache
- Spell checking
- Printing support
- Documentation, GI annotations…
# webkitgtk # fosdem
10/24
12. WebKit1GTK+
Goal: same API for WebKit1GTK+ and WebKit2GTK+
Gkigt*k =wbi_e_iwnw(;
tWde wt
ektwbve_e )
WbiWbetns*etns=wbi_e_iwgtstig (EKTWBVE (k)
eKteStig stig
ektwbve_e_etns WBI_E_IW wt)
/ Cniueuigtete“etns ojc *
* ofgr sn h h stig” bet /
Gkigt*i =gkwno_e (T_IDWTPEE)
tWde wn
t_idwnw GKWNO_OLVL;
gkcnanrad(T_OTIE (i) wt;
t_otie_d GKCNANR wn, k)
wbi_e_iwla_r (EKTWBVE (k) "tp/fse.r";
ektwbve_odui WBI_E_IW wt, ht:/odmog)
gkwde_hwal(i)
t_igtso_l wn;
gkmi (;
t_an )
# webkitgtk # fosdem
C
12/24
13. WebKit2GTK+
Goal: same API for WebKit1GTK+ and WebKit2GTK+
Gkigt*k =wbi_e_iwnw(;
tWde wt
ektwbve_e )
WbiStig *etns=wbi_e_iwgtstig (EKTWBVE (k)
eKtetns stig
ektwbve_e_etns WBI_E_IW wt)
/ Cniueuigtete“etns ojc *
* ofgr sn h h stig” bet /
Gkigt*i =gkwno_e (T_IDWTPEE)
tWde wn
t_idwnw GKWNO_OLVL;
gkcnanrad(T_OTIE (i) wt;
t_otie_d GKCNANR wn, k)
wbi_e_iwla_r (EKTWBVE (k) "tp/fse.r";
ektwbve_odui WBI_E_IW wt, ht:/odmog)
gkwde_hwal(i)
t_igtso_l wn;
gkmi (;
t_an )
C
· There are some changes, though!
· For simple uses changes are none or minimal
· Start porting your application now!
# webkitgtk # fosdem
13/24
14. Differences are small(–ish)
· Some classes renamed (mostly removing “Web”):
- W b i W b e t n s→ W b i S t i g
eKteStig
eKtetns
- W b i W b l g n→ W b i P u i
eKtePui
eKtlgn
- WbiWbitrIe → WbiBcFradittm
eKteHsoytm
eKtakowrLsIe
- …
· Some new classes (mostly new fatures):
- WbiCneteu
eKtotxMn
- WbiScrtMngr
eKteuiyaae
- …
· Some classes gone away (no longer needed, or missing):
- WbiWblgnaaae
eKtePuiDtbs
- WbiWbrm
eKteFae
- …
# webkitgtk # fosdem
14/24
16. To the future… and beyond
Slicker media controls
New media controls
Old media controls
# webkitgtk # fosdem
16/24
17. To the future… and beyond
WebKitGTK+ on Wayland with WebGL
0:51
# webkitgtk # fosdem
17/24
18. To the future… and beyond
Epiphany overview
Epiphany overview
# webkitgtk # fosdem
18/24
19. To the future… and beyond
Epiphany “UXperiments”
0:00
# webkitgtk # fosdem
19/24
20. To the future… and beyond
And more!
· Text rendering with Harfbuzz
· GObject Introspection for WebKit2GTK+
· GStreamer 1.0 for multimedia
· HW accelerated video rendering
· WebP and Opus support
· Native notifications
· Web applications
· Print preview
· Win32 (printing, IPC, etc.)
· …
· ${FEATURE}
# webkitgtk # fosdem
20/24
22. Conclusions
tl;dr
· Mature port, widely used
· Released regularly, every ~6 months
· Well maintained
· Useable for developing serious browsers
· Scales from desktop to embedded
· WebKit2GTK+ API nearing completion, stabilization approaching
- Beta since 3.6
- Epiphany adopting it for 3.8
· WebKit1GTK+ API still being maintained
- New features and improvements for WebKit2GTK+ first
# webkitgtk # fosdem
22/24
23. Contributing
Every single bit matters
· bugs.webkit.org
· webkitgtk.org
· webkit.org
· Mailing lists:
- wbi-t@it.ektog
ektgklsswbi.r
- wbi-e@it.ektog
ektdvlsswbi.r
· IRC channels on i c f e n d . e :
r.reoent
- #ektt+
wbigk
- #ekt
wbi
# webkitgtk # fosdem
23/24
24. Thank You!
…and enjoy the rest of FOSDEM
twitter @aperezdc
www perezdecastro.org
github github.com/aperezdc