WPE WebKit. HTML5 user interfaces for embedded devices. Juan José Sánchez Penas Embedded Linux Conference Prague, October 2017

Similar documents
Wayland Support in Open Source Browsers

Update on the open source browser space

Building a Browser for Automotive: Alternatives, Challenges and Recommendations

WPE. Current Status & Future. Žan Doberšek.

Chromium on Wayland - Status update. Automotive Grade Linux F2F meeting (04/2017) Antonio Gomes & Silvia Cho

What's new in GStreamer

State of the ${kit} (kit=webkitgtk+) Adrián Pérez Igalia

Web browser architecture

GStreamer in the living room and in outer space

Graphics Stack Update

Chromium s Way to Wayland October 11, 2017

Porting Tizen-IVI 3.0 to an ARM based SoC Platform

Introduction to creating 3D UI with BeagleBoard. ESC-341 Presented by Diego Dompe

Porting Tizen-IVI 3.0 to an ARM based SoC Platform. Damian Hobson-Garcia, IGEL Co., Ltd.

Integration of the Chromium. Browser in the GENIVI Platform

Khronos and the Mobile Ecosystem

The Mobile Internet: The Potential of Handhelds to Bring Internet to the Masses. April 2008

Connecting with Tizen : An Overview & Roadmap. Mohan Rao

Chromium Blink on Wayland with HW accelerated video playback using Gstreamer

QtWayland. Creating Window Compositors with the QtWayland module

Applications and Implementations

T I Z E N Ve r 2. 3 O v e r v i e w Open Source Project

Mobile AR Hardware Futures

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

WHAT IS WEBKIT? COPYRIGHTED MATERIAL SMASHING WEBKIT CHAPTER 1

IGME-330. Rich Media Web Application Development I Week 1

X11, X12, What next. And its companion: the ROOT GUI

QCon - Mobile Maps HTML5 Team Andrea

Meet Crosswalk New HTML5 Runtime. Sakari Poussa Intel

What s new in GStreamer. GUADEC, Strasbourg 26 July Tim-Philipp Müller Sebastian Dröge

Experiences Developing a Wayland-Based Tizen IVI HMI. Ossama Othman

What's new in GStreamer Land The last 2 years and the future

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

What s cooking in GStreamer. FOSDEM, Brussels 1 February Tim-Philipp Müller Sebastian Dröge

Present and Future of the RhoMobile platform. Migrating legacy applications, Node.js on mobile devices right now and more

OpenSDK OE Builds on 96Boards. Andrey Konovalov (LHG)

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

In the Driver s Seat

GStreamer in the living room and in outer space

WebKit GTK on (electronic) paper. Marco Barisione linux.conf.au 2009, Hobart

WebGL Meetup GDC Copyright Khronos Group, Page 1

Team Up: Contributing to the Tizen Platform. Narasimha Swamy Sanjay NM

Company introduction

Introduction to Sencha Ext JS

Experiences Developing a Wayland Based IVI HMI. Ossama Othman 28 May 2013

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01

Choosing free software graphical libraries for embedded devices

Lecture 4 Native libraries

Overview and AR/VR Roadmap

B r o w s e r s u p p o r t

Our Technology Expertise for Software Engineering Services. AceThought Services Your Partner in Innovation

EFL on Wayland. Rafael Antognolli October, 22th

Open Standards for Building Virtual and Augmented Realities. Neil Trevett Khronos President NVIDIA VP Developer Ecosystems

Tizen Overview (Tizen Ver. 2.3)

Meet Qt. The Leading Cross-Platform Application and UI Framework. The Qt Company. June

Unifying the Flash and HTML5 Video Experience

FOSDEM 3 February 2018, Brussels. Tim-Philipp Müller < >

Status of the Embedded GPU Space

The pathway to Chromium on Wayland

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Creating outstanding digital cockpits with Qt Automotive Suite

<Insert Picture Here> JavaFX 2.0

Optimizing Android in the ARM Ecosystem. ARM Strategic Software Alliances

HTML5 Mobile App Development

WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution. Juan J. Sánchez LinuxCon Japan 2014, Tokyo

Copyright Khronos Group Page 1

How Libre can you go?

WebGL. WebGL. Bring 3D to the Masses. WebGL. The web has text, images, and video. We want to support. Put it in on a webpage

BUD Status of Android AOSP TV Project. Khasim Syed Mohammed, Tech Lead Linaro Home Group

The Road to the Native Mobile Web. Kenneth Rohde Christiansen

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

WebGL, WebCL and Beyond!

Firefox for Android. Reviewer s Guide. Contact us:

Vulkan 1.1 March Copyright Khronos Group Page 1

OpenMAX AL, OpenSL ES

FOSDEM Open Media Devroom. 02 February 2019, Brussels. Tim-Philipp Müller < >

Copyright Khronos Group, Page 1. Khronos Overview. Taiwan, February 2012

HTML5 HTML & Fut ure o Web M edi dia Streami a est Work h op, ov 2010 Michael Dale Zohar Babin eve oper o Dev R l e t a i tions & C

Applications and Implementations

Firefox OS App Days. Overview and High Level Architecture. Author: José M. Cantera Last update: March 2013 TELEFÓNICA I+D

OpenCL Press Conference

Qt for Device Creation

November 2017 WebRTC for Live Media and Broadcast Second screen and CDN traffic optimization. Author: Jesús Oliva Founder & Media Lead Architect

Why you should be excited about Qt 5

Nokia for developers. Alexey Kokin. Developer Relations

EFL at ELC 2016 A toolkit for developping efficient and attractive Uis on embedded devices

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules

Tizen IVI Architecture New features

Install Flash Plugin Manually Internet Explorer 9 Webm

Overview. Technology Details. D/AVE NX Preliminary Product Brief

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Supported Devices, OS, and Browsers

Sage ERP Accpac Version 6.1. Coming Q4 2011

Google chrome theme background image

SC24/WG9 Liaison Meeting

AR Standards Update Austin, March 2012

Review of Mobile Web Application Frameworks

Tizen IVI Architecture New features. Dominig ar Foll, Intel Open Source

Transcription:

WPE WebKit HTML5 user interfaces for embedded devices Juan José Sánchez Penas Embedded Linux Conference Prague, October 2017

Myself, Igalia and Web Browsers Co-founder of Igalia in 2001. 60 engineers. Global Open source consultancy: browsers, multimedia, graphics compilers, networking,... Igalia among the top contributors to upstream web browsers WebKit/JSC, Chromium/V8, Firefox/Servo/SpiderMonkey Working with the industry: tablets, phones, smart tv, set-topboxes, automotive and several other embedded devices manufacturers

Outline of the talk Part I: Why WPE? Problem and proposed solution Part II: What exactly is WPE? Architecture and features Part III: Where is WPE going? Current status and future

PART 1 Why WPE? Problem and proposed solution

The problem: HTML5 and embedded devices Embedded devices are getting sophisticated Many have (or will have) GNU/Linux with a touch screen and will run apps The web is powerful, flexible and a comfort zone for many application developers Frequent use case: full-screen (kiosk mode web apps) Still low-end or mid-end hardware (limited resources, optimizations needed)

The solution: browser for embedded devices Focus on lightweight No need to solve all the use cases and needs Open source options we can base it on: Firefox (Servo) / SpiderMonkey Chromium / Blink / V8 WebKit / JSC

Firefox (Servo) / SpiderMonkey? Years ago Mozilla decided not to target other browser developers Several open source browsers moved away from Gecko to WebKit about 10 years ago Firefox/Gecko has a quite monolithic architecture today Things might get better with Servo, but it is too soon

Very powerful and feature complete Not a flexible architecture No stable API provided for derived browsers (fork needed) Some interesting solutions: Chromium Embedded Framework (CEF) QtWebEngine Chromium / Blink / V8? Not particularly optimized for low-end hardware, Wayland support not ready in Linux yet, licensing issues,...

WebKit, then? Also powerful and complete (Safari for OSX and ios) Very flexible architecture (ports) Ports provide a stable API and can be part of upstream Available ports not ideal for our use case: Upstream: ios, OSX, GTK+ Downstream: EFL, Qt, Sony,... Solution: creating a WebKit port for embedded devices

PART 2 What is WPE? Architecture and features

WebKit Web rendering engine. The engine is the product Open source (and open development) since 2005 Fexible 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

WebKit ports: examples

A new WebKit port: WPE Key requirements Main use case: full-screen content Fast and lightweight, minimal set of dependencies Most HTML5 features need to be supported WebGL Accelerated canvas Hardware accelerated CSS 3D transformations Hardware accelerated video playback

A new WebKit port: WPE Architecture Derives from WebKitGTK+. Part of the codebase shared Toolkit and platform agnostic GStreamer for media. JSC as JavaScript engine Reduces the dependencies to a few common libraries: Glib, FreeType, HarfBuzz, GnuTLS, pixman, cairo, libsoup GLES 2.0 for hardware accelerated rendering Multiprocess: UI, Web, Network and Storage in different processes Intensive threading in composition, image decoding, media playback

A new WebKit port: WPE Backends Main goal: efficient cross-process GPU buffer sharing Wayland, libgbm and other native implementations Necessary to glue the backend facilities with the provided EGL platform Renderer backend provides rendering target View backend provides a way to display the rendered buffer on screen Vulkan support down the line

A new WebKit port: WPE Current backends Libgbm: Intel, AMD, open-source NVidia drivers for embedded devices (i.e. Jetson) -- specific to the Mesa library Wayland-egl: uses Wayland as the protocol internally, can be used by Mesa as well as ARM Mali drivers LibWPEBackend-rdk: covers 4-5 different stacks (RPi, IntelCE, bcmnexus via the native API, bcm-nexus via Wayland, westeros - RDKoriented compositor) Working on an experimental libwpebackend-android

A new WebKit port: WPE Lightweight Reference hardware: Rpi 0-3 (desktop used for development too) A functional Raspberri Pi image can be about 40MB Low memory footprint: possible to define limits to consumption <100MB for a standard configuration Able to play YoutubeTV on a Rpi 0-1: Using textured video Raspberry Pi 0/1 is ~1000 DMIPS

WPE strong focus on media (I) Hardware accelerated decoding where GStreamer plugins are available (Raspberry Pi and Broadcom Nexus) Hardware accelerated video rendering using GLES (allows CSS 3D transformations on the video) External rendering (hole punch) when required

WPE strong focus on media (II) Media Source Extensions (MSE) support MP4 done, WebM in progress (VP8 and VP9) Youtube conformance 2016 passed, 2018 in progress Encrypted Media Extensions (EME) support 0.1b (V1) done, with ClearKey and PlayReady Proposed candidate (V3) under development: Object oriented and promise based Clearkey (W3C compliance and testing purposes) PlayReady and Widevine (using OpenCDM) WebRTC support Prototype done with OpenWebRTC (limitations) Now adding libwebrtc in collaboration with Apple

PART 3 Where is WPE going? Current status and future plans

WPE current status: upstream Port started in 2014 as an experiment Heavily developed during 2015-2017 Integrated in WebKit upstream since May 2017 Stable Igalia team working on it Community growing Functionally it is quite complete today!

Media&entertainment industry: WPE current status: adoption Initially sponsored by Metrological RDK consortium adopted the technology Used by Comcast, Liberty Global and others >10M set-top-boxes with WPE. Number growing Since 2017: several new use cases, various kinds of embedded devices adopting industrially WPE ==> More hardware supported

WPE: ongoing and future efforts (I) Stable release cycles: Every 6 months (sync with WebKitGTK+) They will be preview releases for now Improved QA infrastructure More tests, more architectures, more target devices More documentation (project website)

WPE: ongoing and future efforts (II) New graphics architecture Further work on multimedia standards Networking & security Other Web Platform standards (WebDriver, WebGL2, WebVR,...) JSC improvements on 32bits (MIPS, ARMv6, ARMv7) Android prototype

WPE current status: repositories Upstream WPE: https://webkit.org/getting-the-code/ Downstream WPE: https://github.com/webplatformforembedded (Includes some set-top-box related bits, and ad hoc solutions for specific target hardware in the context of RDK. Works as a playground for unstable or testing features which do not have a room in upstream yet) Collaboration is welcome!

Thanks! jjsanchez@igalia.com