Install Postulo, or open it in the installed app, from the browser's address bar #899

Closed
opened 2026-10-12 18:13:25 +00:00 by tiagoagueda · 0 comments
Owner

#895 made Postulo installable and put an Install entry in the account menu. This issue covers the browser's own address bar. There, a person should be able to install Postulo and, once it is installed, open the page they are on in the app window. They should not need to go into the account menu, and nothing should nag.

What is already there (since #895)

  • core:manifest serves id, scope: "/", start_url (the board), display: "standalone", icons 192/512 plus a maskable 512, and shortcuts. base.html links it with credentials.
  • /sw.js is registered for every signed-in visit and keeps only the offline page.
  • app.js cancels beforeinstallprompt (event.preventDefault()) and keeps it for the menu. The comment there assumes that "the address bar's install icon is still there for anybody who looks". Nobody has checked that this holds on every browser.

What to do

  1. Install from the address bar, checked browser by browser. Confirm against each browser's current criteria that its address-bar affordance appears on the deployed instance, signed in and signed out:
    • Chrome, Brave and other Chromium browsers on desktop: the install icon in the omnibox.
    • Edge: App available · Install Postulo.
    • Firefox on Windows (Taskbar Tabs, since 143): the address-bar button that pins the site as a web app, with the manifest's name and icon.
    • Safari 26 on macOS and iOS: Add to Dock / Add to Home Screen, which opens as a web app.
      Where one does not appear, find out why and fix it. Candidates: the cancelled beforeinstallprompt, the credentialed manifest fetch when signed out, start_url redirecting to the sign-in page, and icon sizes.
  2. Open in the app from the address bar. Once Postulo is installed, Chromium browsers show an Open in app icon in the omnibox for pages inside the app's scope. Make sure it shows on every Postulo page, and that the page opens in the app at the same address, not at start_url.
  3. Links that land in the app. Add the manifest members that decide what happens when a Postulo link is followed while the app is installed:
    • launch_handler with client_mode: ["focus-existing", "auto"], so an open window is reused rather than a second one started.
    • handle_links: "preferred", so links from mail, chat or the browser extensions open in the installed app where the browser and the person allow it.
      Both follow the browser's own settings and the person can turn them off there. Postulo adds no setting of its own.
  4. No regression for the menu entry. The Install entry in the account menu still shows only when the browser offers a prompt and the app is not already installed.
  5. The wiki. Say in a few lines, per browser, where the install and open icons sit in the address bar, how to turn link capturing on or off, and that both need HTTPS.

Done when

  • On the deployed instance, Chrome and Edge on desktop show the install icon in the address bar. Firefox on Windows offers to pin it. Safari 26 adds it as a web app with the right name and icon.
  • With Postulo installed, Chrome and Edge show Open in app in the address bar on any Postulo page, and it opens that same page in the app window, reusing an open window.
  • A unit test covers the new manifest members, and the browser suite checks the manifest still satisfies Chromium's installability criteria.
  • Any new help text is in the catalogues, through Weblate.
#895 made Postulo installable and put an *Install* entry in the account menu. This issue covers the browser's own address bar. There, a person should be able to **install** Postulo and, once it is installed, **open** the page they are on in the app window. They should not need to go into the account menu, and nothing should nag. ## What is already there (since #895) - `core:manifest` serves `id`, `scope: "/"`, `start_url` (the board), `display: "standalone"`, icons 192/512 plus a maskable 512, and shortcuts. `base.html` links it with credentials. - `/sw.js` is registered for every signed-in visit and keeps only the offline page. - `app.js` cancels `beforeinstallprompt` (`event.preventDefault()`) and keeps it for the menu. The comment there assumes that "the address bar's install icon is still there for anybody who looks". Nobody has checked that this holds on every browser. ## What to do 1. **Install from the address bar, checked browser by browser.** Confirm against each browser's current criteria that its address-bar affordance appears on the deployed instance, signed in and signed out: - Chrome, Brave and other Chromium browsers on desktop: the install icon in the omnibox. - Edge: *App available · Install Postulo*. - Firefox on Windows (Taskbar Tabs, since 143): the address-bar button that pins the site as a web app, with the manifest's name and icon. - Safari 26 on macOS and iOS: *Add to Dock* / *Add to Home Screen*, which opens as a web app. Where one does not appear, find out why and fix it. Candidates: the cancelled `beforeinstallprompt`, the credentialed manifest fetch when signed out, `start_url` redirecting to the sign-in page, and icon sizes. 2. **Open in the app from the address bar.** Once Postulo is installed, Chromium browsers show an *Open in app* icon in the omnibox for pages inside the app's `scope`. Make sure it shows on every Postulo page, and that the page opens in the app at the same address, not at `start_url`. 3. **Links that land in the app.** Add the manifest members that decide what happens when a Postulo link is followed while the app is installed: - `launch_handler` with `client_mode: ["focus-existing", "auto"]`, so an open window is reused rather than a second one started. - `handle_links: "preferred"`, so links from mail, chat or the browser extensions open in the installed app where the browser and the person allow it. Both follow the browser's own settings and the person can turn them off there. Postulo adds no setting of its own. 4. **No regression for the menu entry.** The *Install* entry in the account menu still shows only when the browser offers a prompt and the app is not already installed. 5. **The wiki.** Say in a few lines, per browser, where the install and open icons sit in the address bar, how to turn link capturing on or off, and that both need HTTPS. ## Done when - On the deployed instance, Chrome and Edge on desktop show the install icon in the address bar. Firefox on Windows offers to pin it. Safari 26 adds it as a web app with the right name and icon. - With Postulo installed, Chrome and Edge show *Open in app* in the address bar on any Postulo page, and it opens that same page in the app window, reusing an open window. - A unit test covers the new manifest members, and the browser suite checks the manifest still satisfies Chromium's installability criteria. - Any new help text is in the catalogues, through Weblate.
tiagoagueda added this to the 0.5.0 milestone 2026-10-25 17:04:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#899
No description provided.