Tab Reloader an easy-to-use multi-browser tab reloader
Support Development
PayPal ● 
Bitcoin Address: 1sM2BrTH8BRgt3quiASK8TmYSafutNvDo
Dogecoin Address: DFdSGpGMZ2EZVkjyqNrYCEysK92DFPonx4
Your Input Matters
"Tab Reloader" lets you reload each browser tab with a custom time-frame. Tab Reloader supports Chrome, Opera and Firefox browsers. The extension offers different reloading options such as random time generation and supports session restore.



  1. What is Tab Reloader extension?

    Tab Reloader extension is design to provide full customization on how each browser tab gets reloaded. The extension can be used to update tabs to freshen their content.

  2. recommended "Spoof Geolocation" extension for Chrome, Edge and Firefox browsers

    This extension alters the reported GEO location by your browser. You can provide your custom latitude and longitude to any website to improve privacy or get localized data from a custom location. This extension is also useful if you have a SOCKS proxy on your browser to have a consistent IP address with the GEO data. Read more here.

  3. What's new in this version?

    Please check the Logs section.

  4. Is it possible to change the toolbar placement of the Tab Reloader extension?

    Yes, if you have Tab Reloader on Firefox, read this blog post to learn more about how to customize the position of Tab Reloader.

  5. How can I setup a new reloading job?

    Simply switch to the tab you would like to be reload periodically. Now open the toolbar panel/popup. If the toolbar icon is not gray, it means the tab already has a reloading job. You need to cancel the job first before assigning a new job. Now adjust the period in the "Adjust Reloading Time" section and press "enable" button. At this point, the color of toolbar button as well as the counter both will change. Also there is a count down timer in the "Status" section of the toolbar panel/popup.

  6. What is the meaning of the badge number?

    The badge number indicates the number of active reloading tabs. If you close a tab with a reloading job, the counter decrements by one.

  7. Do I need to disable a reloading job before closing a tab?

    No, if you are done with a tab with reloading job, you can simply hit the close button to close the tab. The extension monitors tabs, and the toolbar counter will adjust itself when a new job is added or removed.

  8. Is there a minimum time period for tab reloading?

    Currently, the minimum acceptable time period is 10 seconds. This might be changed in the future to make sure the count down starts after tab's is fully loaded to prevent unnecessary reloads.

  9. Are the countdowns persistent across browser sessions?

    As of version 0.1.2, the extension stores up to 20 URLs for cross-session restoring of countdowns. Please note that there are several limitations with the restoring method. First, URL matching technique is used to restore tabs as all tab related identifications are session based. So assuming you have two identical tabs with different countdowns, after a reboot the most recent countdown will be used for both tabs. Also note that if a tab was active before a reboot, it will be activated after a restart as long as the URL still matches the old one.

  10. Are there any exceptions for tab reloading after a reboot?

    Yes, system URLs (chrome://, resource://, and about:) are not restore-able. Meaning there would be no countdown for these kind of tabs after a restart.

  11. Is it possible to clear the stored URL list to prevent cross-session tab reloading?

    By default this extension remembers up to 20 reloading jobs to restore them after a reboot or a crash. If this is not your preference, go to the options page and uncheck the option. You can press the "Reset" button to clear the current history as well.

  12. I need to reload many tabs upon start-up. It is really hard to define a reloading job for each tab. Can I do this in batch?

    Yes. Go to the options page and define a JSON string like this example. Tab Reloader will match all the tabs with the hostnames in the JSON key, and if a tab matches, an automatic job is set for this particular hostname. You can add as many hostnames as you like. As of version 0.5.3, you can use the "url" keyword instead of "hostname" to have more control over what tab reloads. The "url" keyword supports three types of matching. Prepend this key with "pt:" to use URLPattern matching. Prepend it with "ht:" to have hostname matching, and prepend it with "re:" to have regular expression matching (Two "\" chars are required for escaping). Use URLPattern or RegExp matching to target specific URLs, not the entire hostname. For instance, you can reload a subdomain or when a hostname has a keyword in it.

    Note that with these two new keywords for the "url" key, there is no need to use policy to limit your reloading jobs based on their URL pattern.

      "hostname": "*",
      "dd": 0,
      "hh": 0,
      "mm": 1,
      "ss": 0
    }, {
      "dd": 0,
      "hh": 0,
      "mm": 2,
      "ss": 0,
      "url": "re:.*\\.wikipedia\\.org\\/wiki\\/Book"
    }, {
      "dd": 0,
      "hh": 0,
      "mm": 3,
      "ss": 0,
      "url": "pt:*"

    In this example, the extension reloads all tabs with the matching hostname of "" every 1 minute. The second command uses regular expression matching to limit the reloading job to Wikipedia pages that contain the "Book" keyword. The third command uses URLPattern matching with a wildcard to reload Wikipedia pages that contain the "Cat" keyword.

    URL Pattern Tester

    Pattern Base URL Links

  13. What is the meaning of "Use cache when reloading"?

    If this option is disabled, the extension forces the browser to refresh the tab without using resources from local cache (all images, scripts, ...) will be fetched from the server (similar to Shift + F5). If the option is enabled, the extension uses browser cache to reload resources (similar to F5).

  14. There are some websites that I always want to be reloaded with a defined period (like news websites). Is it possible to ask the extension to set a reloading job for these websites once they get opened in a new browser tab or from the bookmarks?

    Yes, go to the options page and define the custom JSON object to match these websites. You will need to define a new rule per hostname. There is a sample button that can guide you on how to prepare the JSON object. Now check the option box below the JSON editor which asks the extension to match all the newly opened hostnames to the JSON object. If a key matches, the rule will be applied to the tab. Since the rule is tab-based, even if you load a new page with another hostname inside the tab with an active job, the job applies to the new hostname too.

  15. What is the "Reloading Policy" object on the options page and how can I use it?

    This object is introduced in version 0.2.9, and can store policy rules for each domain. The keys of this object are the hostnames and the values are the rules. Since the key string accepts wildcards, you can match all hostnames with "*". Each key has a value of object type in {"date": "valid regexp", "url": "valid regexp"} format. The "date" key is used to match the current time to the local date string and the "url" key is used to match the current URL with the provided regexp. Note that you can skip one of the "url" or "date" keys if it is not needed. If both keys exist, the regular expression for both must match for the reloading job to take place. Let's say we only want to reload only between 2:00 PM to 4:00 PM. The object would be

      "*": {
        "date": " [23]:.*PM"

    Since the local date string looks like 10/7/2019, 2:47:35 PM, the [23]:.*PM string is a valid regular expression that only matches with the local date object only between 2:00 PM to 4:00 PM. You can test the regexp in the browser console / [23]:.*PM/.test('10/7/2019, 2:47:35 PM'). Of course, you can write a more complex expression that matches this time period too. Note that the policies are checked just before the tab is reloaded, so you can basically stop a tab that has an active reloading job with the reloading policies.

    If you need to match for instance between 8:00 AM to 5:59 PM, use an expression similar to ( [89]:.*AM)|( 1[01]:.*AM)|( 12:.*PM)|( [12345]:.*PM) which contains four sections. The first one matches 8:00 AM to 9:59 AM. The second one matches 10:00 AM to 11:59 AM. The third one matches 12:00 PM to 12:59 PM and the last one matches 1:00 PM to 5:59 PM. See issues/65 as an example.

  16. What is the newly introduce code section on the browser popup and why it is disabled by default?

    This section allows the user to run a custom JavaScript code after each refresh. To enable code injection, the extension needs to have permission to this hostname. To do so click on the "Permit Code Execution" button once for each hostname that you would like to inject custom JavaScript code. Now insert your code on the box and this code will be injected to each page after each reloads. To check for errors, use the inspect item from the right-click context menu over the page that the code is injected to.

  17. Can I ask the extension to play a beep sound after each refresh?

    As of version 0.3.2, you can ask the extension to run a custom JS code after each refresh. So to play a sound you can use the following JS code

    (new Audio('')).play()

  18. Can I ask the extension to stop reloading after single reloading occurs?

    The custom code section accepts a special signal to toggle reloading. Use the following code in the custom JS section to stop reloading just after the first reloading.

    window.setTimeout(script => script.dispatchEvent(new Event('toggle-requested')), 1000, document.currentScript);
    Of course you can stop the reloading after a few times just by setting a localStorage variable and update it after each reload. Then send the toggle signal when the reloading count matched.

  19. In the Firefox browser, the "Permit Code Execution" button is not working. Why?

    Seems like Firefox is not yet able to open the permission box issued by a browser action's popup. For now, the only workaround is to allow host permission from the options page. This permission allows the extension to run a user requested code in an arbitrary hostname.

  20. Is it possible to use this extension to get notified when the content of a page changes?

    We can convert the page content to a hash code and use it to evaluate whether there is a new update or not. Since the hash string is small, we can save it in the page's local storage for later use. The following code calculates the SHA256 hash code from the entire page's content (you can even limit the code to use the content of a particular HTML element) and stores it in a persistent variable. This hash code is calculated after each page refresh. If the value changes, the user gets a sample sound alert. For 0.5.x versions, you can use the pop-up interface to observe document changes without writing your custom JavaScript code. As of the version 0.5.3 release, if the page has the "tab-reloader-element" local storage variable, it will be used to find the specific element. In case this variable is not set, the hash code of the parent element is calculated. Also, you can control the volume level by providing a value between zero and one for "tab-reloader-volume" local storage.

      async function sha256(message) {
        const script = document.currentScript;
        const msgBuffer = new TextEncoder('utf-8').encode(message);
        const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
        const hashArray = Array.from(new Uint8Array(hashBuffer));
        const hashHex = => ('00' + b.toString(16)).slice(-2)).join('');
        return hashHex;
      sha256(document.body.innerText).then(hash => {
        const oh = localStorage.getItem('tab-reloader-hash');
        if (oh && oh !== hash) {
          script.dispatchEvent(new CustomEvent('play-sound', {
            detail: ''
        localStorage.setItem('tab-reloader-hash', hash);

    To use a custom sound, use:

    localStorage.setItem('tab-reloader-sound', '')

  21. Is it possible to reset the reloading timer when there is an activity on a tab (auto-reload only after a defined idle time is passed)?

    This extension supports injecting a user-defined custom script to the webpages that are reloaded. Also, it supports the script to change the enabling state. Combining these two features you can inject a script that monitors the user activity and requests the reset. The following code is sensitive to user clicks and typing and resets the timer accordingly after 0.5s passes.

      const script = document.currentScript;
      const reset = () => {
        console.log('Reset the Timer');
        script.dispatchEvent(new Event('toggle-requested'));
        clearTimeout(; = setTimeout(() => script.dispatchEvent(new Event('toggle-requested')), 100);
      const action = () => {
        clearTimeout(; = setTimeout(reset, 500);
      document.addEventListener('click', action);
      document.addEventListener('input', action);

  22. Playing sound with the suggested "new Audio" JavaScript code is not working properly for me when the tab is not active. Why the sound is not being played?

    Some browsers do not allow inactive tabs from auto-playing media files to protect users. Since v0.3.4, you can use the following alternative code to play media sounds:

      const script = document.currentScript;
      window.setTimeout(() => {
        script.dispatchEvent(new CustomEvent('play-sound', {
          detail: ''
      }, 500);
    In this meethod, the script asks the background page to play the music.

  23. Is it possible to conditionally focus a tab with the injected script?

    As of version v0.3.4, you can send the "activate-tab" event to the script to bring the sender tab to the front. This code asks the background script to focus the sender's tab.

      const script = document.currentScript;
      window.setTimeout(() => {
        script.dispatchEvent(new Event('activate-tab'));
      }, 500);

  24. Is it possible to postpone the next reloading job with an arbitrary value from the injected script?

    As of version 0.3.6, there is a new custom event called "delay-for" which can be used to delay the next reloading job with an arbitrary positive or negative value. For instance, to postpone the next reloading job an extra 30 seconds use:

      window.setTimeout(script => {
        script.dispatchEvent(new CustomEvent('delay-for', {
          detail: 30000
      }, 1000, document.currentScript);
    In this example, consider the reloading period is 5 minutes. With this extra delay, the next reloading occurs 5 minutes and 30 seconds from the script execution. This event can be used to schedule the next reloading job. For instance, say you don't need the tab to be reloaded during the daytime. Write a JavaScript code that compares the current time with your preferred schedule, and if the condition matches, delay the next reloading job until the period is over.

  25. When I am trying to reload a webpage I get a confirmation message like "This page is asking you to confirm that you want to leave - data you have entered may not be saved" or "Changes you made may not be saved". Is there any way to automatically bypass these warning with this extension?

    You can enable script injection and delete the function that causes these warnings. Note that you are disabling an important warning with this code, so use it with caution.

      window.onbeforeunload = '';
      document.onbeforeunload = '';
      document.body.onbeforeunload = '';
    Note that you are going to get the warning on the first reload and you should manually accept it since this script is only injected after each reload.

  26. I want this extension to skip active browser tabs in all windows. Currently, it only considers the active tab in the current window as the active one. Is it possible?

    As of version 0.3.7, the extension only prevents the active tab in the active window from automatic reloading if the option is checked on the popup. If you need to extend this behavior to all active tabs on browser windows, go to the options page and check the 'Consider one tab per browser window as an "active tab"' option.

  27. Here is the list of all supported actions that injected script can do:

    • toggle-requested: Toggles the enable state of a job. This is useful to stop reloading when a condition met.
    • activate-tab: Brings the tab and the window that dispatches this event. This is useful to bring the user's attention when a condition met.
    • play-sound: Plays a sound that is provided by the "detail" object of the custom event. This function can be used to play a sound even if a tab is not active.

  28. Here is the list of all supported keywords for code injection:

    • hostname: Exact hostname (e.g.: hostname: '') or wildcard hostname (hostname: '*')
    • dd: Reload after dd days (a number between 0 to 10) (e.g.: dd: 2)
    • hh: Reload after hh hours (a number between 0 to 23)
    • mm: Reload after mm minutes (a number between 0 to 59)
    • ss: Reload after ss seconds (a number between 0 to 59)
    • variation: Use a random variation (a number between 0 to 99) (e.g.: variation: 10)
    • current: If true, active tab will not be reloaded (e.g.: current: true)
    • cache: If true, soft reloading is used (similar to F5). If false, hard reloading is used (similar to Shift + F5)
    • form: If true, form submission warning is bypassed (e.g.: form: true)
    • code: JavaScript code to be executed after each reload (e.g.: code: "console.log('ok');")

  29. Supported keyboard shortcuts (for version v0.5.0):

    Close Popup Shift + Escape Key Stop Timer Escape Key Enable Timer S Key Select a preset Ctrl + 1/9 Keys

  30. Is it possible to reload between the provided time frames only?

    As of version 0.5.5, you can define multiple time frames on the popup interface. The reloading only happens if the current time matches at least one time frame. To have more than one time frame, separate them with a comma.


    00:00:00 - 01:00:00, 12:30:00 - 13:30:00

  31. [version 0.5.9] What is the meaning of "Run Policy Code" feature on the popup interface?

    This feature allows you to control whether the page should be reloaded by the extension or not. When the option is checked, the extension will run the provided JavaScript code and checks the "continue" dataset on the script. If this dataset is not set to "true", the reloading will be skipped. With this feature, you can create a custom policy for reloading the page. For instance, you can check the content of the page to see if a specific word exists. If it does, the page will be reloaded. Otherwise, the reloading will be skipped. Additionally, you can set the feature to reload the page if the title contains a specific word.

    Example one: Reload only if page contains "hello" word

    document.currentScript.dataset.continue = document.body.innerText.includes("hello");

    Example two: Reload the page randomly at 50% rate

    document.currentScript.dataset.continue = Math.random() < 0.5;

Matched Content



Please keep reviews clean, avoid improper language, and do not post any personal information. Also, please consider sharing your valuable input on the official store.

What's new in this version

Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Editorial Review

    Tab Reloader is a great add on that lets you reload every browser tab with a custom time frame. While it is supported on multiple browsers, it works best on Firefox.

    One of the best things about Tab Reloader is that it has a clear interface and it is highly adjustable. The tab has a wide reloading range that goes from 10 seconds to 10 days. The add-on has been designed to provide complete customization on how every browser tab gets loaded and reloaded. The extension can be used to update tabs which will then freshen the content. The add-on is very simple to use and extremely convenient if you are working on several browsers at the same time. Moreover, the add-on lets you launch several tabs in a custom time frame which means that it makes working very easy and simple for you. The add-on is a must have for people who mostly work on computers and have several pages to work on side by side. It is easy to use and does not have glitches like other add-ons do. The simplicity of the add on does not only apply to its ease of use but also its easy and basic installation. All you have to do is install it and the rest will follow itself. Another positive thing about the add on is that the configuration is done via the context menu and therefore no extra action is needed to use the add-on.

    Overall, Tab Reloader is a great plugin for all those who want to add convenience and ease in their life. It is easy to use, easy to install and facilitates a lot of ease in your day to day life. It is available on the web and can be installed for free.

    Recent Blog Posts on