SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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
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
Outline
➢ Browser requirements for the automotive
➢ A bit of history
➢ Selecting the best alternatives
Introduction to WebKit for Wayland
➢ Conclusions
Browser requirements for the
automotive
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
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)
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
A bit of history
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
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)
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
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
Selecting the best alternative:
Introduction to WebKit for Wayland
●
Chromium alternatives:
- Chromium directly
- Chromium Embedded Framework (CEF)
- QtWebEngine
- Crosswalk
Selecting the alternatives
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)
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.
● 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
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
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
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
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:
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
Conclusions
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
Thank you!
Silvia Cho (mscho@igalia.com)
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive Linux Summit 2016)

Mais conteúdo relacionado

Mais procurados

WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
Igalia
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
philn2
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
Joone Hur
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ Project
Joone Hur
 

Mais procurados (20)

HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium Ozone
 
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
Waylandifying Chromium: From downstream to shipping (ELCE 2020)Waylandifying Chromium: From downstream to shipping (ELCE 2020)
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?
 
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
 
Ewebkit basic (Web rendering enging of EFL)
Ewebkit basic (Web rendering enging of EFL)Ewebkit basic (Web rendering enging of EFL)
Ewebkit basic (Web rendering enging of EFL)
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
 
Multimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/futureMultimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/future
 
WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blocking
 
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAM
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDK
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ Project
 

Destaque

Chrom works introduction
Chrom works   introductionChrom works   introduction
Chrom works introduction
Soo Kim
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
Gwang Yoon Hwang
 
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
Igalia
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit Rendering
Ariya Hidayat
 

Destaque (20)

Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
 
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
 
Compiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitCompiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKit
 
Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)
Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)
Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)
 
Chrom works introduction
Chrom works   introductionChrom works   introduction
Chrom works introduction
 
Qt & Webkit
Qt & WebkitQt & Webkit
Qt & Webkit
 
Android chromium web view
Android chromium web viewAndroid chromium web view
Android chromium web view
 
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
 
How Browser Works?
How Browser Works?How Browser Works?
How Browser Works?
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
 
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
Recent Improvements in Epiphany and WebKitGTK+ (GUADEC 2015)
 
Chromium vs. Firefox
Chromium vs. FirefoxChromium vs. Firefox
Chromium vs. Firefox
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overview
 
Googleツールを使いこなして世界中の仲間と楽しく仕事を進めよう【初心者向け】
Googleツールを使いこなして世界中の仲間と楽しく仕事を進めよう【初心者向け】Googleツールを使いこなして世界中の仲間と楽しく仕事を進めよう【初心者向け】
Googleツールを使いこなして世界中の仲間と楽しく仕事を進めよう【初心者向け】
 
How browser work
How browser workHow browser work
How browser work
 
Fontconfigことはじめ
FontconfigことはじめFontconfigことはじめ
Fontconfigことはじめ
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Web browser architecture
Web browser architectureWeb browser architecture
Web browser architecture
 
Architecture of the Web browser
Architecture of the Web browserArchitecture of the Web browser
Architecture of the Web browser
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit Rendering
 

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

Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
Igalia
 

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

Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
 
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
 
XTech May 2008
XTech May 2008XTech May 2008
XTech May 2008
 
GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Gwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca TosiGwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca Tosi
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plans
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
2014 HTML5 총정리
2014 HTML5 총정리2014 HTML5 총정리
2014 HTML5 총정리
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Serving QML applications over the network
Serving QML applications over the networkServing QML applications over the network
Serving QML applications over the network
 
Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - Overview
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...
 
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
QtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtQtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with Qt
 

Mais de Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

Mais de Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

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

  • 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
  • 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
  • 3. Outline ➢ Browser requirements for the automotive ➢ A bit of history ➢ Selecting the best alternatives Introduction to WebKit for Wayland ➢ Conclusions
  • 4. Browser requirements for the automotive
  • 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
  • 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)
  • 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
  • 8. A bit of history
  • 9. 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
  • 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)
  • 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
  • 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
  • 13. Selecting the best alternative: Introduction to WebKit for Wayland
  • 14. ● Chromium alternatives: - Chromium directly - Chromium Embedded Framework (CEF) - QtWebEngine - Crosswalk Selecting the alternatives
  • 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)
  • 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.
  • 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
  • 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 or display manager ● Less memory footprint
  • 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
  • 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
  • 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:
  • 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
  • 24. 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
  • 25. Thank you! Silvia Cho (mscho@igalia.com)