SlideShare a Scribd company logo
Browsers and Web Runtimes for Automotive:
alternatives, challenges and current status
Juan J. Sánchez
Automotive Linux Summit, Tokio, June 2018
Myself, Igalia and Web Browsers
Co-founder of Igalia in 2001. 70 engineers. Global
Open Source consultancy: web browsers, multimedia,
graphics, compilers, embedded Linux, networking
Igalia is top contributor to open source web browsers:
WebKit/JSC, Chromimum/V8, Firefox/SpiderMonkey
Working in many industries: automotive, tablets/phones,
smart tv, set-top boxes and other embedded devices
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Outline
1 A web browser and runtime for automotive: motivation
and requirements
2 WebKit and Chromium
3 How to build a web engine for automotive
4 How to build a web runtime for automotive
5 Conclusions and future
Browsers and Web Runtimes for Automotive Juan J. Sánchez
PART 1:
A web browser and runtime for
automotive: motivations and
requirements
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Context
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Motivations
Goal: Web browsing and local/remote web applications
fully available in automotive platforms
Why? Long time trying to use Web technologies in
embedded to replace native totally or partially
Advantages:
Natural combination with open standards and open source
Flexibility and power to define the user experience
Easier to find resources: big number of developers,
training/documentation and tools
Enabled now by new HTML5 features and improved
performance
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Requirements
HTML5 interfaces as powerful as native toolkits:
State of the art animations (Performance)
Flexibility to integrate different user experiences
New ways of interacting: accessibility support
Support of specific standards (communication, interfaces)
Portability: support of specific hardware boards
Provide both a web browser (internet) and a web runtime
(web apps)
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Available technologies and solutions
Option 1) Licensing a proprietary solution: might bring a
reduced time-to-market but involves a cost per unit and
lack of flexibility
Option 2) Deriving browser and runtime from the main
open source browser technologies:
Firefox (Gecko). Mozilla removed support in their engine
for third party browser developers. Servo not fully ready
Chromium
WebKit
Browsers and Web Runtimes for Automotive Juan J. Sánchez
PART 2:
WebKit and Chromium
Browsers and Web Runtimes for Automotive Juan J. Sánchez
The WebKit project
Web rendering engine (HTML, JavaScript, CSS...)
The engine is the product
Started as a fork of KHTML and KJS in 2001
Open Source since 2005
Among other things, it’s useful for:
Web browsers
Using web technologies for UI development
Browsers and Web Runtimes for Automotive Juan J. Sánchez
WebKit features
HTML and XML support
JavaScript support (ECMAScript 5.1)
CSS 2.1, CSS 3 support
SVG support
Support for Plugins (NPAPI, WebKit Plugins)
HTML5 support: multimedia, 3D graphics, advanced CSS
animations and transformations, drag’n’drop, offline &
local storage, connectivity...
Accessibility support
Q&A infrastructure: review process, continuous
integration, testing
Browsers and Web Runtimes for Automotive Juan J. Sánchez
WebKit Architecture
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
Browsers and Web Runtimes for Automotive Juan J. Sánchez
What is a WebKit port?
Browsers and Web Runtimes for Automotive Juan J. Sánchez
What is a WebKit port?
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Chromium vs WebKit
Chromium was built on top of its own port of the WebKit
engine until 2013
April 2013: Google announced Blink (fork of WebKit)
Motivations according to Google:
They were not using some parts of WebKit anyway (e.g.
multi-process architecture)
Easier to do ambitious architectural changes
Simplification and reduction of the codebase
Users of WebKit need now to make a choice
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Differences between WebKit and Blink/Chromium
Blink removes the concept of ’port’ as it was defined in
WebKit (deep platform integration): Skia, V8 and other
libraries cannot be easily replaced
Still possible to use Blink in other platforms, but now
integration happens at Content level. Less flexibility and
no stable API (as provided by WebKit ports)
Dynamics of the open source communities are different
Many architecture changes in Blink/Chromium
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Chromium and WebKit today
Both projects have healthy communities and are the basis
of different products
WebKit:
Engine of the Safari web browser and provides the
webview in all the Apple platforms
Upstream ports: WebKitGTK+ (Desktop) and WPE
(embedded) are popular in Linux and embedded
Downstream and proprietary derivatives are also used
Chromium:
Chromium is the open source version of the Google
Chrome browser
QtWebEngine and Chromium Embedded Framework
(CEF) are based on Chromium and popular in Linux and
embedded
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Webkit vs Chromium: pros and cons
WebKit:
Pro: smaller memory footprint
Pro: ports are upstream, easier to integrate core changes
Pro: very flexible architecture, easy to plug
components/libraries
Con: less companies contributing (Apple very relevant)
Con: less innovation lately in some areas of the codebase
Chromium:
Pro: more innovation in some areas, Google driving, lots of
developers
Pro: trend of more companies using/testing the technology
Con: no concept of ports, alternatives are not upstream
Con: difficult to contribute to some core areas (Google)
Browsers and Web Runtimes for Automotive Juan J. Sánchez
PART 3:
How to build a web engine for
automotive
Browsers and Web Runtimes for Automotive Juan J. Sánchez
How to build a web browser for Automotive
Chromium:
Derived from Chromium
On top of QtWebEngine
On top of CEF
WebKit:
On top of WebKitGTK+
On top of WPE
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Using WebKitGTK+ or WPE
Pure open source projects, easy to influence their upstream
development
Reliable and well-known release process and quality
maintenance procedures, strong API and ABI compatibility
Possibility of modifying the whole stack, avoiding a big
delta (e.g. gstreamer vs other media frameworks)
WPE designed to integrate very well with Wayland
Developed by a relatively small team
Reference browsers available, but smaller feature set, less
widely tested in heterogeneous hardware platforms
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Derived from Chromium
All the features and flexibility of Chromium at the cost of
increased maintenance complexity
Browsing operations can use Chromium’s Content API.
But browser services like history, bookmarks or incognito
need internal (unstable) APIs
High risk of ending with a big delta compared to upstream
Chromium (which moves very fast)
Changing the UI requires patching the UI code (no toolkit)
Ongoing work to integrate well Chromium with Wayland
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Using QtWebEngine
Evolution of the Qt webkit port, but now using Chromium
Library (stable API) for creating apps based on Chromium
Wayland support since Qt 5.10
Some small open source browsers use it but not focused on
being used for browsers, just for embedding small HTML5
parts in Qt applications
Potential issues with LGPLv3 license for some users.
Alternative of paying a license for Qt
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Using Chromium Embedded Framework
Another library (stable API) for creating apps based on
Chromium
Browser abstractions are preserved. Multiprocess
architecture preserved and properly interfaced
Browser features from layers above the Content API are
not present in CEF (history, bookmarks or incognito)
Downstream Wayland support based on the work done in
Chromium
Created in 2009. Still mostly a one person project
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Web browsers for automotive
Solid alternatives using WebKit or Chromium
Different companies/projects use different solutions. None
seems to be good at everything
Choice depends on specific functional requirements and
hardware/software needs
Quite big extra effort required in all the cases
Browsers and Web Runtimes for Automotive Juan J. Sánchez
A browser for AGL
After a detailed analysis Chromium was selected
Memory restrictions were not critical
The plan is to stay as close to upstream Chromium as
possible
Standards support and full functionality was a priority
Ongoing work on upstream Wayland support for Linux
(Igalia sponsored by Renesas)
Browsers and Web Runtimes for Automotive Juan J. Sánchez
PART 4:
How to build a web runtime for
automotive
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Why a web runtime? (I)
Web apps should be first class citizens: full integration
with native UI
Share resources among web applications:
Hardware resources (e.g. GPU), network cache, etc.
Common strategy for memory pressure scenarios
Shared implementation between web applications:
Same stack for web apps and web browser
Same expected behavior
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Why a web runtime? (II)
Provide access to car-specific APIs for the web apps
Provide web apps packaging and local
installation/running
Integration with the apps lifecycle (suspend/resume/...)
Security enabled, efficient runtime:
Frequent updates, common well-maintained web engine
Integration with platform security
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Alternative options to create the runtime
From scratch based on WPE
From scratch based on Chromium
From scratch using one of the solutions that embed
Chromium:
CEF
QtWebEngine
Starting from an existing runtime:
Crosswalk
WebOS’s WAM
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Crosswalk
Crosswalk is a web runtime based on Chromium
Available for Android as embeddable webview container
and for Tizen as system-wide application runtime
Adapts the multiprocess model of Chromium to its needs
Created in 2013, never had a big community outside Intel
and Tizen
Number and contributors and contributions getting
smaller since 2015. No commits since July 2017
Browsers and Web Runtimes for Automotive Juan J. Sánchez
WebOS’s WAM
WAM is a complete web runtime based on Chromium:
System-wide shared runtime service following
Chromium’s process model
All apps share resources: less memory usage, faster launch
time and task switching
Used in LGE’s WebOS products
It has a mature codebase (developed for about 10 years)
Very recently open sourced. Actively maintained
Browsers and Web Runtimes for Automotive Juan J. Sánchez
A web runtime for AGL
Creating a runtime from scratch is a lot of work
The runtime should work on top of the selected web
engine: Chromium for Wayland
WebOS’s WAM seems like a good choice
WebOS’s WAM supports a big part of the requirements
and platform constraints
There is a detailed plan about how to add to WAM what is
missing
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Towards WAM in AGL
Some of the most important pending tasks are:
Porting to a new version of Chromium (WAM uses
Chromium 53)
Full integration with AGL’s Application framework
(SMACK, Window Manager, Home Screen, etc.)
Hardware acceleration for multimedia
Multi-seat and multi-screen support
Remove all the pending Qt dependencies
Port to specific reference hardware targets
Browsers and Web Runtimes for Automotive Juan J. Sánchez
PART 5:
Conclusions and future
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Conclusions and future: web browsers
WebKit and Chromium are powerful alternatives to build
open source web browsers and bring HTML5 to
automotive Linux
Chromium was selected for AGL, and there is a
downstream, working, integrated version available
Ongoing work by Igalia to finish upstreaming and to
improve performance
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Conclusions and future: web runtime
A web runtime is needed to fully integrate web apps in the
platform
A runtime can be created from scratch on top of Webkit or
Chromium, or an open source available one can be reused
WebOS’s WAM seems to be the best option to start from.
There is a basic prototype working, and more progress is
expected in the coming months
Browsers and Web Runtimes for Automotive Juan J. Sánchez
Thank you!
Juan J. Sánchez
jjsanchez@igalia.com
@juanjosanchez
Browsers and Web Runtimes for Automotive Juan J. Sánchez

More Related Content

What's hot

Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
David Ličen
 
Workshop 22: React-Redux Middleware
Workshop 22: React-Redux MiddlewareWorkshop 22: React-Redux Middleware
Workshop 22: React-Redux Middleware
Visual Engineering
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
Jer Clarke
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
Muhammad Rizki Rijal
 
Vue.js for beginners
Vue.js for beginnersVue.js for beginners
Vue.js for beginners
Julio Bitencourt
 
Nuxt.js - Introduction
Nuxt.js - IntroductionNuxt.js - Introduction
Nuxt.js - Introduction
Sébastien Chopin
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
Helmilpa
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Alessandro Pilotti
 
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
Luigi Buglione
 
Deploying a website
Deploying a websiteDeploying a website
Deploying a website
Khirulnizam Abd Rahman
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
Will Huang
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
Aymen Sellaouti
 
UDA-Instalación PC local_wls11_proveedores
UDA-Instalación PC local_wls11_proveedoresUDA-Instalación PC local_wls11_proveedores
UDA-Instalación PC local_wls11_proveedores
Ander Martinez
 
Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!
YOJI WATANABE
 
HTML and XML Difference FAQs
HTML and XML Difference FAQsHTML and XML Difference FAQs
HTML and XML Difference FAQs
Umar Ali
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Bruno Borges
 
AngularJS
AngularJS AngularJS
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
Johnny Kingdom
 
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper ReportsZabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix BR
 
Introduction to Umbraco
Introduction to UmbracoIntroduction to Umbraco
Introduction to Umbraco
Roel
 

What's hot (20)

Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
 
Workshop 22: React-Redux Middleware
Workshop 22: React-Redux MiddlewareWorkshop 22: React-Redux Middleware
Workshop 22: React-Redux Middleware
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
 
Vue.js for beginners
Vue.js for beginnersVue.js for beginners
Vue.js for beginners
 
Nuxt.js - Introduction
Nuxt.js - IntroductionNuxt.js - Introduction
Nuxt.js - Introduction
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
 
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
An ISO/IEC 33000-compliant Measurement Framework for Software Process Sustain...
 
Deploying a website
Deploying a websiteDeploying a website
Deploying a website
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
 
UDA-Instalación PC local_wls11_proveedores
UDA-Instalación PC local_wls11_proveedoresUDA-Instalación PC local_wls11_proveedores
UDA-Instalación PC local_wls11_proveedores
 
Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!
 
HTML and XML Difference FAQs
HTML and XML Difference FAQsHTML and XML Difference FAQs
HTML and XML Difference FAQs
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
AngularJS
AngularJS AngularJS
AngularJS
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
 
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper ReportsZabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
 
Introduction to Umbraco
Introduction to UmbracoIntroduction to Umbraco
Introduction to Umbraco
 

Similar to Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Current Status (Automotive Linux Summit 2018)

Building a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and RecommendationsBuilding a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
juanjosanchezpenas
 
Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...
Igalia
 
S01 gae and_hybrid_app_v1.0
S01 gae and_hybrid_app_v1.0S01 gae and_hybrid_app_v1.0
S01 gae and_hybrid_app_v1.0
Sun-Jin Jang
 
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
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
Igalia
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5
Jonathan Jeon
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
juanjosanchezpenas
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
Mohanadarshan Vivekanandalingam
 
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
Igalia
 
2011 08-24 mobile web app
2011 08-24  mobile web app2011 08-24  mobile web app
2011 08-24 mobile web app
Sholto Maud
 
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...
Igalia
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
IndicThreads
 
Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
길수 김
 
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade LinuxWAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
Igalia
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
Caridy Patino
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
Christian Heindel
 
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
Igalia
 
The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)
Igalia
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
juanjosanchezpenas
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
Quobis
 

Similar to Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Current Status (Automotive Linux Summit 2018) (20)

Building a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and RecommendationsBuilding a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
 
Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...
 
S01 gae and_hybrid_app_v1.0
S01 gae and_hybrid_app_v1.0S01 gae and_hybrid_app_v1.0
S01 gae and_hybrid_app_v1.0
 
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
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
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
 
2011 08-24 mobile web app
2011 08-24  mobile web app2011 08-24  mobile web app
2011 08-24 mobile web app
 
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...
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
 
Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
 
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade LinuxWAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
 
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
 
The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
 

More from Igalia

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?
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
 
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...
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
 
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
Igalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
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
 
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!
Igalia
 
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
Igalia
 
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
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
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
Igalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
Igalia
 
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
Igalia
 
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
Igalia
 
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
Igalia
 
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
Igalia
 
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
Igalia
 
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...
Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
Igalia
 

More from 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
 

Recently uploaded

GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 

Recently uploaded (20)

GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 

Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Current Status (Automotive Linux Summit 2018)

  • 1. Browsers and Web Runtimes for Automotive: alternatives, challenges and current status Juan J. Sánchez Automotive Linux Summit, Tokio, June 2018
  • 2. Myself, Igalia and Web Browsers Co-founder of Igalia in 2001. 70 engineers. Global Open Source consultancy: web browsers, multimedia, graphics, compilers, embedded Linux, networking Igalia is top contributor to open source web browsers: WebKit/JSC, Chromimum/V8, Firefox/SpiderMonkey Working in many industries: automotive, tablets/phones, smart tv, set-top boxes and other embedded devices Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 3. Outline 1 A web browser and runtime for automotive: motivation and requirements 2 WebKit and Chromium 3 How to build a web engine for automotive 4 How to build a web runtime for automotive 5 Conclusions and future Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 4. PART 1: A web browser and runtime for automotive: motivations and requirements Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 5. Context Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 6. Motivations Goal: Web browsing and local/remote web applications fully available in automotive platforms Why? Long time trying to use Web technologies in embedded to replace native totally or partially Advantages: Natural combination with open standards and open source Flexibility and power to define the user experience Easier to find resources: big number of developers, training/documentation and tools Enabled now by new HTML5 features and improved performance Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 7. Requirements HTML5 interfaces as powerful as native toolkits: State of the art animations (Performance) Flexibility to integrate different user experiences New ways of interacting: accessibility support Support of specific standards (communication, interfaces) Portability: support of specific hardware boards Provide both a web browser (internet) and a web runtime (web apps) Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 8. Available technologies and solutions Option 1) Licensing a proprietary solution: might bring a reduced time-to-market but involves a cost per unit and lack of flexibility Option 2) Deriving browser and runtime from the main open source browser technologies: Firefox (Gecko). Mozilla removed support in their engine for third party browser developers. Servo not fully ready Chromium WebKit Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 9. PART 2: WebKit and Chromium Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 10. The WebKit project Web rendering engine (HTML, JavaScript, CSS...) The engine is the product Started as a fork of KHTML and KJS in 2001 Open Source since 2005 Among other things, it’s useful for: Web browsers Using web technologies for UI development Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 11. WebKit features HTML and XML support JavaScript support (ECMAScript 5.1) CSS 2.1, CSS 3 support SVG support Support for Plugins (NPAPI, WebKit Plugins) HTML5 support: multimedia, 3D graphics, advanced CSS animations and transformations, drag’n’drop, offline & local storage, connectivity... Accessibility support Q&A infrastructure: review process, continuous integration, testing Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 12. WebKit Architecture 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 Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 13. What is a WebKit port? Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 14. What is a WebKit port? Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 15. Chromium vs WebKit Chromium was built on top of its own port of the WebKit engine until 2013 April 2013: Google announced Blink (fork of WebKit) Motivations according to Google: They were not using some parts of WebKit anyway (e.g. multi-process architecture) Easier to do ambitious architectural changes Simplification and reduction of the codebase Users of WebKit need now to make a choice Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 16. Differences between WebKit and Blink/Chromium Blink removes the concept of ’port’ as it was defined in WebKit (deep platform integration): Skia, V8 and other libraries cannot be easily replaced Still possible to use Blink in other platforms, but now integration happens at Content level. Less flexibility and no stable API (as provided by WebKit ports) Dynamics of the open source communities are different Many architecture changes in Blink/Chromium Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 17. Chromium and WebKit today Both projects have healthy communities and are the basis of different products WebKit: Engine of the Safari web browser and provides the webview in all the Apple platforms Upstream ports: WebKitGTK+ (Desktop) and WPE (embedded) are popular in Linux and embedded Downstream and proprietary derivatives are also used Chromium: Chromium is the open source version of the Google Chrome browser QtWebEngine and Chromium Embedded Framework (CEF) are based on Chromium and popular in Linux and embedded Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 18. Webkit vs Chromium: pros and cons WebKit: Pro: smaller memory footprint Pro: ports are upstream, easier to integrate core changes Pro: very flexible architecture, easy to plug components/libraries Con: less companies contributing (Apple very relevant) Con: less innovation lately in some areas of the codebase Chromium: Pro: more innovation in some areas, Google driving, lots of developers Pro: trend of more companies using/testing the technology Con: no concept of ports, alternatives are not upstream Con: difficult to contribute to some core areas (Google) Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 19. PART 3: How to build a web engine for automotive Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 20. How to build a web browser for Automotive Chromium: Derived from Chromium On top of QtWebEngine On top of CEF WebKit: On top of WebKitGTK+ On top of WPE Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 21. Using WebKitGTK+ or WPE Pure open source projects, easy to influence their upstream development Reliable and well-known release process and quality maintenance procedures, strong API and ABI compatibility Possibility of modifying the whole stack, avoiding a big delta (e.g. gstreamer vs other media frameworks) WPE designed to integrate very well with Wayland Developed by a relatively small team Reference browsers available, but smaller feature set, less widely tested in heterogeneous hardware platforms Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 22. Derived from Chromium All the features and flexibility of Chromium at the cost of increased maintenance complexity Browsing operations can use Chromium’s Content API. But browser services like history, bookmarks or incognito need internal (unstable) APIs High risk of ending with a big delta compared to upstream Chromium (which moves very fast) Changing the UI requires patching the UI code (no toolkit) Ongoing work to integrate well Chromium with Wayland Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 23. Using QtWebEngine Evolution of the Qt webkit port, but now using Chromium Library (stable API) for creating apps based on Chromium Wayland support since Qt 5.10 Some small open source browsers use it but not focused on being used for browsers, just for embedding small HTML5 parts in Qt applications Potential issues with LGPLv3 license for some users. Alternative of paying a license for Qt Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 24. Using Chromium Embedded Framework Another library (stable API) for creating apps based on Chromium Browser abstractions are preserved. Multiprocess architecture preserved and properly interfaced Browser features from layers above the Content API are not present in CEF (history, bookmarks or incognito) Downstream Wayland support based on the work done in Chromium Created in 2009. Still mostly a one person project Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 25. Web browsers for automotive Solid alternatives using WebKit or Chromium Different companies/projects use different solutions. None seems to be good at everything Choice depends on specific functional requirements and hardware/software needs Quite big extra effort required in all the cases Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 26. A browser for AGL After a detailed analysis Chromium was selected Memory restrictions were not critical The plan is to stay as close to upstream Chromium as possible Standards support and full functionality was a priority Ongoing work on upstream Wayland support for Linux (Igalia sponsored by Renesas) Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 27. PART 4: How to build a web runtime for automotive Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 28. Why a web runtime? (I) Web apps should be first class citizens: full integration with native UI Share resources among web applications: Hardware resources (e.g. GPU), network cache, etc. Common strategy for memory pressure scenarios Shared implementation between web applications: Same stack for web apps and web browser Same expected behavior Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 29. Why a web runtime? (II) Provide access to car-specific APIs for the web apps Provide web apps packaging and local installation/running Integration with the apps lifecycle (suspend/resume/...) Security enabled, efficient runtime: Frequent updates, common well-maintained web engine Integration with platform security Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 30. Alternative options to create the runtime From scratch based on WPE From scratch based on Chromium From scratch using one of the solutions that embed Chromium: CEF QtWebEngine Starting from an existing runtime: Crosswalk WebOS’s WAM Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 31. Crosswalk Crosswalk is a web runtime based on Chromium Available for Android as embeddable webview container and for Tizen as system-wide application runtime Adapts the multiprocess model of Chromium to its needs Created in 2013, never had a big community outside Intel and Tizen Number and contributors and contributions getting smaller since 2015. No commits since July 2017 Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 32. WebOS’s WAM WAM is a complete web runtime based on Chromium: System-wide shared runtime service following Chromium’s process model All apps share resources: less memory usage, faster launch time and task switching Used in LGE’s WebOS products It has a mature codebase (developed for about 10 years) Very recently open sourced. Actively maintained Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 33. A web runtime for AGL Creating a runtime from scratch is a lot of work The runtime should work on top of the selected web engine: Chromium for Wayland WebOS’s WAM seems like a good choice WebOS’s WAM supports a big part of the requirements and platform constraints There is a detailed plan about how to add to WAM what is missing Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 34. Towards WAM in AGL Some of the most important pending tasks are: Porting to a new version of Chromium (WAM uses Chromium 53) Full integration with AGL’s Application framework (SMACK, Window Manager, Home Screen, etc.) Hardware acceleration for multimedia Multi-seat and multi-screen support Remove all the pending Qt dependencies Port to specific reference hardware targets Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 35. PART 5: Conclusions and future Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 36. Conclusions and future: web browsers WebKit and Chromium are powerful alternatives to build open source web browsers and bring HTML5 to automotive Linux Chromium was selected for AGL, and there is a downstream, working, integrated version available Ongoing work by Igalia to finish upstreaming and to improve performance Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 37. Conclusions and future: web runtime A web runtime is needed to fully integrate web apps in the platform A runtime can be created from scratch on top of Webkit or Chromium, or an open source available one can be reused WebOS’s WAM seems to be the best option to start from. There is a basic prototype working, and more progress is expected in the coming months Browsers and Web Runtimes for Automotive Juan J. Sánchez
  • 38. Thank you! Juan J. Sánchez jjsanchez@igalia.com @juanjosanchez Browsers and Web Runtimes for Automotive Juan J. Sánchez