Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade Linux All Member Meeting Japan 2019)

248 views

Published on

By Julie Kim.

Julie will be presenting the work that has been done over the last months to develop for the AGL platform a modern Chromium based Web Application Manager (WAM) that enables running HTML5 IVI applications on the system.

These different applications can define specific levels of integration and security on the platform, and can be run seamlessly on different hardware architectures.


Automotive Grade Linux All Member Meeting Japan 2019
March 5 - 6, 2019
Tokyo, Japan
https://events.linuxfoundation.org/events/agl-all-member-meeting-japan/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade Linux All Member Meeting Japan 2019)

  1. 1. HTML5 apps on AGL platform with the Web Application Manager Julie Kim, jkim@ AGL All Member Meeting Japan 2019 (Mar/2019) jkim@igalia.com
  2. 2. Agenda • About Igalia • Motivations • Chromium • Web Application Manager (WAM) • Integration with AGL • Try WebApps • Status & Plans
  3. 3. About Igalia ● Open Source Consultancy ● Based in Galicia, Spain. Global team and customers ● ~80 employees around the world ● Areas ○ Chromium/Blink, WebKit and Servo; W3C member ○ Compilers, JavaScript engines (V8, JSC) ○ Multimedia, Kernel, Networking, Graphics ○ Accessibility, Virtualization & Cloud
  4. 4. Motivations • Web apps should be first class citizens in AGL; bring flexibility and power for a big number of developers. • Chromium has been verified on several embedded devices; many manufactures use it as an WebEngine. • Chromium with wayland is working fine on upstream; Igalia has worked on it. • LGE open-sourced Web Application Manager which they’re using on their product.
  5. 5. Motivations; Risks • How to manage SMACK with Chromium Multi-process model? • Using proxy process • How to integrate on AGL? • Porting it with libhomescreen and libwindowmanager • How to support Wayland with ivi extension protocol? • Migration wayland port with chromium upstream • Adding ivi extension protocol
  6. 6. Chromium Multiprocess • Browser process • handles all interactions with the disk, network, user input, and display. • manages windows and tabs. • Renderer process • contains all the complex logic for handling HTML, JavaScript, CSS, images, and so on. • GPU process • Manages GPU operations.
  7. 7. Chromium with Wayland • AURA : UI Framework • Ozone : Platform Abstraction Layer • Wayland port implemented under Ozone • Using XDG shell on desktop environment • Implemented event handling • Handled multi tabbed/windowed browsing • Supported separate GPU process Browser Process AURA Ozone Ozone Implementation Wayland Headless X11 DRM
  8. 8. Web Application Manager (WAM) • Launches Web page as an independent application • Allows Web page to run outside of WebBrowser. • Manages Web App’s Life-cycle • Resume/Suspend • Memory Management • Policy Management • No Browser menu • Full screen view • No URL bar, No setting menu
  9. 9. ivi_application_surface_create ivi_surface_add_listener Integration with AGL • Created the recipes for AGL • meta-html5-framework (old. meta-agl-lge) • Qt-less code • Cleaning up Qt dependency. • Chromium • Backporting Wayland port • Supported IVI extension protocol • Added APIs for supporting WAM. • SetSurfaceID to set ivi surface ID for each app. • SetProxy to manage network requests. Surface Wrapper IVI surface Wrapper
  10. 10. Integration with AGL desktop integration GPU process ozone platform wayland connection IPC (old API) ozone/wayland Browser process desktop integration GPU process IPC (Mojo API) ozone/wayland Wayland Connection Browser process • Chromium • Previous Wayland port vs Upstream Wayland port
  11. 11. Integration with AGL (cont.) • Integration WAM with homescreen and windowmanager. LibWindowmanagerLibHomeScreen Launcher Process ILMControl AGL Event_TapShortcut Browser Process Renderer Process Event_Active Event_Inactive Event_SyncDrawilm_registerNotification ➔ Registers event callbacks for HomeScreen, WindowManager and notification for ILMControl. ➔ Activates WebApp window, when it gets Event_TapShortcut. ➔ Manages WebApp states for Event_Active/Event_Inactive . [ Chromium ]
  12. 12. Integration with AGL (cont.) • Set proxy module to WAM to manage SMACK label Application Launcher Browser Process Renderer Process Proxy Process 1. Sets Proxy with port 3. Requests data 5. Gets response from network4. Requests data to network 6. Gets responses 7. Delivers data 8. Parses DOM, Sets Layout 2. Sends port info Same Smack Label
  13. 13. Try WebApps • Build the image with html5 framework. • Feature: agl-html5-framework • Target: agl-demo-platform • Package WebApp as following https://www.w3.org/TR/widgets/ • Refer to prebuilt WebApps from https://github.com/iotbzh/afm-widget-examples or https://github.com/jaragunde/wam-demo-applications/ • Install and Start WebApps • afm-util install xxx.wgt • afm-util start <app name> • Refer to http://docs.automotivelinux.org/master/docs/apis_services/en/dev/refe rence/af-main/4-quick-tutorial.html
  14. 14. Debug WebApps Create preferences folder and the flag file. • mkdir -p /var/luna/preferences • touch devmode_enabled Open ‘<board_ip>:9998’ in chrome browser. Transferring Web Page information... [Developer PC][Target borad]
  15. 15. [memory-match] [youtube] [web browser]
  16. 16. Current status • Web Application Manager works with Chromium68. • Upgraded from m53 to m68. • Chromium68 works with upstream wayland port. • It worked with the wayland port released by Intel and maintained by LGE. • Upstream has well-designed wayland port now. • Worked on Renesas m3 board, Minnowboard, and RPi 3. • Presented WAM Demo at CES 2019. • AGL has Web Application Manager at meta-html5-framework. • It doesn’t bundle any widgets. Try it with installing your own widget. • For example widgets, try meta-agl-lge with flounder branch.
  17. 17. Plans • Remove Qt dependencies. • Adapt WAM to new HMI architecture. • Improve proxy process permission control to system. • Upgrade to more modern Chromium version. • Stabilize and enhance performance. • Make better communication in WAM, between launcher and browser.
  18. 18. Questions Lorenzo Tilve (ltilve@) Jacobo Aragunde (jaragunde@) Julie Kim (jkim@)
  19. 19. Notice; May 7-9, AGL F2F meeting at Igalia office in Spain
  20. 20. Reference • https://www.slideshare.net/igalia/browsers-and-web-runtimes-fo r-automotive-alternatives-challenges-and-c-urrent-status-automot ive-linux-summit-2018 • https://www.chromium.org/developers/design-documents/multi- process-architecture • http://docs.automotivelinux.org/master/docs/apis_services/en/de v/reference/af-main/4-quick-tutorial.html • https://github.com/webosose/meta-agl-lge/tree/flounder.chromi um68

×