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

WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux

  • 1.
    WAM: an embeddedweb 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) FromGalicia, Spain. Galicia in Europe | By David Sebastian Liuzzo, Alexandre Vigo | CC BY-SA 3.0 3
  • 4.
    About me (3/3) Memberof 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? Istarted 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? Whereis it used? How it works? What is good about WAM? Retrospective Future 7
  • 8.
  • 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 AnOperating 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 itused? 13
  • 17.
    Where WAS itused? HP Touchpad Some Palm phones 14
  • 18.
    Where is itused? LG webOS TV, from 2013. 15
  • 19.
    Where is itused? Some LG products and experiments that use or used webOS and WAM: 16
  • 20.
    Where is itused? LG webOS Open Source Edition, from 2018. 17
  • 21.
    Where is itused? Linux Foundation Automotive Grade Linux (AGL) web runtime. Port done adapting to the AGL application framework. 18
  • 22.
  • 23.
  • 24.
  • 25.
    What's good aboutWAM? 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 aboutWAM? Application lifecycle WAM runtime manages the running web applications: Launching, closing Suspend/resume Recovery 23
  • 27.
    What's good aboutWAM? 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 aboutWAM? Security Local packaged applications and remote web applications. Following web security origin model. Application manifest permissions. 25
  • 29.
    What's good aboutWAM? Developer tools Web inspector and developer tools Chromium tracer 26
  • 30.
    What's good aboutWAM? 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 aboutWAM? Open source license Apache 2.0 license https://webosose.org https://github.com/webosose/wam 28
  • 32.
  • 33.
    Retrospective Caveat I have beenworking 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 toLG TV 2010: HP bought Palm... 2011: ... Then HP decides to cancel new webOS products. Last device: HP Touchpad. 31
  • 35.
    Retrospective From HP/Palm toLG 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 OpenSource: 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 OpenSource: 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: webOSOSE (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: webOSOSE (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: webOSOSE (3/3) Do you want to integrate web UI in your experimental product? webOS OSE can help! 37
  • 41.
    Retrospective From webOS toAGL (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 toAGL (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 towebOS 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 towebOS 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 toQt-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 toQt-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 proveduseful, and architecture flexible enough to adapt to: Web engine changes. Dependencies changes. New products Even OS changes. 45
  • 49.
  • 50.
    Future webOS is hereto stay! LG is increasing the bet for webOS on SmartTV through . webOS Hub 47
  • 51.
    Future Some topics... GCC orClang? How to improve upgrade cycles? 48
  • 52.
  • 53.
    Final remarks +10 yearsof 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.