SlideShare a Scribd company logo
1 of 54
Download to read offline
WAM: an embedded web
runtime history
Introduction and retrospective
February 4th, 2023. FOSDEM @ Brussels
José Dapena Paz < >
jdapena@igalia.com
1
About me (1/3)
José Dapena Paz “dape”
Software engineer at Igalia for 21 years, and one of its
founders.
2
About me (2/3)
From Galicia, Spain.
Galicia in Europe | By David Sebastian Liuzzo, Alexandre Vigo | CC BY-SA 3.0
3
About me (3/3)
Member of Igalia Chromium team.
Some projects:
LG webOS web engine integration (2012-today)
WAM for AGL (2018-2022)
Nokia Meego and Maemo (2005-2011)
4
Igalia
Open source consultancy, focused on the web
ecosystem.
+100 engineers all around the world.
2nd main contributor to Chrome, right after Google.
2nd main contributor to WebKit, right after Apple.
Teams around web engines and platform, graphics,
compilers, ...
5
Why this talk?
I started working on webOS in October 2012 (10 years
ago!).
10 years feels like a good time to write about history.
6
Agenda
What is WAM?
Where is it used?
How it works?
What is good about WAM?
Retrospective
Future
7
What is WAM
8
What is WAM
WAM = Web Application Manager
9
What is WAM
WAM = Web Application Manager
LG webOS web runtime.
9
What is WAM
WAM = Web Application Manager
LG webOS web runtime.
On top of Chromium.
9
What is WAM
webOS
An Operating System for embedded products.
It is web centric: web applications are first class
citizens.
10
What is WAM
webOS
Yocto / Openembedded Core.
Wayland / QML / Maliit.
Unified media server.
Luna bus for IPC.
11
What is WAM
WAM = Web Application Manager
LG webOS web runtime.
On top of Chromium.
12
What is WAM
WAM = Web Application Manager
LG webOS web runtime.
On top of Chromium.
WAM is the center piece of web experience in webOS.
12
Where is it used?
13
Where WAS it used?
HP Touchpad
Some Palm phones
14
Where is it used?
LG webOS TV, from 2013.
15
Where is it used?
Some LG products and experiments that use or used
webOS and WAM:
16
Where is it used?
LG webOS Open Source Edition, from 2018.
17
Where is it used?
Linux Foundation Automotive Grade Linux (AGL) web
runtime.
Port done adapting to the AGL application framework.
18
How it works?
19
How it works?
20
What's good about WAM?
21
What's good about WAM?
Support of web platform standards
WAM is based on Chromium: high support for web
platform standards.
Document model, JS, CSS.
Device APIs.
Graphics APIs.
Media, WebRTC
Storage, security
22
What's good about WAM?
Application lifecycle
WAM runtime manages the running web applications:
Launching, closing
Suspend/resume
Recovery
23
What's good about WAM?
Performance
A goal of WAM is using the system resources
efficiently:
CPU and GPU memory.
CPU usage.
Launch time optimization.
24
What's good about WAM?
Security
Local packaged applications and remote web
applications.
Following web security origin model.
Application manifest permissions.
25
What's good about WAM?
Developer tools
Web inspector and developer tools
Chromium tracer
26
What's good about WAM?
Proven technology
Shipped in millions of LG smart TVs...
... and +10 years of experience.
Nowadays also adopted for the AGL reference platform.
27
What's good about WAM?
Open source license
Apache 2.0 license
https://webosose.org
https://github.com/webosose/wam
28
Retrospective
29
Retrospective
Caveat
I have been working on webOS web integration since
October 2012.
History of WAM seems to start around 2008.
I will mostly focus on what I lived.
30
Retrospective
From HP/Palm to LG TV
2010: HP bought Palm...
2011: ... Then HP decides to cancel new webOS
products. Last device: HP Touchpad.
31
Retrospective
From HP/Palm to LG TV (2/2)
2012: partnership LG+HP for using webOS on LG
SmartTV.
2013: LG acquires Palm software development unit
from HP: LG Silicon Valley Labs is born.
2014: LG webOS based TV are introduced in CES Las
Vegas. TV are released a few months later.
32
Retrospective
webOS and Open Source: Open WebOS
(1/2)
June 2012: HP/Palm releases OpenWebOS
Code still available at
2012: after LG acquisition, OpenWebOS is not
maintained anymore!
https://github.com/openwebos
33
Retrospective
webOS and Open Source: Open WebOS
(2/2)
So:
I guess it was useful to attract LG to invest in webOS.
LG preferred to focus on making LG webOS TV
happen.
My view: the webOS TV effort was a huge challenge.
No time for anything else.
34
Retrospective
Open Source: webOS OSE (1/3)
June 2018: LG releases webOS Open Source Edition
See
Focus:
Allow prototyping ideas and products.
For students, independent developers.
Create a community around it.
https://webosose.org
35
Retrospective
Open Source: webOS OSE (2/3)
It is active nowadays.
Hardware target: Raspberry PI (nowadays PI 4 models).
My view:
It simplified testing new ideas.
Integration of parts for AGL for automotive, ROS for
robotics.
36
Retrospective
Open Source: webOS OSE (3/3)
Do you want to integrate web UI in your experimental
product? webOS OSE can help!
37
Retrospective
From webOS to AGL (1/2)
Collaboration LG + Igalia + Linux Foundation.
Before 2018: Igalia assisted Chrome browser work with
Wayland
May 2018: LG Silicon Valley Labs experiment to port
WAM to AGL
38
Retrospective
From webOS to AGL (2/2)
The 2018 experiment proved it was possible.
Focus on a web-only demo:
System UI + web applications
Integration of third party applications.
Integration with system services.
In last 4 years WAM evolved with AGL.
39
Retrospective
From QtWebKit to webOS WebView (1/2)
2012: WAM was based on QtWebKit
2012-2013: Moved to QtWebKit2 (multiprocess
architecture).
2014-2015:
Moved to Blink following market trend after Blink
forked from WebKit.
Based on QtWebEngine.
40
Retrospective
From QtWebKit to webOS WebView (2/2)
2015-today:
Created webOS WebView layer and dropped
QtWebEngine.
Why?
No strong QWE specific use cases.
Qt started moving towards commercial and tighter
open-source licensing policies
41
Retrospective
From Qt to Qt-less (1/2)
WAM has been based on Qt for a long time.
But...
GPLv3 licensing of Qt was problematic for some
stakeholders (but not LG).
C++, STL and Chromium C++ libraries grew better and
better. Not much benefit on Qt.
42
Retrospective
From Qt to Qt-less (2/2)
From 2021, WAM does not depend on Qt anymore.
Based on STL and other C++ libraries + Glib.
QMake -> CMake.
43
Retrospective
Stability (1/2)
But... essentially, main ideas of WAM did not change in
last 10 years.
44
Retrospective
Stability (2/2)
It proved useful, and architecture flexible enough to
adapt to:
Web engine changes.
Dependencies changes.
New products
Even OS changes.
45
Future
46
Future
webOS is here to stay!
LG is increasing the bet
for webOS on SmartTV
through .
webOS Hub
47
Future
Some topics...
GCC or Clang?
How to improve upgrade cycles?
48
Final remarks
49
Final remarks
+10 years of project. More to come!
Proved useful for many products and
millions of users.
A great piece to make web a first class
citizen of a platform.
Thanks!
50
51

More Related Content

What's hot

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)Igalia
 
Understaing Android EGL
Understaing Android EGLUnderstaing Android EGL
Understaing Android EGLSuhan Lee
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleMihai Criveti
 
Under The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureScyllaDB
 
Hardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsHardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsThe Linux Foundation
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Jetpack compose
Jetpack composeJetpack compose
Jetpack composeLutasLin
 
Implementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over EthernetImplementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over EthernetJames Wernicke
 
Ceph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Community
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep DiveDocker, Inc.
 

What's hot (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)
 
Understaing Android EGL
Understaing Android EGLUnderstaing Android EGL
Understaing Android EGL
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Under The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database Architecture
 
Hardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsHardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ Processors
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Building aosp
Building aospBuilding aosp
Building aosp
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
Jetpack compose
Jetpack composeJetpack compose
Jetpack compose
 
WebAssembly Overview
WebAssembly OverviewWebAssembly Overview
WebAssembly Overview
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
Implementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over EthernetImplementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over Ethernet
 
Ceph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Month 2021: RADOS Update
Ceph Month 2021: RADOS Update
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
Docker vs kvm
Docker vs kvmDocker vs kvm
Docker vs kvm
 
Ansible
AnsibleAnsible
Ansible
 
An Intro into webpack
An Intro into webpackAn Intro into webpack
An Intro into webpack
 

Similar to History and evolution of WAM, the web runtime behind LG webOS

Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Christian Heindel
 
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 WebKitIgalia
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Igalia
 
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...Igalia
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfShaiAlmog1
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008smancke
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformsguestfa9375
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformssmancke
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Alessandro Binhara
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerAjeet Singh Raina
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Marco Tabor
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersAlexandre Gouaillard
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloudwesley chun
 
Trends in webdesign
Trends in webdesignTrends in webdesign
Trends in webdesignbart_netlash
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...Niklas Heidloff
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Quobis
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009Tom Deryckere
 

Similar to History and evolution of WAM, the web runtime behind LG webOS (20)

Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
 
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
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
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...
 
Mobile Platforms Redux
Mobile Platforms ReduxMobile Platforms Redux
Mobile Platforms Redux
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop Browsers
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Trends in webdesign
Trends in webdesignTrends in webdesign
Trends in webdesign
 
Trends in webdesign
Trends in webdesignTrends in webdesign
Trends in webdesign
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 

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 WPEIgalia
 
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 DevicesIgalia
 
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 MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
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 JITIgalia
 
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 GStreamerIgalia
 
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 MesaIgalia
 
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 IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
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 GPUsIgalia
 
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 devicesIgalia
 
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 ChromeOSIgalia
 
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 webIgalia
 
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 shadersIgalia
 
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 RaspberryIgalia
 

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

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

History and evolution of WAM, the web runtime behind LG webOS

  • 1. WAM: an embedded web runtime history Introduction and retrospective February 4th, 2023. FOSDEM @ Brussels José Dapena Paz < > jdapena@igalia.com 1
  • 2. About me (1/3) José Dapena Paz “dape” Software engineer at Igalia for 21 years, and one of its founders. 2
  • 3. About me (2/3) From Galicia, Spain. Galicia in Europe | By David Sebastian Liuzzo, Alexandre Vigo | CC BY-SA 3.0 3
  • 4. About me (3/3) Member of Igalia Chromium team. Some projects: LG webOS web engine integration (2012-today) WAM for AGL (2018-2022) Nokia Meego and Maemo (2005-2011) 4
  • 5. Igalia Open source consultancy, focused on the web ecosystem. +100 engineers all around the world. 2nd main contributor to Chrome, right after Google. 2nd main contributor to WebKit, right after Apple. Teams around web engines and platform, graphics, compilers, ... 5
  • 6. Why this talk? I started working on webOS in October 2012 (10 years ago!). 10 years feels like a good time to write about history. 6
  • 7. Agenda What is WAM? Where is it used? How it works? What is good about WAM? Retrospective Future 7
  • 9. What is WAM WAM = Web Application Manager 9
  • 10. What is WAM WAM = Web Application Manager LG webOS web runtime. 9
  • 11. What is WAM WAM = Web Application Manager LG webOS web runtime. On top of Chromium. 9
  • 12. What is WAM webOS An Operating System for embedded products. It is web centric: web applications are first class citizens. 10
  • 13. What is WAM webOS Yocto / Openembedded Core. Wayland / QML / Maliit. Unified media server. Luna bus for IPC. 11
  • 14. What is WAM WAM = Web Application Manager LG webOS web runtime. On top of Chromium. 12
  • 15. What is WAM WAM = Web Application Manager LG webOS web runtime. On top of Chromium. WAM is the center piece of web experience in webOS. 12
  • 16. Where is it used? 13
  • 17. Where WAS it used? HP Touchpad Some Palm phones 14
  • 18. Where is it used? LG webOS TV, from 2013. 15
  • 19. Where is it used? Some LG products and experiments that use or used webOS and WAM: 16
  • 20. Where is it used? LG webOS Open Source Edition, from 2018. 17
  • 21. Where is it used? Linux Foundation Automotive Grade Linux (AGL) web runtime. Port done adapting to the AGL application framework. 18
  • 24. What's good about WAM? 21
  • 25. What's good about WAM? Support of web platform standards WAM is based on Chromium: high support for web platform standards. Document model, JS, CSS. Device APIs. Graphics APIs. Media, WebRTC Storage, security 22
  • 26. What's good about WAM? Application lifecycle WAM runtime manages the running web applications: Launching, closing Suspend/resume Recovery 23
  • 27. What's good about WAM? Performance A goal of WAM is using the system resources efficiently: CPU and GPU memory. CPU usage. Launch time optimization. 24
  • 28. What's good about WAM? Security Local packaged applications and remote web applications. Following web security origin model. Application manifest permissions. 25
  • 29. What's good about WAM? Developer tools Web inspector and developer tools Chromium tracer 26
  • 30. What's good about WAM? Proven technology Shipped in millions of LG smart TVs... ... and +10 years of experience. Nowadays also adopted for the AGL reference platform. 27
  • 31. What's good about WAM? Open source license Apache 2.0 license https://webosose.org https://github.com/webosose/wam 28
  • 33. Retrospective Caveat I have been working on webOS web integration since October 2012. History of WAM seems to start around 2008. I will mostly focus on what I lived. 30
  • 34. Retrospective From HP/Palm to LG TV 2010: HP bought Palm... 2011: ... Then HP decides to cancel new webOS products. Last device: HP Touchpad. 31
  • 35. Retrospective From HP/Palm to LG TV (2/2) 2012: partnership LG+HP for using webOS on LG SmartTV. 2013: LG acquires Palm software development unit from HP: LG Silicon Valley Labs is born. 2014: LG webOS based TV are introduced in CES Las Vegas. TV are released a few months later. 32
  • 36. Retrospective webOS and Open Source: Open WebOS (1/2) June 2012: HP/Palm releases OpenWebOS Code still available at 2012: after LG acquisition, OpenWebOS is not maintained anymore! https://github.com/openwebos 33
  • 37. Retrospective webOS and Open Source: Open WebOS (2/2) So: I guess it was useful to attract LG to invest in webOS. LG preferred to focus on making LG webOS TV happen. My view: the webOS TV effort was a huge challenge. No time for anything else. 34
  • 38. Retrospective Open Source: webOS OSE (1/3) June 2018: LG releases webOS Open Source Edition See Focus: Allow prototyping ideas and products. For students, independent developers. Create a community around it. https://webosose.org 35
  • 39. Retrospective Open Source: webOS OSE (2/3) It is active nowadays. Hardware target: Raspberry PI (nowadays PI 4 models). My view: It simplified testing new ideas. Integration of parts for AGL for automotive, ROS for robotics. 36
  • 40. Retrospective Open Source: webOS OSE (3/3) Do you want to integrate web UI in your experimental product? webOS OSE can help! 37
  • 41. Retrospective From webOS to AGL (1/2) Collaboration LG + Igalia + Linux Foundation. Before 2018: Igalia assisted Chrome browser work with Wayland May 2018: LG Silicon Valley Labs experiment to port WAM to AGL 38
  • 42. Retrospective From webOS to AGL (2/2) The 2018 experiment proved it was possible. Focus on a web-only demo: System UI + web applications Integration of third party applications. Integration with system services. In last 4 years WAM evolved with AGL. 39
  • 43. Retrospective From QtWebKit to webOS WebView (1/2) 2012: WAM was based on QtWebKit 2012-2013: Moved to QtWebKit2 (multiprocess architecture). 2014-2015: Moved to Blink following market trend after Blink forked from WebKit. Based on QtWebEngine. 40
  • 44. Retrospective From QtWebKit to webOS WebView (2/2) 2015-today: Created webOS WebView layer and dropped QtWebEngine. Why? No strong QWE specific use cases. Qt started moving towards commercial and tighter open-source licensing policies 41
  • 45. Retrospective From Qt to Qt-less (1/2) WAM has been based on Qt for a long time. But... GPLv3 licensing of Qt was problematic for some stakeholders (but not LG). C++, STL and Chromium C++ libraries grew better and better. Not much benefit on Qt. 42
  • 46. Retrospective From Qt to Qt-less (2/2) From 2021, WAM does not depend on Qt anymore. Based on STL and other C++ libraries + Glib. QMake -> CMake. 43
  • 47. Retrospective Stability (1/2) But... essentially, main ideas of WAM did not change in last 10 years. 44
  • 48. Retrospective Stability (2/2) It proved useful, and architecture flexible enough to adapt to: Web engine changes. Dependencies changes. New products Even OS changes. 45
  • 50. Future webOS is here to stay! LG is increasing the bet for webOS on SmartTV through . webOS Hub 47
  • 51. Future Some topics... GCC or Clang? How to improve upgrade cycles? 48
  • 53. Final remarks +10 years of project. More to come! Proved useful for many products and millions of users. A great piece to make web a first class citizen of a platform. Thanks! 50
  • 54. 51