to WebKit for Wayland G_MAXUINT64 /* default value */, - - PowerPoint PPT Presentation

to webkit for wayland
SMART_READER_LITE
LIVE PREVIEW

to WebKit for Wayland G_MAXUINT64 /* default value */, - - PowerPoint PPT Presentation

static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { Browsers for the GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 automotive: an introduction (F_DO_BARNACLE_CODE, "Barnacle


slide-1
SLIDE 1

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

mscho@igalia.com

Browsers for the automotive: an introduction to WebKit for Wayland

slide-2
SLIDE 2

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

slide-3
SLIDE 3

Outline

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

Introduction to WebKit for Wayland

➢ Conclusions

slide-4
SLIDE 4

Browser requirements for the automotive

slide-5
SLIDE 5

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
slide-6
SLIDE 6

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)

slide-7
SLIDE 7

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

slide-8
SLIDE 8

A bit of history

slide-9
SLIDE 9

WebKit Project History

2001 2005 2009 2005 2011 2013 2014

Fork of KHTML & KJS Open sourced as WebKit Chromium upstream WebKit 2: big architectural change Blink: Google departs WebKit for Wayland

slide-10
SLIDE 10

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)

slide-11
SLIDE 11

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 fork

Architectural decisions: Network Process Code governance: Owners need to approve some core changes

  • Big shock within the WebKit community
slide-12
SLIDE 12

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
slide-13
SLIDE 13

Selecting the best alternative: Introduction to WebKit for Wayland

slide-14
SLIDE 14
  • Chromium alternatives:
  • Chromium directly
  • Chromium Embedded Framework (CEF)
  • QtWebEngine
  • Crosswalk

Selecting the alternatives

slide-15
SLIDE 15

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)

slide-16
SLIDE 16

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.

slide-17
SLIDE 17
  • 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

slide-18
SLIDE 18

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
  • r display manager
  • Less memory footprint
slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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:

slide-22
SLIDE 22

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
slide-23
SLIDE 23

Conclusions

slide-24
SLIDE 24

Conclusions

  • Both WebKit for Wayland and Chromium are active
  • pen 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

slide-25
SLIDE 25

Thank you!

Silvia Cho (mscho@igalia.com)

slide-26
SLIDE 26