Categories

Developer

kgersen

Load Background Tabs Lazily v1.63

  • rating
  • rating
  • rating
  • rating
  • rating
4.60 (40 reviews)
Allow only a specific number of new background tabs to load at one time.

This extension tries to duplicate some of the behavior of Load Tabs Progressively, an addon that has not been updated to work with newer versions of Firefox.

Load Background Tabs Lazily places newly created background tabs in a line and allows only a specific number to load, while blocking the rest. A tab is removed from the line once it has finished loading. The first blocked tab in the line is then allowed to load. This extension was designed for users with slow internet connections that routinely open multiple background tabs at the same time. It also helps users that open many background tabs at once by not overwhelming their browser or CPU.

Only tabs with http or https URLs are blocked from loading by this extension. In many cases, the URL to be loaded in a new tab can't be viewed by this extension when the tab is created and added to the line. Tabs with non http(s) URLs that won't be blocked and that were added to the line will quickly be removed when the URL is viewable.

Various commands or settings for the extension can be accessed in the toolbar button popup or in its Options page.

Chrome version: https://chrome.google.com/webstore/detail/load-background-tabs-lazi/jomliinifiaagjbbjncdncgoolfiakjj

Read Before Installing

After this extension is added or installed, do not select 'Allow this extension to run in Private Windows'. This extensions Options page will open to the 'Permissions' section after installing. A user must select the 'Access your data for all websites' permission for this extension to function. Once the permission is granted, this extension may be turned on by clicking its toolbar button and selecting the 'Turn Off or On' command. The 'Access your data for all websites' permission allows this extension to block almost any http(s) URL from loading. As this is not a 'Recommended' (manually reviewed) extension, granting this permission is a security risk. This extension is best used in a profile or a non private window where data loss like passwords or personal info would not be very damaging, in case of rogue behavior.

If 'When you open a link, image or media in a new tab, switch to it immediately' is unselected in Firefox's Settings page, a mouse middle click on a web page link will create a new tab in the background. Otherwise, a shift middle click can be used to create a background tab. A bookmark opened in a new tab is not loaded in the background by default. A preference to reverse that behavior is in the about:config page:

  • browser.tabs.loadBookmarksInBackground (Control behavior of new tabs opened from bookmarks and history.)
    • true: Load the tab in the background.
    • false (default): Load the tab in the foreground.
If that setting is changed to true, a mouse middle click will open a bookmark in a new tab in the background. Otherwise, a shift middle click must be used.


Conflicting Extensions

HoldTab, LoadTabOnSelect, LoadTabOnSelect Evolution, LoadTabOnSelect 3, Load Background Tabs on Select, and Load Tabs Sequentially. These are extensions that block new background tabs from immediately loading.

Temporary Containers. The conflict happens when a blocked background tabs hostname is a match under Temporary Containers 'Per Domain Isolation'.


Issues/Limitations

For Firefox desktop only. Not for Android.

Current versions of Firefox have Fission (site isolation) enabled ( https://wiki.mozilla.org/Project_Fission ). Fission was enabled by default in Firefox 97 (Feb 2022). Be aware that when opening a lot of non-discarded tabs with different domains, memory usage may increase significantly due to Fission. Even if a new background tab is blocked from loading, memory may still be allocated for site isolation.

Fission also significantly increased the time it takes to open large groups of non-discarded tabs. For example, opening and blocking 1000 tabs may only take around 10 seconds on a browser with Fission disabled, but take around 40 seconds when enabled. It is recommended to open no more than 250-500 non-discarded background tabs at one time with Fission enabled. The browser may even crash when opening groups of 1000 or more non-discarded tabs. How many non-discarded tabs that can be safely opened at once often depends on a users computer. If creating more than 250-500 tabs at once, they should probably be created in a discarded (unloaded) state. Note, the more tabs that exist in a window (even if many are hidden tabs), the longer it takes to create a new group of tabs in that window.

This extension does not work on restricted sites (addons.mozilla.org, support.mozilla.org, etc).

Ideally, all blocked tabs should be loaded before Firefox is exited or restarted. The title of a blocked tab that is recovered after a previous session is restored is blank or 'New Tab'.

Blocked tabs that are removed from the line before they have loaded can't be added back to the line if this extension is turned off or if the tabs are restored. Please select the option 'Update new background tabs to placeholder tabs after blocking them from loading', if this is a concern.

The option 'Update new background tabs to placeholder tabs...' updates a blocked tabs URL to a moz-extension URL. In Firefox 127, there are currently a couple bugs involving tabs with non-discarded moz-extension URLs when 'Open previous windows and tabs' is selected. Clicking a 'Restart' button, clicking 'Exit', or pressing Ctrl+Shift+Q will usually not restore non-discarded tabs with moz-extension URLs when the browser is restarted. These bugs should eventually be fixed in a later Firefox version. Selecting the 'Close' button on the browser or pressing Ctrl+Shift+W will restore tabs with moz-extension URLs when the browser restarts.

This extension does not block duplicate tabs or closed tabs that are reopened.

Sometimes a tab will stop showing a loading animation, but it will still be loading and Firefox will not yet have sent a webNavigation.onCompleted event to this extension.

When creating multiple tabs at once, some extensions will create them all as active tabs. Focus will end up on the last tab created, usually the rightmost tab. Enabling the option 'Add new tabs to the line that are created as active tabs.' is necessary to add these tabs to the line and then block them.

If browser.sessionstore.restore_pinned_tabs_on_demand is set to true in the about:config page, Firefox will not show pinned tabs as discarded tabs to an extension after a Firefox restart. This means commands like 'Add discarded tabs' will not work correctly in this situation, until the bug is fixed.

When a bookmark folder is middle clicked, the first bookmark in the folder is loaded into an active tab. By default, this tab is not added to the line. A shift middle click on a bookmark folder will open all the bookmarks in the background.


Relevant about:config Preferences

  • browser.cache.check_doc_frequency (Control how often to check for a newer version of a cached page.)
    • 0: Check for a new version of a page once per session.
    • 1: Check for a new version every time a page is loaded.
    • 2: Never check for a new version - always load the page from cache.
    • 3 (default): Check for a new version when the page is out of date.
  • browser.sessionstore.restore_pinned_tabs_on_demand (Control how pinned tabs are loaded when a session is restored.)
    • true: Pinned tabs are not loaded until they are selected.
    • false (default): Firefox loads pinned tabs 3 at a time.
  • browser.sessionstore.restore_on_demand (Control how non-pinned tabs are loaded when a session is restored.)
    • true (default): Tabs are not loaded until they are selected (they are discarded).
    • false: Firefox loads non-pinned tabs 3 at a time, after pinned tabs have loaded.
  • browser.tabs.loadDivertedInBackground (Control behavior of pages normally meant to open in a new window, but that have instead been loaded in a new tab.)
    • true: Load the new tab in the background, leaving focus on the current tab.
    • false (default): Load the new tab in the foreground, taking the focus from the current tab.
  • browser.link.open_newwindow (Control behavior of links that would normally open in a new window.)
    • 1: Open in the current tab/window.
    • 2: Open in a new window.
    • 3 (default): Open in a new tab in the current window.
  • browser.link.open_newwindow.override.external (This preference overrides browser.link.open_newwindow for external links. Set it only if a different destination for external links is needed.)
    • -1 (default): No overrides.
    • 1: Open in the current tab/window.
    • 2: Open in a new window.
    • 3: Open in a new tab in the current window.

Permissions

  • Access your data for all websites
    • The 'webRequest', 'webRequestBlocking', and '<all_urls>' (Access your data for all websites) permissions allow this extension to block almost any http(s) URL from loading .
  • Access browser activity during navigation
    • Allows the extension to view various stages of a web navigation such as when a tab commits to loading a URL or completes loading.
  • Access browser tabs
    • Allows access to the title and URL of all tabs.
  • Access recently closed tabs
    • Allows the extension to save data to a window and recover that data if the window is closed and restored. The data that is saved is the maximum amount of tabs allowed to load in that window.
  • Read and modify browser settings
    • Allows the viewing and modifying of newTabPosition and openBookmarksInNewTabs global browser settings.
  • Read and modify bookmarks (Optional)
    • Allows the viewing of bookmark URLs when creating new discarded tabs.
  • Download files and read and modify the browser’s download history (Optional)
    • Allows the extension to delay loading tabs if downloads are in progress.