Skip to content

Merge upstream josh-berry/tab-stash v3.5 (Chrome port) - #736

Closed
pipolarbear wants to merge 3 commits into
josh-berry:masterfrom
pipolarbear:upstream-3.5
Closed

pipolarbear wants to merge 3 commits into
josh-berry:masterfrom
pipolarbear:upstream-3.5

Conversation

@pipolarbear

Copy link
Copy Markdown

Incorporates upstream v3.5 (10 commits after our fork point) into the Chrome (Manifest V3) port, while preserving the Chrome adaptations.

Upstream changes included

  • model: fix off-by-one when moving tab groups backward in the window
  • tab-group: ignore hidden tabs while sorting
  • Menu items to sort open tabs/groups by title and URL
  • Make the user choose whether to restore tabs into a group (new choose-dialog)
  • Respect "Include pinned tabs" when stashing into a folder (Respect “Include pinned tabs” when stashing into a folder #732)
  • i18n: add missing translations (+ new mock/browser/i18n.ts, missing-translations.md)
  • Update issue templates for non-Firefox browsers

Chrome-specific adaptations kept

  • MV3 service-worker background + synchronous listener registration
  • Chrome MV3 manifest (action, side_panel, alarms); homepage_url -> pipolarbear
  • i18n plural keys use underscores (_one/_few/_many/_other) instead of dots
  • No containers/browserSettings/page_action/sidebarAction
  • Makefile remains deleted (build via scripts/build.mjs)

Version

Bumped to 3.5 (assets/manifest.json, package.json, package-lock.json)

Verification

typecheck OK, 621 tests OK, check:i18n OK, prettier OK, npm run build OK
Merge preserves upstream ancestry (0 behind / ahead of upstream/master).

Note: Chrome has no address-bar page-action API, so the Firefox "Stash This Tab" URL-bar icon is intentionally not included (toolbar action is the platform equivalent).

- MV3 manifest: service-worker background, action, side panel
- Replace Firefox-only APIs (sidebarAction/pageAction, browserSettings,
  containers, sessions)
- MV3 service worker: chrome.alarms, synchronous listener registration,
  eager nano-service registration
- Persistence via unlimitedStorage + navigator.storage.persist from pages
- Side panel with gesture-safe open and Alt+Shift+S toggle
- Port i18n plural keys to underscores; replace Makefile build with
  scripts/build.mjs (vite + ImageMagick)
- Add PRIVACY.md, restore issues-top-10.bash, update README/docs for Chrome
- Update repo/user references (manifest, package.json, docs, PRIVACY.md)
- Update git remote to github.com:pipolarbear/tab-stash
- Ignore tab-stash-chrome.zip build artifact
# Conflicts:
#	Makefile
#	assets/_locales/en/messages.json
#	assets/_locales/ru/messages.json
#	assets/manifest.json
#	src/index.ts
#	src/mock/browser/index.ts
@pipolarbear

Copy link
Copy Markdown
Author

Closing: opened against the wrong repository by mistake (should target our fork). Apologies for the noise.

@pipolarbear pipolarbear closed this Oct 4, 2026
@josh-berry

Copy link
Copy Markdown
Owner

No worries! If you do want to push any Chrome-specific fixes upstream, I'm happy to take them so long as they don't compromise on Firefox. (Ideally I'd have code that works in both browsers and keeps the number of if-statements to a minimum, but all know that's not how real life works... XD)

@pipolarbear

Copy link
Copy Markdown
Author

Thanks Josh,

Definitely thinking about it, but not there yet, my native domains of development are not extensions, so I wouldn't want to contaminate your code base at this stage, you just left me no choice with you nice addon that I had to have on my Brave, so for now it's quick and dirty, as the differences between MV3 and MV2 are sometimes insurmountable, and the APIs are different, but I believe with some refactoring it can be both elegant and cross browser.

If you don't mind I will consult with you when I get there.
Meanwhile I, and 50+ other users (in less the 60 days) are already enjoying it on Chrome based browsers.

@josh-berry

Copy link
Copy Markdown
Owner

Sure, feel free to reach out anytime. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants