Open review in a tab on Firefox for Android, where there are no windows, and fit the popup to a phone screen #4

Open
opened 2026-09-30 15:19:47 +00:00 by tiagoagueda · 0 comments
Owner

The source of this extension is postulo/postulo-chromium, which carries two icon buttons in the popup's header (postulo/postulo-chromium#6), the list of captures that need review in the popup (postulo/postulo-chromium#7), and review itself in a bigger window or a tab of its own rather than in the popup (postulo/postulo-chromium#8). This issue is what that work needs on Firefox, and above all on Firefox for Android, where a second window cannot exist and, by both of Mozilla's accounts, the popup already fills the screen.

What the extension should do in Firefox

Firefox for Android has no windows. There is one window, and the browser cannot open or manipulate others; MDN's compatibility data lists windows as unsupported there. A “bigger dialog” window is therefore impossible on a phone, and the shared code must not call windows.create where windows is missing: there, whatever postulo/postulo-chromium#8 would open in its window opens in a tab. That is Postulo's review page (review_url) for a capture that has been sent, the extension's correction form for one that has not, and Postulo's “Add a listing” page from postulo/postulo-chromium#6. tabs.create works there (from Firefox for Android 54), and openCaptures() already uses it for the list page (src/lib/local.js:54-57). Nothing in the shared source calls windows today.

The popup is already full screen there. MDN says the popup is shown as a normal page in a new tab; Extension Workshop, an overlay covering the browser until it is closed. Which one Firefox for Android 142 and later does is unchecked, and it matters:

  • The popup sets its width to 320 px, or 440 px while the correction form or a results page's tick list shows (src/style.css), and popup.html has no viewport line, where captures.html has one. How today's popup lays out on a phone is unchecked; 440 px is wider than many phone screens. The header buttons and the review list must fit the phone's width without sideways scrolling.
  • Capturing reads the active tab of the current window (readCurrentTab(), src/lib/browser.js:33-49). If the popup is itself a tab, that could be the popup rather than the posting, and the capture would be refused as not a web page; whether tapping the menu item grants activeTab there is unchecked too. Nothing in either repository records a capture made on a phone.
  • Opening a review from the popup has to leave the person on the review tab, with the popup gone, able to get back to the posting they were reading. The popup closes itself after opening the list page (window.close(), src/popup.js:48); check that this also closes the full-screen popup on Android.

No shortcut on Android. Firefox for Android has no commands, so no Alt+Shift+P: the popup's capture button, in the header once postulo/postulo-chromium#6 lands, is the only way in.

Firefox desktop has windows.create with type: "popup" (since 45) and places the window by top and left from 109, below the extension's minimum of 140. Its url must be absolute there (MDN's compatibility data: “'url' does not accept relative paths”), so the extension's own pages go through runtime.getURL(), as openCaptures() already does. MDN's Popups page says a popup opened from the extensions panel rather than the toolbar gets a fixed width (unchecked on current Firefox): the header buttons and the list must fit it too, a case #3's placement makes rarer.

Decisions for this repository

  • Telling Android apart. Test for the windows API itself (recommended: it is what is missing) or ask runtime.getPlatformInfo() whether os is "android". Either way, a windows.create that fails falls back to a tab.
  • The popup on a phone. Let the popup's widths be a maximum rather than a fixed size where the screen is narrower, and give popup.html the viewport line captures.html has (recommended: one popup for every browser); or, on Android, send the person straight to the list page in a tab instead of listing captures in the popup.
  • Tabs piling up. On a phone, where open tabs are out of sight, review tabs collect quietly. Reuse one, brought forward with tabs.update (Android 54), as postulo/postulo-chromium#8 proposes for its window (recommended; check that finding it needs no new permission), or open a new one each time, as openCaptures() does today.

Needs from the server

Nothing: review stays on Postulo's own pages, which exist today. Nothing is filed on postulo/postulo.

Done when

  • On Firefox for Android, checked on a device (web-ext's firefox-android target loads dist/ onto a phone over adb): Postulo's review page, the extension's correction form and Postulo's “Add a listing” each open in a tab (Postulo's pages once signed in to Postulo there), and nothing calls windows; the popup, header buttons and review list included, fits the screen without sideways scrolling; the header's capture button reads the posting, not the popup; once a review is opened, the popup is gone. Which form the popup takes on 142 and later, tab or overlay, is written in the README.
  • On Firefox desktop, review opens as postulo/postulo-chromium#8 decides for Chromium: the same window at the same size, or the same tab.
  • The README's “What Firefox does differently” gains a line: on Firefox for Android, review opens in a tab, since there are no windows, and there is no keyboard shortcut.
  • source.json pins a postulo-chromium commit that carries all of it.

From the list of extension improvements of 2026-09-30.

The source of this extension is postulo/postulo-chromium, which carries two icon buttons in the popup's header (postulo/postulo-chromium#6), the list of captures that need review in the popup (postulo/postulo-chromium#7), and review itself in a bigger window or a tab of its own rather than in the popup (postulo/postulo-chromium#8). This issue is what that work needs on Firefox, and above all on Firefox for Android, where a second window cannot exist and, by both of Mozilla's accounts, the popup already fills the screen. ## What the extension should do in Firefox **Firefox for Android has no windows.** There is one window, and the browser cannot open or manipulate others; MDN's compatibility data lists `windows` as unsupported there. A “bigger dialog” window is therefore impossible on a phone, and the shared code must not call `windows.create` where `windows` is missing: there, whatever postulo/postulo-chromium#8 would open in its window opens in a tab. That is Postulo's review page (`review_url`) for a capture that has been sent, the extension's correction form for one that has not, and Postulo's “Add a listing” page from postulo/postulo-chromium#6. `tabs.create` works there (from Firefox for Android 54), and `openCaptures()` already uses it for the list page (`src/lib/local.js:54-57`). Nothing in the shared source calls `windows` today. **The popup is already full screen there.** MDN says the popup is shown as a normal page in a new tab; Extension Workshop, an overlay covering the browser until it is closed. Which one Firefox for Android 142 and later does is unchecked, and it matters: - The popup sets its width to 320 px, or 440 px while the correction form or a results page's tick list shows (`src/style.css`), and `popup.html` has no viewport line, where `captures.html` has one. How today's popup lays out on a phone is unchecked; 440 px is wider than many phone screens. The header buttons and the review list must fit the phone's width without sideways scrolling. - Capturing reads the active tab of the current window (`readCurrentTab()`, `src/lib/browser.js:33-49`). If the popup is itself a tab, that could be the popup rather than the posting, and the capture would be refused as not a web page; whether tapping the menu item grants `activeTab` there is unchecked too. Nothing in either repository records a capture made on a phone. - Opening a review from the popup has to leave the person on the review tab, with the popup gone, able to get back to the posting they were reading. The popup closes itself after opening the list page (`window.close()`, `src/popup.js:48`); check that this also closes the full-screen popup on Android. **No shortcut on Android.** Firefox for Android has no `commands`, so no `Alt+Shift+P`: the popup's capture button, in the header once postulo/postulo-chromium#6 lands, is the only way in. **Firefox desktop** has `windows.create` with `type: "popup"` (since 45) and places the window by `top` and `left` from 109, below the extension's minimum of 140. Its `url` must be absolute there (MDN's compatibility data: “'url' does not accept relative paths”), so the extension's own pages go through `runtime.getURL()`, as `openCaptures()` already does. MDN's Popups page says a popup opened from the extensions panel rather than the toolbar gets a fixed width (unchecked on current Firefox): the header buttons and the list must fit it too, a case #3's placement makes rarer. ## Decisions for this repository - **Telling Android apart.** Test for the `windows` API itself (recommended: it is what is missing) or ask `runtime.getPlatformInfo()` whether `os` is `"android"`. Either way, a `windows.create` that fails falls back to a tab. - **The popup on a phone.** Let the popup's widths be a maximum rather than a fixed size where the screen is narrower, and give `popup.html` the viewport line `captures.html` has (recommended: one popup for every browser); or, on Android, send the person straight to the list page in a tab instead of listing captures in the popup. - **Tabs piling up.** On a phone, where open tabs are out of sight, review tabs collect quietly. Reuse one, brought forward with `tabs.update` (Android 54), as postulo/postulo-chromium#8 proposes for its window (recommended; check that finding it needs no new permission), or open a new one each time, as `openCaptures()` does today. ## Needs from the server Nothing: review stays on Postulo's own pages, which exist today. Nothing is filed on postulo/postulo. ## Done when - On Firefox for Android, checked on a device (web-ext's `firefox-android` target loads `dist/` onto a phone over adb): Postulo's review page, the extension's correction form and Postulo's “Add a listing” each open in a tab (Postulo's pages once signed in to Postulo there), and nothing calls `windows`; the popup, header buttons and review list included, fits the screen without sideways scrolling; the header's capture button reads the posting, not the popup; once a review is opened, the popup is gone. Which form the popup takes on 142 and later, tab or overlay, is written in the README. - On Firefox desktop, review opens as postulo/postulo-chromium#8 decides for Chromium: the same window at the same size, or the same tab. - The README's “What Firefox does differently” gains a line: on Firefox for Android, review opens in a tab, since there are no windows, and there is no keyboard shortcut. - `source.json` pins a postulo-chromium commit that carries all of it. From the list of extension improvements of 2026-09-30.
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-firefox#4
No description provided.