gparamspec *pspec; browser space - igalia · graphics & multimedia: mesa, gstreamer ......

25
static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Jacobo Aragunde Pérez blogs.igalia.com/jaragunde Update on the open source browser space

Upload: others

Post on 02-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

static void_f_do_barnacle_install_properties(GObjectClass

*gobject_class){

GParamSpec *pspec;

/* Party code attribute */ pspec = g_param_spec_uint64

(F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code",

0, G_MAXUINT64,

G_MAXUINT64 /* default value */,

G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE);

g_object_class_install_property (gobject_class,

F_DO_BARNACLE_PROP_CODE,

Jacobo Aragunde Pérezblogs.igalia.com/jaragunde

Update on the open source browser space

Page 2: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

● Open Source experts and consultants● 15 years of experience● Important contributions to:

● Client-side web technologies: WebKit, Blink/Chromium, Servo● Graphics & Multimedia: Mesa, GStreamer● Compilers: V8, JavaScriptCore, SpiderMonkey, Guile● Software-defined networking: Snabb● ...

Page 3: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Outline

● Open source browser technologies● Wayland support in Chromium● WPE: support for Wayland and other backends in WebKit● Other options

Page 4: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Open source browser technologies

Page 5: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Open source web platforms

● Mozilla: Gecko and Servo● WebKit family: OS X/iOS, WebKitGTK+, WPE● Chromium and related projects

Page 6: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Mozilla

● Gecko engine– Powers the Firefox browser– Embedding not officially supported

● Servo: next generation engine– Designed for memory-safety, parallelism, embedding– New set of tools and technologies: Rust– Currently under heavy development

Page 7: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WebKit

● From a simplified point of view, WebKit is structured this way:

● WebKit: thin layer to link against from the applications

● WebCore: rendering, layout, network access, multimedia, accessibility support...

● JS Engine: the JavaScript engine. JavaScriptCore by default.

● platform: platform-specific hooks to implement generic algorithms

Page 8: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WebKit ports

● Each port is an engine implementation with a specific set of technologies

● Platform bits: network, graphics, multimedia● Specific API

● Many ports have existed: OS X and iOS, WebKitGTK+, EWebKit (EFL), QtWebKit, Chrome/Chromium..

● Currently official ports: OS X/iOS, WebKitGTK+, WPE (in process)

Page 9: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Chromium

● Vertical solution, from low-level graphics to UX● Engineered to power Chrome and Chrome OS

● Embedding, portability use cases are secondary

● Designed to minimize external dependencies● External deps are managed by the project build system● Versions pinned, included in the build process● In general, not designed to exchange subsystems

Page 10: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Chromium ecosystem

● External projects filling the gaps● CEF: Chromium Embedded Framework

● Embed web content in applications● Hybrid applications

● Electron● Web application runtime

Page 11: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Wayland support in Chromium

Page 12: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Ozone-Wayland project

● Most complete Wayland implementation yet● Developed mainly by Intel● Downstream project at github● Currently in maintenance mode

● No more active development● Latest supported version is 53

Page 13: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Upstream Wayland implementation

● Preliminary state● Following Chromium master● Not high priority at Google → Igalia taking the lead of the

implementation● Framed in a bigger effort to re-architect Chromium

Page 14: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Upstream Wayland implementation

● Why not merge Intel’s code upstream?● Blocker: architecture differences

– Intel’s code doesn’t align with Chromium mid-term architecture plans

● Approach: implement basic bits following new architecture, then migrate features and code as possible

Page 15: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Chromium architecture now

Source. Copyright © Google Inc. 2017

Page 16: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Long-term plan: service-based

Source. Copyright © Google Inc. 2017

Page 17: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WPE: support for Wayland and other backends in WebKit

Page 18: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WPE

● Web Platform for Embedded● Previously known as WebKit For Wayland

● Designed for simplicity and performance● Supports Wayland and also other backends● Great performance in low-end hardware● Currently in review process to become an official WebKit port

Page 19: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WPE use cases

● Strong multimedia capabilities● Very lightweight, low hardware requirements

● Raspberry Pi 1/zero

● Well received in set-top-box market● Official part of RDK stack

Page 20: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

WPE backends

● Backends use platform-specific libraries to implement drawing and window management

● Can be independently developed

Page 21: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Other options

Page 22: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Other options with Wayland support

● WebKitGTK+● Wayland through the GTK+ toolkit support

● QtWebEngine● Chromium-based● Wayland through the Qt toolkit support

Page 23: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Conclusions

● Chromium● Full-featured browser and fast-paced development● Increased cost of maintenance

● Intel’s Ozone-Wayland● Available for short-term goals● Transition to upstream Chromium implementation as soon as it’s ready

● QtWebEngine● Ideal to integrate with Qt applications● Slower upgrade pace, linked to Qt releases

Page 24: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

Conclusions

● WPE● Lightweight● Customizable graphic backends● Stable APIs, designed for third-parties to build products upon ● No browser features, it’s a web engine

● WebKitGTK+● Stable and also lightweight● Availability linked to the GTK+ toolkit

Page 25: GParamSpec *pspec; browser space - Igalia · Graphics & Multimedia: Mesa, GStreamer ... Currently in review process to become an official WebKit port. WPE use cases ... Wayland through

This work is licensed under a Creative Commons Attribution-Share Alike 4.0 (CC BY-SA 4.0)GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countriesGENIVI logo © GENIVI Alliance 2017.Contents © Igalia, S.L. 2017.