IRC log of webview on 2022-05-11

Timestamps are in UTC.

07:01:43 [RRSAgent]
RRSAgent has joined #webview
07:01:43 [RRSAgent]
logging to https://www.w3.org/2022/05/11-webview-irc
07:02:29 [QingAn]
QingAn has joined #webview
07:02:36 [dom]
Present+ Brady_Duga, Rayan_Kanso, Jiasheng_Wu, Qing_An, DomHM
07:02:39 [cpn]
cpn has joined #webview
07:02:44 [duga]
duga has joined #webview
07:02:57 [tomayac]
present+ tomayac
07:03:04 [dom]
Present+ Thomas_Steiner, Martin_Alavarez
07:03:05 [duga]
present+ duga
07:03:21 [martin]
martin has joined #webview
07:03:23 [Zakim]
Zakim has joined #webview
07:03:46 [dom]
Agenda: https://github.com/WebView-CG/usage-and-challenges/blob/main/meetings/2nd-meeting-agenda-220511.md#second-meeting-agenda-2022-05-11
07:03:55 [dom]
Chair: Rayan, Qing
07:04:11 [martin]
present+ martin
07:06:17 [dom]
Topic: -> https://github.com/WebView-CG/usage-and-challenges/issues?q=is%3Aissue+is%3Aopen+label%3A%22use+case%22 Review and discuss use cases
07:06:44 [cpn]
present+ Chris_Needham
07:06:46 [dom]
Subtopic: -> https://github.com/WebView-CG/usage-and-challenges/issues/3 Load a WebView page #3
07:07:17 [dom]
QingAn: the browser provides prefetch, load and next as resource hints to optimize the load of associated resources
07:07:21 [dom]
... but webviews don't support this
07:08:07 [dom]
... allowing prefetching data in JSON and XML would be beneficial e.g. in an ecommerce site to preload product info
07:08:18 [dom]
... this helps improve the UX
07:09:35 [dom]
... this got support from Bytedance, with a suggestion of providing prefetch capabilities
07:09:50 [dom]
... but this converged to providing in the Web Platform in general rather than for WebView specifically
07:10:29 [duga]
q+
07:10:30 [QingAn]
q+
07:10:31 [QingAn]
q-
07:10:31 [dom]
... We should discuss whether this is a valid use case
07:10:34 [QingAn]
q?
07:11:15 [dom]
duga: Brady Duga, at Google but not representing WebView, coming from the ePUB WG, representing digital publishing
07:11:50 [dom]
... This is a very important use case for us - reading ebooks on Android and iOS happen mostly on WebView, but end users don't expect a load-the-web-page experience in that context
07:12:05 [dom]
... we need very nice transitions when moving from one book page to the next
07:12:34 [dom]
... this requries non amount of trivial work needed, e.g. to use CSS animations
07:12:42 [dom]
... preloading pages performance is incredibly important for us
07:12:50 [dom]
... so definitely a valid use case
07:13:48 [dom]
Qing: similar need from the mini-app perspective
07:14:57 [dom]
q+ rayan
07:15:00 [dom]
ack duga
07:15:00 [QingAn]
q?
07:15:31 [dom]
rayan: this is all for on-device data, not fetched - so more pre-rendering rather than pre-fetching?
07:15:59 [dom]
brady: fonts may take a while to load from storage; we don't want to show the page in the wrong font
07:16:06 [QingAn]
q?
07:16:07 [dom]
... some preloading, but pre-rendering is the most important for us
07:16:11 [dom]
ack rayan
07:16:48 [dom]
Qing: rough consensus that this is a valid use case; I'll keep the issue opened to gather more comments
07:17:01 [dom]
... we should bring it to the document
07:17:25 [QingAn]
q?
07:17:34 [dom]
Rayan: is there a need specific to native re prefetching? or would bringing this to the Web platform be the right approach?
07:17:41 [dom]
q+ jiasheng
07:17:51 [dom]
q+
07:19:34 [dom]
Qing: summarizing what I understood from jiasheng - an ecommerce app cannot pre-load all pages, since the user can view any product
07:20:05 [dom]
... with a traditional webview, when the user opens a new product page, the webview will fetch html and css which causes delay instead of using native to render the page
07:20:57 [dom]
... if the webview could prefetch with the native app predicting the most likely-to-be-requested page based on the user's profile
07:21:34 [dom]
... it could prefetch the said page beforehand, and if the user does request it, it would provide a very good performance
07:21:52 [dom]
jiasheng: +1 - loading results from local cache is faster than from network
07:22:20 [dom]
rayan: so the native side decides what pages to download and cache them in webviews
07:22:31 [dom]
... this could still be done from the WebView?
07:23:10 [dom]
... using Web Platform features
07:23:27 [QingAn]
q?
07:23:39 [QingAn]
ack jiasheng
07:23:46 [dom]
ack jiasheng
07:23:54 [dom]
ack dom
07:24:11 [dom]
... it's better if we expose features in Web Platform when we can
07:24:33 [dom]
qing: +1
07:24:52 [QingAn]
q?
07:25:22 [dom]
Topic: -> https://github.com/WebView-CG/usage-and-challenges/issues/4 Build opinionated web browsers #4
07:25:47 [dom]
tomayac: there is a desire from companies like DuckDuckGo to push a particular approach to Web browsing
07:26:44 [dom]
... e.g. DDG browser blocking trackers and removing cookie banners when possible
07:27:05 [dom]
... to that end, they inject a number of user scripts, either custom built or imported
07:28:05 [QingAn]
q+
07:28:13 [dom]
... right now this is exposed via developer tools
07:28:37 [dom]
QingAn: is it common for browsers to use WebView to display pages?
07:29:32 [dom]
Tomayac: BA share code between their native app & browser, with a user script removing the header / footer in their native app
07:30:07 [dom]
... I noticed by accident when finding the same bug in both
07:30:58 [dom]
... a core differentiation is that a browser can load any URL
07:31:27 [dom]
QingAn: what would be needed to support this use case? either from the webview or native side?
07:32:16 [dom]
tomayac: some users may not be happy with some of the opiniated scripts - that may a very advanced use case
07:32:36 [dom]
... from the group perspective, maybe this is mostly about acknowledging that webviews *are* used to build browsers
07:33:07 [dom]
... on iOS, using a webview is even the only approach
07:34:00 [dom]
... the DDG browser chose to also take this approach on Mac, possibly as a way to re-use their iOS work
07:34:11 [QingAn]
q?
07:34:21 [QingAn]
ack QingAn
07:36:57 [dom]
QingAn: who are the stakeholders for this use case who could join the discussion?
07:37:13 [dom]
tomayac: I'm not sure who the right contacts at DDG would be
07:37:16 [dom]
q+
07:38:22 [dom]
dom: I can reach out to them
07:39:37 [dom]
Subtopic: -> https://github.com/WebView-CG/usage-and-challenges/issues/6 Publishing apps using web technologies #6
07:40:18 [dom]
QingAn: feels like a compilation of several use cases, with a request to support from APIs from the Web Platform
07:40:36 [dom]
... as well as customizing permissions, and communications between WebView & Native
07:40:43 [dom]
s/Topic:/Subtopic:/
07:40:51 [dom]
... I'll try to dig more into the latter
07:41:04 [dom]
... there are private solutions in different platforms
07:41:15 [QingAn]
q?
07:41:18 [dom]
q-
07:41:53 [dom]
Subtopic: -> https://github.com/WebView-CG/usage-and-challenges/issues/9 Optional network interception capability in WebView
07:43:57 [dom]
jiasheng: [presenting the use case]
07:45:02 [dom]
... Android has shouldInterceptRequest to help with this, but no equivalent in WKWebView
07:45:03 [QingAn]
q?
07:46:04 [dom]
... it would be great to see that capability expanded to other webviews
07:46:19 [QingAn]
q+
07:47:04 [dom]
QingAn: should we accept this as a valid use case?
07:47:05 [dom]
q+
07:47:11 [dom]
ack me
07:47:19 [dom]
ack QingAn
07:47:42 [dom]
Rayan: are there any valid use case for intercepting 3rd-party network requests, ie domains not owned by the application?
07:48:10 [duga]
q+
07:48:34 [dom]
QingAn: this issue describes first-party requests, but doesn't say whether this would also apply to 3rd party as well
07:48:37 [dom]
q+
07:50:00 [dom]
jiasheng: there are scenarios where it would also be useful for 3rd parties e.g. to accelerate loading performance of 3rd party content
07:50:10 [dom]
QingAn: please describe these in the github issue
07:50:42 [dom]
brady: from a digital publishing perspective, there are times where we want to intercept 3rd party requests
07:50:54 [dom]
... e.g. when loading a video
07:51:26 [dom]
... for privacy and performance reason, they might be locally cached to avoid pinging the hosting Web site
07:51:44 [QingAn]
q?
07:51:48 [dom]
ack duga
07:52:03 [dom]
rayan: intercepting 1st and 3rd parties network requests have very different constraints
07:52:19 [dom]
... Service Workers can do the former in the Web Platform context
07:52:27 [QingAn]
q?
07:54:16 [dom]
dom: interesting that this is available in one platform (android), but not another (ios) - we should look how broadly that feature is available across all webviews
07:54:48 [dom]
... also interesting to see if we handle this as a single use case for 1st/3rd party resources, or if handling them separately will help explore the solution space
07:55:05 [dom]
QingAn: let's keep discussing this issue
07:55:43 [dom]
rayan: I think distinguishing 1st party/3rd party use case will likely help, but it's probably too early yet to split the use case
07:56:11 [dom]
Qing: let's continue discussion on the remaining use cases on github & in our next call
07:56:39 [dom]
Topic: Kick off the use cases and limitations report draft
07:57:47 [dom]
-> https://github.com/WebView-CG/usage-and-challenges/blob/main/index.html Template document for use case
07:57:56 [dom]
QingAn: will start populating this with use cases
07:58:38 [dom]
Topic: TPAC 2022
07:58:57 [dom]
QingAn: CGs are invited to organize meetings at TPAC 2022
07:59:15 [dom]
... are you all planning to attend TPAC physically?
08:00:02 [duga]
Attending
08:00:18 [dom]
Rayan: we should probably survey the group to get a sense of who might be there
08:00:57 [dom]
QingAn: any immediate preference on the day for our meeting?
08:02:14 [dom]
dom: we should probably collect info on groups we wouldn't want to overlap with
08:02:45 [dom]
QingAn: re timeslot, since Chinese participants aren't likely to travel, picking the early timeslot would be best
08:03:32 [dom]
... I'll collect feedback from other CG participants via email
08:04:00 [dom]
... Our next meeting will be 2 weeks from now, May 25 at 2 pm UTC
08:04:11 [dom]
RRSAgent, draft minutes
08:04:11 [RRSAgent]
I have made the request to generate https://www.w3.org/2022/05/11-webview-minutes.html dom
08:04:13 [dom]
RRSAgent, make log public