#589: Declarative Link Capturing

Visit on Github.

Opened Dec 17, 2020

HIQaH! QaH! TAG!

I'm requesting a TAG review of Declarative Link Capturing for Progressive Web Apps.

New Web App Manifest members to control what happens when the user navigates to a page within scope of an installed web app.

This feature introduces the "capture_links" member, an enumeration allowing the customization of link capturing behaviour, allowing sites to:

Further details:

  • I have reviewed the TAG's API Design Principles
  • The group where the incubation/design work on this is being done (or is intended to be done in the future): WICG
  • The group where standardization of this work is intended to be done ("unknown" if not known): Web Apps WG
  • Existing major pieces of multi-stakeholder review or discussion of this design:
  • Major unresolved issues with or opposition to this design:
  • This work is being funded by: Google

This is a sibling spec to URL Handler which would allow link capturing from different origins and URLs outside of the app scope. We are collaborating with Microsoft (the primary authors of URL Handler) to make sure these two projects fit nicely with one another.

We'd prefer the TAG provide feedback as (please delete all but the desired option):

☂️ open a single issue in our GitHub repo for the entire review (since we are currently sharing the repo with sw-launch)

Discussions

2021-01-Kronos

Minutes

Alice: This is very much an "early review".

... looks promising to handle the use cases that are described

... to note that there are a narrow set of use cases in the first place

... lots of actions in capture-links, would be nice to know when to use what (e.g. examples)

... wonder how this works in mobile OSes, where one runs one app at a time

Sangwhan: There was a previous attempt to address this and that wasn't very well accepted (sw-launch)

Alice: Not clear to me whether it wasn't accepted, or just ran out of steam...

Sangwhan: Or they realised it would be too hard to implement, decided to go for a simpler API

(Alice typing a draft comment, Sangwhan reading explainer)

Sangwhan: This makes sense. Why was this not there in the first place?

2021-03-08

Minutes

Tess will write feedback re: new_client behavior on platofrms that don't support multiple windows.

2021-04-26

Minutes

Amy: privacy & security questionnaire in a google doc.

Ken: I also get access denied.

Dan: it should be a markdown file in the WICG repo along with the spec

Ken: about to ship? I think they already made changes based on my comments.

Dan: looks good to me

Hadley: makes me uneasy in the same way that changing forward and back behaviour makes me uneasy

Ken: which they're not changing

Hadley: we did talk about that at the time, uneasy rather than full on problem

Dan: one thing I like is that it's not proposing a new JS API, the declarative aspect. It's extensions to the manifest file.

Yves: I'm sure this is a use cases in miniapps, some coordination here would be good. Especially as there is a WG on that.

Dan: this goes to the manifest file...

Ken: this is going to go into incubation, Marcos does not want to add anything to manifest that isn't implemented in browsers

Hadley: just for navigating to URLs within the applications navigation scope?

Ken: if you have installed a PWA it will focus instead of opening another window.. give you control to reuse existing tabs

Hadley: one reason I use web apps vs native apps, eg. twitter, if I'm clicking on a link I'd prefer to read the article in the brower rather than in twitter's web view

Ken: this is the same origin. Twitter would create another window that would embed in iframe, it should open in a separate window. You can always right click and say open in new tab/window. I understood you could change the default on ChromeOS. Right click > always open in new window. You can control it yourself, that's nice.

Hadley: I like the scope of this.

Dan: in an ideal case this spec provides a more web like experience for web apps that make use of the manifest. What you said about twitter is why I use twitter as a PWA as opposed to the app, because I want everything I do on twitter to be in the same context as my other web browsing. I'm asking a question about visibility of browser engines.

Sangwhan: I vaguely remember seeing something analogous to this in a miniapps spec

Ken: developers and people we're talking with doing PWAs all want this

Sangwhan: I'm sure this is useful for many people

Ken: for creating app like experiences on the web it's very useful. Flexible way is to use service worker and give you full control of windows inside your domain so youc an focus them and do whatever you want. But that's not coming now, this is in between, 80% or more use cases.

Dan: wait to hear back about S&P questionnaire and check back in plenary