Review captures in a bigger window or a dedicated browser tab, not in the popup #8
Labels
No labels
bug
documentation
enhancement
performance
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-chromium#8
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?
Today, before sending, the correction form sits in the popup, widened to 440 px: “Correct anything that is wrong; nothing leaves this browser until you send it.” After sending, Postulo's own review page (
review_url) opens in a new tab from “Review in Postulo”, in the popup or on the list page (captures.html). The suggestion is to review in a bigger dialog box or a dedicated browser tab.The popup is a poor place for it: browsers cap it at 800×600, and it closes as soon as focus leaves it; what was read and corrected lives only in memory until “Keep” or “Send” (
src/popup.js), so a click elsewhere loses it. Nor can Postulo's review page be framed by anything the extension draws (X-Frame-Options: DENY,frame-ancestors 'none'), and it needs a signed-in session. No API call, under any scope, accepts, discards, binds or fetches a single capture.What the extension should do
A review window. On Chromium and desktop Firefox,
windows.createwithtype: "popup"and a size opens a window without tabs, and needs no permission. It uses the same profile, so the sign-in to Postulo should carry over; neither is tried yet in a real browser. Firefox for Android has no windows API: postulo/postulo-firefox#4.The correction form moves into it. The page is still read from the popup:
readCurrentTab()asks for the active tab of the current window, which from any other page is that page itself (passing the posting's tab id instead leans onactiveTaboutliving the popup; unverified). So the popup reads the page when capture is pressed, stores the result in one write, asstore.addalready does because a popup can close at any moment (or reuses the unsent capture of that address), and only then opens the window on it.The review page carries what the popup shows:
postingForm(), the hint that applies, “Read by …”, and the captured-before note, now asked from there. Its buttons: “Send for review”, “Keep in this browser”, “Delete”. “Send” asks for a missing host permission from its click, as the popup and the list do.Postulo's review page, in the same window. Every “Review in Postulo” (popup, list page, #7) opens
review_urlthere, and #6 opens “Add a listing” there. Postulo's page already walks the queue: “Save and next” and “Discard and next” go to the next older capture waiting, wrap round, and end on the listings.Decisions for this repository
windows.update(recommended), or a new one per click, asopenCaptures()does with tabs.storage.session(emptied when the browser closes) and keeps only on “Keep” or “Send”. Recommended: keep on reading, with “Delete” on the review page.captures.htmlwith a link opening its inline editor (today “Save” and “Cancel” only) on one capture.picksection). Postings listed and not ticked are not captures, so moving it needs the hand-over. Recommended: it stays in the popup; ticking is a choice, not a correction, and each ticked posting is reviewed on Postulo's page, in the window.Needs from the server
Not filed on postulo/postulo. Reviewing inside the extension, without Postulo's page, would need API calls to fetch one capture and to accept, discard and bind it, and a scope for them. The route above works with the server as it is.
Translations and documents
Beyond a title for the review page, its words are existing keys. test/i18n.test.mjs requires every new key in all 40
_localesat once, with identical placeholders, so each new sentence costs 40 translations in the same commit. README.md: step 3 of “Set it up”, “Captured before” and the layout table, which place this in the popup; “Without a server” if “Edit” moves. PRIVACY.md: thePOST /api/v1/captures/knownrow (“The popup opens on a posting”); and “What it keeps”, which says everything is instorage.local, if the hand-over is chosen.Done when
review_urlin that window, and Postulo's “Save and next” works there.npm testpasses; README.md and PRIVACY.md say what changed.From the list of extension improvements of 2026-09-30.
Landed (
c9ab9ad,Refs #8): a capture is reviewed in a window of its own; the picture offer, the language handling and the known-postings note moved with it. Left: it has never run in a real Chromium or Firefox 140 (sign-in carrying over, Save and next, the window being reused, drawing the picture from another window), and Firefox for Android only gets the tab fallback (postulo-firefox#4). See the manual-check issue.review_url,listing_url) are opened in the review window without an instance-origin check #36