W3C

– DRAFT –
MEIG monthly meeting

02 August 2022

Attendees

Present
Barbara_Hochgesang, Chris_Lorenzo, Chris_Needham, Gary_Katsevman, Jake_Holland, Jordan_Holt, Kaz_Ashimura, Murray_Coghill, Tatsuya_Igarashi
Regrets
-
Chair
Chris_Lorenzo, Chris_Needham, Tatsuya_Igarashi
Scribe
cpn, kaz

Meeting minutes

Introduction

ChrisN: Welcome everyone

TV developer experience

<kaz> Tizen Web Application site

ChrisL: Comcast is one of the largest TV and internet providers in the US
… I've being doing web development for 20 years, from IE to Firefox, Chrome. Building web apps, following the evolution of JS and webdev for many years
… Tools have come and gone over that time
… I'm new to the TV space, I've built web applications for the browser and mobile. In the last few years, building apps using web technology
… What should be the landscape in the future?
… Part of our work at W3C is how to make things better
… We look at performance, and now developer experience
… I did an exploration of what it's like to develop on TV. Here I'll talk about one specific example, not a criticism in any way, most TVs have something similar
… I'll look at Tizen, my external monitor is a Samsung screen, I wanted to learn what it's like
… How do I go about creating an application? I have created apps using the Lightning framework
… I read the Tizen docs - no criticism of the current state of things
… Need to understand where we are today, including the mobile web, how to move forward?
… There's a complex package flow and a studio for creating applications
… I got that running, the first thing I notice it's based on Eclipse. Installing on a Mac took a while, it's not a signed app
… The JDK environment took some setting up, and extensions
… Tizen studio is interesting, as it's made for TV and mobile and watches, solving everything at one
… Using this environment, it seems web is not a first class citizen, other native language. Similar with Android, iPhone as the web experience isn't great
… ES6 import syntax isn't supported out of the box. It's hard to develop
… I got their sample watch app running, a canvas rendered watch on the TV
… They also support VSCode via an extension, with Tizen studio CLI tools to build the project
… This was also difficult to get running
… The Tizen build process uses a proprietary web package, WGT format, which bundles the files, with a config.xml, which follows the W3C Widget Packaging and XML Configuration

<kaz> Widget Packaging and XML Configuration - W3C Recommendation 27 September 2011

<kaz> Packaged Web Apps (Widgets) - Packaging and XML Configuration (Second Edition) - W3C Recommendation 27 November 2012 obsoleted 11 October 2018

ChrisL: That's from 2011, not recommended any more
… So they solved a problem at the time, built tooling around it, but diverged from where the web has gone
… That's something to discuss
… You write your code, then run a build a process. If you're a web developer there are bundlers for JavaScript
… Tizen has a built in tool to do that, not sure if it supports ES6 import
… So it feels that the web isn't a first class citizen. Hard to keep up with the latest JS trends if you're building your own tooling
… They have Tizen and Samsung Developer documentation, hard to find the latest
… There are starter templates to create sample applications for TV
… Getting the app to run on the TV was a difficult task. There's a web simulator that runs your project
… Running a web application in an emulator means there's something non standard. They have a lot of TV APIs, such as for volume
… If the browser is the default standard, how to create TV specific APIs
… Mobile solved that by having geolocation and orientation APIs
… We could introduce APIs for TV specific browsers
… I want to be able to use a desktop browser and have it work identically
… There's a Web Simulator, Web Emulator, and APIs available to use in the emulator
… I want to be able to use the latest tools
… Finally, getting it to run on the TV was difficult, enable developer mode on the TV, then tell it the IP address to accept incoming connections
… You have to create a Samsung account and certificate. It's a lengthy process to load a web app on the device
… This isn't to criticise Samsung, it's common across TV manufacturers. I don't know how critical the security part is
… Any questions?

Jake: Thanks Chris. Is there an embedded browser in the TV OS?

ChrisL: The development tools are based on Eclipse, but the actual browser in the TV is Chromium, updated to new versions each year as each new TV model is released
… They support most of the browser features. One issue is that the browser doesn't upgrade to a newer version
… Comcast RDK uses WebKit. It's optimised for canvas rendering, WPE (WebKit for embedded devices)

Jake: Do they do any upgrade of the underlying browser or OS?

ChrisL: The 2020 TV version is locked at a specific Chromium version

Jake: What are the constraints?

ChrisL: Something to talk about, depends on the lifecycle of the chipsets, the hardware may not be powerful enough
… Expensive to verify new browser works
… TVs hide the browser, it's full screen, no URL bar, so hard to check things like the version
… Desktop browsers update each week, so it's a different environment

Kaz: Are you interested more in the production workflow or widget standards, or both?
… The MiniApp group is working on a possible widget mechanism and framework, generating a requirements document

<kaz> MiniApp Widget Requirements

Kaz: We might want to generate some kind of requirements document from our viewpoint

ChrisL: Samsung has a component library, similar to miniapps, web components. For now I want to focus on how to load the app on a TV, the production process

Kaz: Many of the Japanese broadcasters were interested in that problem, and we had a seminar on that. The main environment at the time was Opera, 10 years ago. It's good timing to think about better workflows again

ChrisL: Chromium has been pushing forward. PWA has been a response to a problem of making the web relevant for apps, how to make web experiences that feel like native apps?

Progressive Web Apps

<kaz> What are Progressive Web Apps?

ChrisL: People built native apps for performance reasons
… How to create websites that compete with native apps?
… Native apps can do everything, they can access the hardware. PWA are the web but with a more native like experience
… You have a full screen experience, no URL bar, make it available offline, Service Worker, manifest file with icons, colors, offline preferences

<kaz> Starbucks Web App

ChrisL: The Starbucks web app was a PWA, but now it doesn't have a Service Worker
… Good developer tools support. Spash screen when it loads. A service worker is a network proxy where you can cache files for offline use
… It's a responsive app on mobile. TVs basically have set dimensions. The same technology could be used on TV, make installable apps
… Tizen creates a WGT file you install on the TV, they also support hosted web apps on a URL, but needs some approval steps

<kaz> Publish a Progressive Web App to the Microsoft Store

ChrisL: Microsoft has made a push on PWAs and publishing to the Microsoft Store. Mac has an app store too
… You can publish to the store so that it's downloaded and "installed"
… Going forward, would be great for TVs to have an app store you can load PWAs from
… They enhanced the PWA manifest, could talk about how it can be adapted for TVs. Good solution for installing
… Developer experience, if I have an editor, use npm start to run a local webserver and open that in the browser
… With Chromecast you can cast to the TV. I'd love for this to also support sending a URL to the TV
… The browser would automatically show the developer environment. Use devtools for debugging
… Tether phone to the laptop using USB, remote control it. That same environment with a remote connection could be done with TV
… Make it easy to reload, see console output, etc
… Build once, works everywhere. I think that's where I need to go

<kaz> ChrisL's site

Jake: Do you see TV apps as having a standardised set of APIs that they should implement?
… With most web apps there's a click-based UI, but for TV it's a remote control. How to do click emulation?
… Are there other expectations for being a TV app? What resources would these apps address? Are you thinking of a WG?

ChrisL: This is one piece of several. Developer experience, how to standardise getting an app on TV. Another piece is how to standardise API available on TV, e.g., to get product information, volume, accessibility
… The third piece is performance of web on TVs
… You're right, navigating on TVs is different. Keyboard or tabbing navigation. For TV apps, left, right, up, down buttons. Lightning solves that in JS
… I believe we should create an API to make keyboard and focus easier

Kaz: Interesting discussion. We should think about related technologies, such as when the PWA idea was introduced at Fukuoka, people thought it was related to ePub, another packaging spec for web apps
… We might want to survey the ePub approach. The web apps working group is working on web editing, keyboard event handling
… A survey would be useful to think about

ChrisL: there are a lot of pieces to move forward. And some difficulty, manufacters have done a lot to support building web apps, moving to something different will be a lot of work
… Can we make it simpler for everyone by following a standard?

Kaz: Samsung were also working on in-vehicle for connected cars. Web apps on embedded devices. This is good timing to revisit that (=Web Apps on embedded devices in general). Also there is new work on Web Editing by WebApps group. That might be also related.

cpn: The Second Screen WG is developing Presentation API and Open Screen Protocol, which allows a desktop browser to discover a compatible TV and open a URL. It would be interesting to explore how this could be used for TV app development.
… on the remote control side, developers typically make libraries
… LG guys proposed some extension for CSS
… called spatial navigation
… interesting to get update on those approaches
… to see if there is any progress

Jake: Another question about capabilities available to TV apps. Are the capabilities available to PWAs different to normal web apps? Is there a different permission model?
… I've been doing some work on multicast, aiming to make it browser compatible
… I'm wondering if there's a different angle, if there's a higher trust permission model that could provide access
… For example, the old NaCl feature in Chrome, behind a command line, not available to normal apps
… Because you go through an app store distribution model, it's not the same wild west?

<kaz> Fugu Status

ChrisL: On mobile vs desktop APIs, the great thing about the web is you can do feature detection to check if an API is supported or not
… Same with microphone or webcam. There's a lot of new APIs
… Similar for TV, we could have APIs built in, standardise across the TVs
… The OS layer would implement the (for example) text to speech
… Chrome has project Fugu, walking a fine line of enabling APIs while being mindful of security
… The good thing about the web is that if you have a domain, some way to tell the TV browser its trusted. Good security model, content security policy
… Chrome also only allows certain APIs over HTTPS

Next steps

<kaz> Draft Charter for the Web Apps on Consumer Products TF

ChrisN: Another thing is the TV business model, it may be that agreements are needed between publishers and manufacturers to install TV apps
… Also HbbTV and ATSC and Hybridcast take web specs and extend them with TV functionality. We could talk with them about TV features that should be common across all, and if W3C can standardise
… We've been developing a charter to scope the activities. We welcome input and feedback on that. We want this to be driven by practical feedback from application developers.

Jordan: Performance top of mind at the moment. Reduced frame rate can be an issue

ChrisL: Initially want to lower the barrier for getting apps onto TVs, make it easier to iterate, work on performance

Kaz: Given people are interested in this, we should introduce draft charter and invite comments

<ChrisLorenzo> https://github.com/w3c/media-and-entertainment/blob/master/media-performance/charter.md

Kaz: We can think about performance and production workflow easier too.

ChrisN: https://github.com/w3c/media-and-entertainment/pull/90 This PR adds in the developer experience part

<kaz> [adjourned]

Minutes manually created (not a transcript), formatted by scribe.perl version 192 (Tue Jun 28 16:55:30 2022 UTC).