Make the grey icon and the review badge visible in Firefox and Firefox for Android, and settle the data declaration their requests affect #3
Labels
No labels
bug
documentation
enhancement
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-firefox#3
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The source of this extension is postulo/postulo-chromium, which carries the grey toolbar icon (postulo/postulo-chromium#4), the badge counting captures that need review (postulo/postulo-chromium#5) and the status icon in the popup's footer (postulo/postulo-chromium#9). This issue is what Firefox needs for the icon, badge and tooltip to be seen, and for its data declaration to stay true once the extension asks Postulo things in the background.
What the extension should do in Firefox
The button on the toolbar. MDN gives Manifest V3's
action.default_areaa default of"menupanel": the button starts in the extensions panel, where nobody sees a grey icon or a badge, until the person pins it. The schema bundled with web-ext's linter (addons-linter 7.20.0) describes the default as"navbar"; nobody has checked a fresh profile."default_area": "navbar"underactionin the shared manifest (postulo-chromium/src/manifest.json, which this repository builds from) settles it either way; the manifest sets none today. Firefox remembers the first placement for an extension id, even across uninstalling and reinstalling, and an extension cannot move its button in code, so this is decided before the first signed package anyone installs. Chromium has no such key;scripts/build.mjscan drop it there if it warns.Firefox for Android. There is no toolbar: the action is an item under the browser menu's add-ons entry, and its title is the label.
action.setIcon,setBadgeTextandsetTitleare listed as supported there (from 109); how a changed icon shows in that item is undocumented. The badge sits beside the label, and Mozilla bug 1874003 reports a long label pushing it out of view (not reproduced here). Today's label, “Capture this posting in Postulo”, runs to 31 characters in English and 38 in Greek and Armenian; whether it already hides the badge is unchecked. postulo/postulo-chromium#4 proposes a tooltip that gives the reason before that title, which would be longer still.The background. Firefox runs
background.jsas an event page, unloaded after 30 s idle, and keeps alarms in memory, lost on restart. The background already recreates its alarm on install and on startup (src/background.js:19-31), which covers the check's schedule, and postulo/postulo-chromium#4 keeps its state instorage.local. A person can withdraw the instance's host permission on the add-on's page, and Firefox grants one only from a user action (“Firefox insists on this”,src/options.js). Send, Save and Test already ask from their click; the background's check never can, so postulo/postulo-chromium#4's no-permission state stays until the person clicks one.Decisions for this repository
default_area."navbar"(recommended: the state exists to be seen, and the choice is final for this id) or Firefox's default, leaving the pin to the person as on Chromium.runtime.getPlatformInfo()tells Android apart. If today's label already hides the badge, a shorter Android label is a new message key, and postulo-chromium'stest/i18n.test.mjsrequires every new key in all 40_localesat once, with identical placeholders: 40 translations in the same commit.data_collection_permissionsrequired: ["none"], and this repository's README explains the minimum versions by it (“the extension collects nothing”). Mozilla defines transmission as data handled outside the add-on or the local browser and documents no exemption for a server the person runs; the Chrome Web Store's user-data FAQ (Q15) lifts its Limited Use rules for a server the person names, though disclosure is still due. The page already leaves on Send; the new requests go unprompted: the reachability check (no token, if it uses the public/healthz) and the review count (GET /api/v1/captureswith the token, bringing titles back). Either keep"none"and say in the README why a request to the person's own server does not count, a reading Mozilla has not written down; or declare the categories that apply, such aswebsiteContentandauthenticationInfo, asrequired, which Firefox shows at install, by Mozilla's account (unchecked here)."none"cannot stand beside another required category: web-ext lint, which both repositories' CI runs, refuses it. Recommended: declare them, before the first signed package anyone installs.Needs from the server
Nothing: the check and the count use calls Postulo has today. Nothing is filed on postulo/postulo.
Done when
"navbar"); its icon, badge and tooltip follow the connection state and the count, as on Chromium, and the grey icon is easy to tell from the colour one on light and dark themes.firefox-androidtarget loadsdist/onto a phone over adb), the badge is readable beside the label and the state can be read in the menu item or the popup; what a grey icon does there is written down.--channel unlisted), says the same once written. PRIVACY.md's new requests are for postulo/postulo-chromium#4 and postulo/postulo-chromium#5 to add.source.jsonpins a postulo-chromium commit that carries all of it.From the list of extension improvements of 2026-09-30.