Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Meta: Progressive Web Apps (PWA) #1819

Closed
21 of 23 tasks
pocmo opened this issue Jan 24, 2019 · 16 comments
Closed
21 of 23 tasks

Meta: Progressive Web Apps (PWA) #1819

pocmo opened this issue Jan 24, 2019 · 16 comments
Assignees
Labels
🍀 meta needs:gv To implement/fix this we need a new API in GeckoView

Comments

@pocmo
Copy link
Contributor

pocmo commented Jan 24, 2019

Description

Progressive web apps use modern web APIs along with traditional progressive enhancement strategy to create cross-platform web applications. These apps work everywhere and provide several features that give them the same user experience advantages as native apps.

Resources

Target

User Stories

PWA MVP (Must)

Maybe

After Fenix MVP

Tasks

Needed

Nice-to-have

Later

Dependencies

┆Issue is synchronized with this Jira Task

@pocmo pocmo added 🐉 Fenix Feature needed for Fenix 🍀 meta labels Jan 24, 2019
@pocmo pocmo added the needs:gv To implement/fix this we need a new API in GeckoView label Jan 24, 2019
@st3fan
Copy link
Contributor

st3fan commented Jan 25, 2019

@pocmo WebAPK was left out of the MVP but we need to understand if that is actually a requirement for implementint PWAs. Also on whjat Android version that is supported.

@bbinto
Copy link

bbinto commented Jan 25, 2019

We might have to split this meta into 2 meta's so it's not spanning over 2 milestones and can be better tracked.

@shorlander
Copy link

@st3fan What kind of UX Feedback is needed here?

@pocmo
Copy link
Contributor Author

pocmo commented Jan 28, 2019

@shorlander I can think of at least:

  • How do we want to surface that a website is "installable" as PWA? In other browsers I see two major ways: Showing a badge in the URL bar (which Fennec does for a lot of other things too) and/or showing a bottom sheet or snackbar (sometimes with some heuristics that it doesn't show up all the time).

  • When adding the app to the home screen: What UI do we present the user? Other browsers at least show a confirmation dialog; often with the ability to edit the "title" that will be used on the home screen.

@andreasbovens
Copy link

andreasbovens commented Jan 30, 2019

@pocmo @shorlander

Showing a badge in the URL bar (which Fennec does for a lot of other things too)

I strongly suggest we go for the badge approach. It's less intrusive than a snackbar, which other browsers are aiming to move away from (in favor of badging).

confirmation dialog

I think we should also show one, so as to better indicate what exactly is going on to the end user. An editable title is a possible nice-to-have, but not a must.

@andreasbovens
Copy link

andreasbovens commented Jan 30, 2019

@pocmo

In Fennec-powered PWAs, we open external URLs in a Custom Tab, using the PWA's theme color. This is also something we should have in Fenix (and we probably want to create a user story around it).

@andreasbovens
Copy link

andreasbovens commented Jan 30, 2019

@pocmo @shorlander

@st3fan What kind of UX Feedback is needed here?

We need to decide what the PWA's generated splash screen should look like as well. Typically, these are generated from assets referenced in the manifest. We need to decide how we want to arrange and animate these splash screens.

@andreasbovens
Copy link

@pocmo @bbinto

Small sidetrack: we need to decide what we want to do with sites that don't have a valid manifest (and are normal sites or broken PWAs). In Fennec, we have an "Add shortcut" option for that reason, which simply generates an icon and title from the site's metadata and places a URL shortcut on the home screen. When launched, the URL in question is just opened in a new tab. Is this something we're planning as well?

@pocmo
Copy link
Contributor Author

pocmo commented Jan 30, 2019

In Fennec-powered PWAs, we open external URLs in a Custom Tab

@andreasbovens External URLs in this case are links that leave the scope defined in the manifest, right?

@ghost ghost added 🍀 meta and removed 🍀 meta 🐉 Fenix Feature needed for Fenix labels Apr 10, 2019
@lime124
Copy link
Collaborator

lime124 commented May 1, 2019

removing reference browser issues from UX feedback board. please ping stefan if you need support from a ux team member.

@pocmo
Copy link
Contributor Author

pocmo commented May 2, 2019

@lime124 This is not reference browser :)

@liuche
Copy link
Contributor

liuche commented May 15, 2019

@pocmo adding a bit more context here, from meeting with the TWA folks at googlio.

To summarize, the things that they said we'd need to implement are:

  • Custom Tabs API ✅
  • Digital Asset Link Verification to ensure the website and the app come from the same developer. ("The actual logic here should be pretty easy to copy from Chromium", and we can get guidance if we need it)
  • Hiding the browser chrome if the Digital Asset Link Verification succeeds.
  • Ensuring that it comes back if the user navigates away from the origin they are verified with.

At this point you've got a basic, passable TWA implementation.

  • Notification Delegation, so that push notifications from the website are handed to the app to display.
  • Notification Delegation Auto-Enrolment, so that the website gets notifications enabled if the app is installed.
  • Splashscreens (more of an optional feature, was apparently painful to implement)

Additional privacy/user data control features:

  • The "Running in Chrome/Firefox" infobar that is shown on first run to alert the users that what they do in the app is seen by Chrome.
  • When the user uninstalls the TWA (or clears data for it through Android settings), we display a dialog saying "This app also had data in Chrome, would you like to clear this too?"

Misc: some TODOs for updating documentation in TWA Chromium code.

@vesta0
Copy link
Collaborator

vesta0 commented May 21, 2019

Thanks for summarizing @liuche !

@pocmo can we breakdown the GV requirements to accomplish the above?

@pocmo
Copy link
Contributor Author

pocmo commented May 21, 2019

@vesta0 Filed this as a separate issue for now - feel free to drop it into the sprint if you think we should do that asap: #3061

@vesta0
Copy link
Collaborator

vesta0 commented May 21, 2019

Thank you @pocmo ! FYI PWA/TWA work are next high priority AFTER all MVP P1s are completed :)

@pocmo pocmo removed the should label May 28, 2019
@vesta0 vesta0 removed Epic labels Jul 5, 2019
@vesta0
Copy link
Collaborator

vesta0 commented Apr 15, 2020

The PWA feature has been completed, thanks to amazing hard work by several cross-functional teams 🎉 🎉 🎉

The only 2 remaining non-urgent items (Web Push and Splash Screen) will be addressed separately as we continue to enhance PWA experience in the future.

@vesta0 vesta0 closed this as completed Apr 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🍀 meta needs:gv To implement/fix this we need a new API in GeckoView
Projects
None yet
Development

No branches or pull requests

9 participants