nlw : he.lw* 7. - igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq...

24

Upload: others

Post on 02-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he
Page 2: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

State of the ${kit}(kit=WebKitGTK+)

Adrián PérezIgalia

Page 3: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

WebKit BasicsIncludes WebKitGTK+

Page 4: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

What is WebKit?

#webkitgtk #fosdem 4/24

Page 5: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

What is WebKitGTK+?

#webkitgtk #fosdem 5/24

Page 6: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

What is WebKit2?

#webkitgtk #fosdem 6/24

Page 7: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Who is using it?

#webkitgtk #fosdem 7/24

Page 8: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Previously on WebKitGTK+…Stable release 1.10.x

#webkitgtk #fosdem

Now enabled by default:

New features:

Boatloads of bugfixes.WebKit2GTK+ API augmented, nearing stabilization:

·GeolocationWebGLWeb Timing

---

·Accelerated compositingSmooth scrollingFull-screen modeHTML5 History APIWebAudioJSC LLint

------

··

To happen with GNOME 3.8, including Epiphany.WebKit1GTK+ API will still be maintained for a while.

--

8/24

Page 9: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

WebKit2 nowState of the art

#webkitgtk #fosdem

WebKit2 announced in April 2010Apple has released Safari using itCross-platform internal C API existsOne Two Qt browsers out there in the wild

WebKitGTK+ is the next to have support ☺

····

N9 browser: uses the C APISnowshoe: uses Qt5

--

·

9/24

Page 10: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

So… How's WebKit2GTK+ doing?The evil is in the details

Doing nicely:

#webkitgtk #fosdem

The basics have been working for quite a whileMost of the small details are already in place as of 1.10:

··

Context menusWeb inspectorFaviconsOn-disk cacheSpell checkingPrinting supportDocumentation, GI annotations…

-------

10/24

Page 11: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

WebKit2 changes(For developers)

Page 12: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

WebKit1GTK+Goal: same API for WebKit1GTK+ and WebKit2GTK+

#webkitgtk #fosdem

GtkWidget *wkt = webkit_web_view_new ();WebKitWebSettings *settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (wkt))/* Configure using the the “settings” object */GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_container_add (GTK_CONTAINER (win), wkt);webkit_web_view_load_uri (WEBKIT_WEB_VIEW (wkt), "http://fosdem.org");gtk_widget_show_all (win);gtk_main ();

C

12/24

Page 13: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

WebKit2GTK+Goal: same API for WebKit1GTK+ and WebKit2GTK+

#webkitgtk #fosdem

GtkWidget *wkt = webkit_web_view_new ();WebKitSettings *settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (wkt))/* Configure using the the “settings” object */GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_container_add (GTK_CONTAINER (win), wkt);webkit_web_view_load_uri (WEBKIT_WEB_VIEW (wkt), "http://fosdem.org");gtk_widget_show_all (win);gtk_main ();

C

There are some changes, though!For simple uses changes are none or minimalStart porting your application now!

···

13/24

Page 14: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Differences are small(–ish)

#webkitgtk #fosdem

Some classes renamed (mostly removing “Web”):

Some new classes (mostly new fatures):

Some classes gone away (no longer needed, or missing):

·WebKitWebSettings → WebKitSettingsWebKitWebPlugin → WebKitPluginWebKitWebHistoryItem → WebKitBackForwardListItem…

----

·WebKitContextMenu

WebKitSecurityManager

---

·WebKitWebPluginDatabase

WebKitWebFrame

---

14/24

Page 15: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

What next?A sneak peek

Page 16: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

To the future… and beyondSlicker media controls

New media controls

Old media controls

#webkitgtk #fosdem 16/24

Page 17: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

To the future… and beyondWebKitGTK+ on Wayland with WebGL

#webkitgtk #fosdem

0:51

17/24

Page 18: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

To the future… and beyondEpiphany overview

Epiphany overview

#webkitgtk #fosdem 18/24

Page 19: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

To the future… and beyondEpiphany “UXperiments”

#webkitgtk #fosdem

0:00

19/24

Page 20: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

To the future… and beyondAnd more!

#webkitgtk #fosdem

Text rendering with HarfbuzzGObject Introspection for WebKit2GTK+GStreamer 1.0 for multimediaHW accelerated video renderingWebP and Opus supportNative notificationsWeb applicationsPrint previewWin32 (printing, IPC, etc.)…${FEATURE}

···········

20/24

Page 21: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Wrapping upConclusions, everybody ♥ these

Page 22: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Conclusionstl;dr

#webkitgtk #fosdem

Mature port, widely usedReleased regularly, every ~6 monthsWell maintainedUseable for developing serious browsersScales from desktop to embeddedWebKit2GTK+ API nearing completion, stabilization approaching

WebKit1GTK+ API still being maintained

······

Beta since 3.6Epiphany adopting it for 3.8

--

·New features and improvements for WebKit2GTK+ first-

22/24

Page 23: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

ContributingEvery single bit matters

#webkitgtk #fosdem

bugs.webkit.orgwebkitgtk.orgwebkit.org

···

Mailing lists:·[email protected]

[email protected]

--

IRC channels on irc.freenode.net:·#webkitgtk+

#webkit

--

23/24

Page 24: NLW : HE.LW* 7. - Igalia · 3uhylrx vo\rq : he. lw* 7. 6wdeohuhohdvh [z he nlwjwn ir vg hp 1 r z hq de ohg e \g hidx ow 1 hz ihdwx uhv % r dwor dg vr ie x jil[hv : he

Thank You!…and enjoy the rest of FOSDEM

twitter @aperezdcwww perezdecastro.orggithub github.com/aperezdc