Top Banner
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, Silvia Cho [email protected] Browsers for the automotive: an introduction to WebKit for Wayland
26

A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Jan 27, 2017

Download

Technology

Igalia
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

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,

Silvia [email protected]

Browsers for the automotive: an introduction to WebKit for Wayland

Page 2: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Igalia and WebKit/Chromium

● Open source consultancy founded in 2001

● Top contributor to upstream WebKit and Chromium

● Working with many industry actors: tablets, phones, IVI, smart TV, set-top boxes, and smart home

Page 3: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Outline

➢ Browser requirements for the automotive➢ A bit of history ➢ Selecting the best alternatives

Introduction to WebKit for Wayland➢ Conclusions

Page 4: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Browser requirements for the automotive

Page 5: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Requirements

● Browser as an application and as a runtime: - User Experience: specific standards and UI modification- Portability: support of specific hardware boards (performance optimization)- OTA updates

● Browser as an application:- Functionalities

● Browser as a run time:

- Application manager integration

Page 6: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Available alternatives

1) Licensing a proprietary solution

2) Deriving a new browser from the main open

source browser technologies:

- Chromium- WebKit

(Firefox: Mozilla removed support in their engine for third party browser developers)

Page 7: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Understanding the main alternatives

● Decision between Chromium and WebKit

● Chromium and WebKit share a lot of history, design and code

● Learning the history of WebKit and Chromium improves the understanding of the pros and cons of each solution

Page 8: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

A bit of history

Page 9: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

WebKit Project History

2001 2005 20092005 2011 2013 2014

Fork of KHTML & KJS

Open sourced as WebKit

Chromium upstream

WebKit 2: big architectural change

Blink: Google departs

WebKit for Wayland

Page 10: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

App (host process)

Webcore

V8

Chrome-WebKit

WebKit

Application

WebKit

Webcore

JS Engine

WebKit1

App (render process)

Application

WebKit (UI process)

Webcore

JS Engine

WebKit2

WebKit (web process)

WebKit1 vs Chrome-WebKit vs WebKit2 (2012)

Page 11: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Google’s Departure and Blink

● Google announced on April 3rd, 2013 that they would fork WebKit and create Blink

● Motivations according to Google:They were not using WebKit2 anyway

Easier to do ambitious architectural changes after the fork

Simplification of the codebase in Blink

● Tension between Apple and Google before the forkArchitectural decisions: Network Process

Code governance: Owners need to approve some core changes

● Big shock within the WebKit community

Page 12: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Current status in consumer industry

● Early consequences:

- Many WebKit contributors chose to migrate their projects to Blink/Chromium and created Crosswalk, QtWebEngine, etc.

- Some WebKit ports became deprecated

● Ports have been removed. Many libraries became default inside Chromium (SKIA, V8, FFMPEG, AURA, etc)

● Because of porting and maintenance challenges, the adoption of Chromium in consumer industry has been slower than expected.

● Recent trend towards more use of Chromium

Page 13: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Selecting the best alternative: Introduction to WebKit for Wayland

Page 14: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

● Chromium alternatives:

- Chromium directly

- Chromium Embedded Framework (CEF)

- QtWebEngine

- Crosswalk

Selecting the alternatives

Page 15: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

App (host process)

Webcore

V8

Chrome-WebKit

WebKit

Application

WebKit

Webcore

JS Engine

WebKit1

App (render process)

Application

WebKit (UI process)

Webcore

JS Engine

WebKit2

WebKit (web process)

WebKit1 vs Chrome-WebKit vs WebKit2 (2012)

Page 16: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Chromium

● Architecture designed primarily for browser application development

- Latest HTML5 specs implementations

- Content API changing constantly; embedding APIs is unstable

- Wayland support is not finished

- Ports have been removed and many libraries became default

- FFMPEG is the default multimedia framework; AURA is the default graphics toolkit. If changes or replacements are needed, it will require big changes to the source base.

Page 17: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

● Chromium alternatives:

- Chromium directly

- Chromium Embedded Framework (CEF)

- QtWebEngine

- Crosswalk

● WebKit alternatives:

- QtWebKit (legacy, efforts to revive it )

- WebKitEFL (maintenance mode)

- WebKitGTK+ (active)

- WebKit for Wayland (active)

Selecting the alternatives

Page 18: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

WebKit for Wayland

● Designed for embedded systems● It does not depend on a toolkit anymore;

it doesn’t necessarily need Wayland● Output can be embedded into a separate

OpenGL scene or into a toolkit (e.g., Qt)● Output can be displayed directly via the window

or display manager● Less memory footprint

Page 19: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

WebKit for Wayland

● It is hardware-accelerated which relies on EGL and OpenGL ES

● It abstracts underlying rendering and presentation interfaces

● Flexible architecture - easy to plug in components (e.g. multimedia framework)

- possible to modify the whole stack without diverging much from the latest upstream version

Page 20: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

WebKit for Wayland

Things to do: ● Upstream remaining work (end of 2016)● Optimize on specific hardware● Implement custom UIs● Implement latest HTML5 specs (if needed)

Conclusion: ● From technical POV in what regards to an embedded

environment, WebKit for Wayland is a great choice

Page 21: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Chromium: things to consider

● Architecture designed primarily for browser application development

- Latest HTML5 specs implementations

- Content API changing constantly; embedding APIs is unstable

- Wayland support is not finished

- Ports have been removed and many libraries became default

- FFMPEG is the default multimedia framework; AURA is the default graphics toolkit. If changes or replacements are needed, it will require big changes to the source base. Forking is one way to have control of the code for your needs.

- Forks have a natural maintenance burden risk, given that upstream Chromium evolves very fast.

● But it can still be used for the embedded environment if following issues are properly addressed:

Page 22: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Chromium: things to do

● Create a stable API (or use CEF)

● Finish Ozone-Wayland support

● Integrate native multimedia framework

● Set up a proper branching strategy for a possible Chromium fork

● Optimize on specific hardware

● Implement custom UIs

Page 23: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Conclusions

Page 24: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Conclusions

● Both WebKit for Wayland and Chromium are active open source projects in terms of code and contributors

● Each solution has a different design purpose

Apples vs. Oranges

- Wrong question: which is better?

- Correct question: what needs do I have?

● It is important to be aware of the implications of the pending issues and set up proper strategies to cope them

Page 25: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Thank you!

Silvia Cho ([email protected])

Page 26: A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)