github gioxx/MarvellousSuspender v9.0.2

4 hours ago

A feature release (the "Always suspend" list) plus a cluster of long-standing bug fixes: Brave/Vivaldi Google Drive backup, the missing "Allow access to file URLs" toggle, suspended-tab favicons after a restart, manual-backup cooldown enforcement, and a full pass on tooltip consistency, copy, and localization.

Highlights

  • "Always suspend" list, to accompany the whitelist (#103): a new list on the Settings page of URLs that always suspend after the normal timeout, bypassing the pinned/audible/form-input protections that would otherwise keep them open indefinitely (e.g. a background Twitch/YouTube tab left playing audio). Same matching rules as the whitelist (plain text or /regex/). Also gets its own "Test list" and "Suspend matching tabs now" buttons, mirroring the whitelist's test/wake pair.
  • Google Drive "Connect account" fixed on Brave and Vivaldi (#420): both browsers broke chrome.identity.getAuthToken() in different ways (Brave rejects it outright, Vivaldi hangs forever with no UI). Added chrome.identity.launchWebAuthFlow() as a fallback, used automatically once the primary method is known to fail on that install. The Backup page now also shows which connection method is active.
  • "Allow access to file URLs" toggle restored (#393, #416, #267): missing on every Chromium browser because the manifest never declared file:// host access. Added as an optional, on-demand permission: no access granted until you flip the toggle yourself.
  • Suspended-tab favicons survive a browser restart (#397): a startup repair check that only fired on chrome.runtime.onStartup (which some Chromium builds, notably Brave, never fire after a normal restart) now also runs via a session-storage sentinel checked on every service worker wake.
  • Manual-backup cooldown enforced everywhere: the 30s cooldown after a manual backup used to be a per-page debounce local to backup.html; triggering "Backup now" from the popup had no cooldown at all. Now shared via chrome.storage.session regardless of which UI triggers it.
  • Bulk-delete Drive backups per device: the "Drive backup files" list already grouped files by device; added a "Delete all" button per group instead of deleting one by one.
  • "Clear favicon cache" debug action (#395): the debug page can now wipe every cached favicon in one click, useful when a suspended tab keeps showing a stale icon after the site's own favicon has changed.
  • All 16 non-English/Italian locales back in sync: added scripts/check-locales.js (npm run check-locales) to catch missing/untranslated keys locally instead of finding out from a surprising Crowdin diff, then used it to translate everything it flagged, including, this once, by hand ahead of the next Crowdin sync for new tooltip and copy strings.
  • "Use the classic The Great Suspender artwork" option: a new checkbox in Options → General swaps the current robot mascot/icon set back to the original The Great Suspender artwork, for anyone who preferred it. Covers every icon and illustration across the extension (toolbar icon, suspended-tab favicon, and all extension pages), with no restart or reload required to switch back and forth.

Also in this release

  • "Whitelist" reworded to "allowlist" in all user-facing strings across all 18 locales (internal code/storage keys left untouched).
  • "Claim by default" clarified: shortened to "Claim tabs suspended by other extensions" (self-explanatory on its own), full detail moved into a tooltip. Also fixes the "Always suspend" textarea showing a literal undefined for installs with pre-existing settings.
  • Tooltips standardized across Settings/Backup pages: several tooltips ran long sentences onto a single unwrapped line instead of following the short-line-per-paragraph convention used elsewhere.
  • Extension store description reworded to match the README/site tagline: "Free your memory. Suspend the tabs you don't need, right now."
  • Clicking a suspended page restores it immediately (#320): unsuspending no longer waits on a purely cosmetic hotkey-label fetch before the page becomes interactive.
  • captureLogs debug flag now survives every Service Worker restart, not just the first one of a browser session; favicon data URLs in captured logs are now fingerprinted instead of dumped in full, so a handful of tab-object logs no longer evict the whole log buffer.
  • About page: the debug-page link now stands out in its own callout box.

See CHANGELOG.md for the full, detailed list of changes.


What's Changed

  • feat(options): add "always suspend" list to accompany the whitelist by @gioxx in #425
  • feat(debug): add "Clear favicon cache" action by @gioxx in #430
  • fix(suspended): don't gate page interactivity behind hotkey label fetch by @gioxx in #424
  • fix(gsBackup): fallback to launchWebAuthFlow when Drive OAuth fails (Brave/Vivaldi) by @gioxx in #423
  • fix(manifest): declare file:// as optional host permission by @gioxx in #422

Additional fixes and polish merged directly to master after PR #425: manual-backup cooldown enforcement, whitelist→allowlist copy pass, bulk-delete Drive backups per device, always-suspend test/force-suspend buttons, tooltip line-wrap standardization, extension description rewording, captureLogs SW-restart fix, an About page callout for the debug link, and the legacy "classic artwork" mascot option.

Full Changelog: v9.0.1...v9.0.2

Don't miss a new MarvellousSuspender release

NewReleases is sending notifications on new releases.