Lazy tabs Firefox

Lazy tabs

By: martin
Open links in paused (discarded) tabs and pause selected tabs (from the right-click context menu). Also with "Lazy Mode".

Features & Capabilities

This extension allows you to discard tabs and open links, bookmarks and bookmark folders in discarded tabs.

It adds a button on the tab bar that turns on/off the "Lazy Mode". When Lazy Mode is ON all new background tabs are automatically paused.

You can't pause the current active tab, just switch to another tab and pause it from there. If you have bookmarks with URLs like addons.mozilla.org or support.mozilla.org, you should open them from the context menu item, Lazy Mode can't intercept requests to that sites for security reasons, I guess. This only happens with bookmarks and Lazy mode, otherwise everything works fine.

This add-on needs some permissions. If you're worried about that, just read the source code. It will take you less than a minute.

BACKGROUND.JS

let lazyMode = false; let lastOpenedTabId = 1;

function initialUpdate(tabs){ for (let tab of tabs) { updateLastOpenedTabId(tab.id); } }

function updateLastOpenedTabId(tabId){ if (tabId > lastOpenedTabId) { lastOpenedTabId = tabId; } }

function onDiscarded() { }

function onError(error) { console.log(Error: ${error}); }

function onCreatedItem() { if (browser.runtime.lastError) { console.log(Error: ${browser.runtime.lastError}); } }

function onCreatedTab(tab) { updateLastOpenedTabId(tab.id); }

function createDiscardedTab(tabUrl) { var creating = browser.tabs.create({ url:tabUrl, active:false, discarded:true }); creating.then(onCreatedTab, onError); }

function onGetBookmarkId(bookmarks) { if (bookmarks[0].url) { createDiscardedTab(bookmarks[0].url) } else { getFolderChildren(bookmarks[0].id); } }

function getFolderChildren(bookmarkId) { var gettingChildren = browser.bookmarks.getChildren(bookmarkId); gettingChildren.then(onGetFolderChildren, onError); }

function onGetFolderChildren(children) { for (child of children) { if (child.url){ createDiscardedTab(child.url); } else { getFolderChildren(child.id); } } }

function toggleLazyMode(isEnabled){ if (!isEnabled) { let querying = browser.tabs.query({}); querying.then(initialUpdate, onError); browser.browserAction.setTitle({title: "Back to normal"}); browser.browserAction.setIcon({path: "playButton.svg"}); lazyMode = true; } else { browser.browserAction.setTitle({title: null}); browser.browserAction.setIcon({path: null}) lazyMode = false; } }

function discardThisTabs(tabs) { var tabIds = []; for (let tab of tabs) { tabIds.push(tab.id); } var discarding = browser.tabs.discard(tabIds); discarding.then(onDiscarded, onError); }

function discardNewTab(tabId, url) {
var removing = browser.tabs.remove(tabId); removing.then(function(tab) {
createDiscardedTab(url); }, onError); }

browser.menus.create({ id: "open-link-discarded", title: "Open link in paused tab", contexts: ["link"] }, onCreatedItem);

browser.menus.create({ id: "open-bookmark-discarded", title: "Open in paused tab", contexts: ["bookmark"] }, onCreatedItem);

browser.menus.create({ id: "discard-tab", title: "Pause this tab", contexts: ["tab"] }, onCreatedItem);

browser.menus.create({ id: "discard-highlighted-tabs", title: "Pause selected tabs", contexts: ["tab"] }, onCreatedItem);

browser.menus.onClicked.addListener((info, tab) => { switch (info.menuItemId) { case "open-link-discarded": createDiscardedTab(info.linkUrl); break; case "open-bookmark-discarded": let gettingBookmarks = browser.bookmarks.get(info.bookmarkId); gettingBookmarks.then(onGetBookmarkId, onError);
break; case "discard-highlighted-tabs": let querying = browser.tabs.query({highlighted: true, active: false}); querying.then(discardThisTabs, onError); break; case "discard-tab": discardThisTabs([tab]); } });

browser.browserAction.onClicked.addListener(() => { toggleLazyMode(lazyMode); });

browser.tabs.onCreated.addListener((tab) => { if (tab.active && tab.id > lastOpenedTabId) { updateLastOpenedTabId(tab.id); } });

browser.webRequest.onBeforeRequest.addListener((requestDetails)=>{ if(lazyMode){ if (!requestDetails.documentUrl && requestDetails.tabId > lastOpenedTabId){ discardNewTab(requestDetails.tabId, requestDetails.url);
} } }, {urls: ["<all_urls>"]} );

browser.webNavigation.onCreatedNavigationTarget.addListener((details)=>{ if(lazyMode){ discardNewTab(details.tabId,details.url);
} });

MANIFEST.JSON

{ "manifest_version": 2, "name":"Lazy tabs", "description":"Open links in paused (discarded) tabs and pause selected tabs (from the right-click context menu). Also with "Lazy Mode".", "version":"3", "developer": { "name": "martin" }, "background": { "scripts": ["background.js"] }, "permissions": [ "<all_urls>", "webRequest", "webNavigation", "menus", "bookmarks", "tabs" ], "browser_action": { "browser_style": true, "default_icon": "pauseButton.svg", "default_title": "Lazy mode", "default_area": "tabstrip" } }

User Growth & Download Statistics

Manifest V2 Add-on
By:
martin
Daily users:
36
Rating:
4.33
(3)
Version:
4 Last updated: 2021-07-03
Version code:
5260892
Creation date:
2021-04-07
Risk:
High risk impact Low risk likelihood
Permissions:
Size:
10.06KB
Full description:
See detailed description
Source:
Firefox Add-ons Store
Data ingested on:
2026-06-21
Compare stats and ranking:

Contact the developer

Chrome-Stats does not own this Firefox add-on. Please use these information below to contact the Firefox add-on developer.
Developed by:
martin
Firefox Add-ons Store
https://addons.mozilla.org/firefox/addon/lazy-tabs/

User Reviews

The only suspend extension which allows me to suspend only selected tabs. Thanks this is great!
by so*****, 2025-05-10

by 退出*****, 2025-04-15

by 全民*****, 2025-03-09
View all user reviews ›

Is Lazy tabs Safe?

Risk impact
Risk impact measures the level of extra permissions an extension has access to. A low risk impact extension cannot do much harms, whereas a high risk impact extension can do a lot of damage like stealing your password, bypassing your security settings, and accessing your personal data. High risk impact extensions are not necessarily malicious. However, if they do turn malicious, they can be very harmful.

Lazy tabs requires some sensitive permissions that could impact your browser and data security. Exercise caution before installing.

Risk impact analysis details
  • Critical Allows access to all websites, posing a significant security risk as it can monitor and modify data from any visited site.
  • Critical ****** ****** ** ******* ***** ***** *** ** **** ** ***** **** ******** ****** *** ******** ********** * ******* ********
  • High ****** *** ********* ** ******* *** ******* ******* ** ****** *** *** ******** ******
  • High ****** ********* ** * ****** ******** ******** ********** * ******* ******* *****
  • Medium ****** ** ********* *** ******* ******** **** **** *********** *** ********* *** ********* ******* *** *****
Risk likelihood
Risk likelihood measures the probability that a Firefox add-on may turn malicious. This is determined by the publisher and the Firefox add-on reputation on Firefox Add-ons Store, the amount of time the Firefox add-on has been around, and other signals about the Firefox add-on. Our algorithms are not perfect, and are subject to change as we discover new ways to detect malicious extensions. We recommend that you always exercise caution when installing a Firefox add-on.

Lazy tabs has earned a fairly good reputation and likely can be trusted.

Risk likelihood analysis details
  • High This extension has low user count. Unpopular extensions may not be stable or safe.
  • Low **** ********* *** ******* **** **** * ****** **** ***** ******** *** **** ****** ** ** ****** *** *****
  • Low **** ********* *** ***** **** **** * ****** **** ***** ********** *** **** ****** ** ** ****** *** *****
  • Good **** ********* *** **** **** *******
Extension Guard
Extension Guard

Discover every extension in use, analyze risks, and enforce blocking policies with Extension Guard

Secure Your Browser
Upgrade to see full risk analysis details

Best Lazy tabs Alternatives

Here are some Firefox add-ons that are similar to Lazy tabs: