W3C

– DRAFT –
WebViews - Usages & Challenges - TPAC 2022 breakout

14 September 2022

Attendees

Present
AndyLhurs, Brady, brwalder_, cmp, DavidHall, Dom, gpellegrino, PatrickMeenan, PeterConn, QingAn, Rayan, Tove
Regrets
-
Chair
An_Qing, Rayan_Kanso
Scribe
dom

Meeting minutes

Rayan: we'll discuss the WebView CG, give an overview of the webview ecosystem and give a perspective on usage and challenges of WebViews

<Andy_Luhrs> Is the Zoom call working? I'm seeing "The host has another meeting in progress"

<brwalder_> I'm having trouble joining the Zoom meeting

Rayan: the WebView CG was launched a few months ago to identify usages of WebView across platform, identify issues that emerge from it, and how they could be addressed, while raising awareness

<cmp> Thanks for fixing the Zoom call

<Andy_Luhrs> Yep, I'm in

Rayan: different people will have different definitions of a WebView

Peter: will share perspective on webviews ecosystem across platforms
… Android has Android WebView, iOs has WKWebView, and Windows has WebView2
… android webview allows to display web content in a native apps
… doesn't come with chrome or navigation controls
… 80% of android app use a WebView of some sort
… a WebView doesn't have an address bar, fancy browser feature (e.G. autofill), or doesn't have all web platform features
… in some cases these features don't fit well in a native context (e.g. the push api)

<Joe_M> Can the presentation link be put in the chat? It's a bit hard to see from the back.

Peter: they're not isolated browser context - the embedding app can see and modifty everything
… they're not a comprehensive toolfit to build browsers
… Using WebView Beta you can highlight WebView usage with a yellow background - helps identify their usage in many native apps
… Custom Tabs are different, they launched the page in a browser, with only limited interaction between the app and Web content
… The Custom Tab provides a middle point between launching a complete separate browser (which can create a distracting UX) and using a WebView to render any Web content (given the limitations of WebView in terms of features support and security)
… What isn't a custom tab?
… it isn't a single implementation - it's based on the user's browser
… it dpoesn't allow tight integration with native
… may be a bit confusing for users on whether they're in the app or the browser
… Android WebViews and Custom Tabs are at the extremities of a spectrum of Web/Native integration

@@@: is a custom tab always fullscreen or can it appear along the native app?

Peter: we're looking into allowing experimentally for half-screen

khushalsagar: not losing the context of the native app can be a motivation for using WebView

Peter: on iOS there is WKWebView very similar to android webview
… WKWebView have app-bound-domains sinec Sep 2020, that allows to set a webview for a tight integration for up to 10 domains
… right now, an opt-in, without technical control on what web sites you claim integration with
… There is also SFSafariViewController, which is similar to Custom Tab
… recommended to load content you don't load
… for Web views on Windows, there is WebView2 similar to android and iOS webviews

WebView Status USage and Challenges

Rayan: reviewing some of the outcomes of the community group

WebView: Usage Scenarios and Challenges

Rayan: we're meeting on Friday if you want to join our dsicussions
… Among our finding is a classification of webviews into 2 categories, "fully-fledged" vs "browser-like", along to what Peter described
… the latter usuallly have a simpler use case - content you don't own, so we focused on the former
… (suggestions on better names are welcome)
… 1st use case is around hybrid apps
… either Web apps packaed as native apps
… and in-app browsers

khushalsagar: why using packaged apps vs a PWA?

Rayan: usually to get more control

Rayan: Another use case is browsers - like the DuckDuckGo browser
… for an opiniated browser
… Another use case is also mini apps and super apps - for which there is a dedicated CG
… many more: advertising, epub readers

WebView Challenges

Rayan: many identified challenges
… one theme is performance: when using a webview, it creates latency for launching
… you may also want to pre-cache content to accelerate loading
… solutions could come either from the Web platform (through e.g. servier worker) or from the native side
… Integration of native components also falls in that category
… Another theme is inconsistencies
… WebViews don't have uniform support of Web platform features
… locally hosted content get handled differently across Web views (e.g. in terms of origins)
… JS injection, network interception, degguability tend not to be consistent either
… Last theme is around control: toggling features, permissions, 3rd party resources
… This tends to be controversial given security & privacy concerns that can arise from them
… Please join the WebView CG

<masaki> Could you share the slide URL?

<rbyers> https://drive.google.com/file/d/1lqUnum9Pbd8wGPjlPZ_Lqbb_HTsMcEeR/view?usp=sharing

<masaki> Thanks!

Reilly: in Chromium, we have an HTML tag implementation that we are in the process to write an explainer for
… the Web embedding itself would be a useful exercise to identify potential usages and issues

Rayan: definitely useful to consider

BenS: you mentioned app-bound domains - any plans to do something similar in Chrome?

Rayan: we're looking into it

dom: intersections between native policies and limiting security exposure will be part of the next phase of the CG

Rayan: definitely expect to see work in that space emerging

Brady: is there participation from other vendors?

<PEConn> Slides with the links working this time: https://drive.google.com/file/d/19-3Q54IZEKpjb_dXgNSeT_xyjSSnVute/view?usp=sharing

Rayan: we have participation from Microsoft so far

Jason: I'll see if we can get Mozilla involved

khushalsagar: what about weblayers?

rayan: weblayers is experimental, provides a full-fledged web view
… it adds better support for more web platform features
… it doesn't come with any particular restriction

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

Diagnostics

Succeeded: s/@@@/khushalsagar/

Succeeded: s/@@@/khushalsagar/

No scribenick or scribe found. Guessed: dom

Maybe present: @@@, BenS, Jason, khushalsagar, Peter, Reilly