Always Active Window Spoof the active state of HTML pages to pretend the page is always visible
Support Development
PayPal ● 
Bitcoin Address: bc1qh7juzrxrawpr65elm4qs285m5rdhnhgsn7h2jf
Lightning Address: [email protected]
Your Input Matters
The "Always Active Window" extension adds a small piece of JavaScript to the selected web pages and frame elements to prevent visibility events from being transmitted. Additionally, it overwrites the DOM properties that indicate the current visibility status of these web pages so that both the server and the page's scripts believe that the page is in an active state or is currently the visible tab. This extension is particularly useful for web pages that only provide content when they are visible, such as many music websites that only begin streaming when the browser tab is in focus.



  1. What is the "Always Active Window" extension and how can I use it?

    The extension injects a small JavaScript code into the selected HTML page before they load (you need to refresh already loaded tabs for the script to take effect). This script performs the following main tasks:

    • It modifies the visibility properties of the browser, including document.visibilityState and document.hidden for all browsers, as well as document.mozHidden for Firefox and document.webkitHidden for all Chromium-based browsers. This ensures that if a JavaScript code checks the current visibility state, it will only receive a "visible" state, making the code believe that the page is active.
    • Modern browsers emit visibility change events whenever a tab becomes hidden or visible. This extension blocks these events, including visibilitychange, webkitvisibilitychange, and mozvisibilitychange. These events are typically used to alter page behavior based on visibility status.
    • This extension ensures that the requestAnimationFrame method continues to be called even when the page is hidden. Normally, browsers stop calling this method on hidden tabs for efficiency reasons.
    Before the 0.4.0 release, the extension injected scripts into all hostnames. After this release, the extension only injects scripts into hostnames listed on the options page. To add a website to the list, simply click the action button once. When the extension is active on a hostname, the icon is blue; when it is inactive, the icon is gray. You can add or remove websites in batches from the options page.

  2. What's new in this version?

    Please check the Logs section.

  3. [Before 0.4.0 release] Is it possible to turn off this extension on certain web pages or restrict it to only certain ones?

    Currently, this extension does not offer black- or white-list filtering. If you require such filtering, you can submit your request on the review section of this page. For now, if you need to enable this extension on a few specific hostnames, you can create a different browser profile for those hostnames and install the extension only on that profile. Additionally, on Chromium-based browsers, you can limit the extension's access from the action button. There is an "allow access" option that can be used to restrict the extension's access.

  4. [Deprecated] Is it possible to use this extension to verify if a webpage is checking for visibility state?

    Although the extension does not have an options page, you can still turn on real-time logging information in the browser console. Simply open the extension's console, enter the command localStorage.setItem('log', true), then press Enter. When you no longer need to log information, use localStorage.setItem('log', false) to prevent clutter in the browser console. The extension features two logging methods: one for page visibility events and one for checking the visibility state with JavaScript code.

  5. [Before 0.4.0 release] Can I limit the extension's access to specific hostnames although it doesn't support the exception list?

    While the extension doesn't currently support the exception list, if you're using it on a Chromium browser, you can disallow the extension from having access to all hostnames. Right-click on the browser action button of the extension and change the "This can Read and Change Site Data" radio from the "On all Sites" option to the "On this Hostname" option. By selecting this option, the extension will only inject its blocker script into the active hostname, effectively creating a whitelist. Make sure to perform this action on all hostnames where you want the extension to protect the visibility state.

  6. How can I resolve issues with certain website functionalities while using this extension?

    This extension is designed to block certain events to prevent websites from detecting changes in the visibility state, which can cause some websites to malfunction. For example, a website may need to detect when your mouse leaves the page, but this extension blocks this event by default. It is recommended to check FAQ5 for instructions on how to globally disable the extension and only activate it on necessary websites. However, if you still want to use the extension while accessing a problematic website, you can partially disable it using the "Policies" section on the options page. In this section, you can create a JSON object with the website hostname as the key and an array of specific events to unblock as the value. The supported events are blur, focus, mouseleave, and visibility. For example, if you want to unblock the blur event on Google Docs, you can use as the key and ["blur"] as the value.

  7. Is there a way to prevent tab throttling on Chromium browsers for a website that frequently updates its content, even when the tab is inactive?

    Yes, Chromium browsers have a built-in feature called tab throttling, which reduces the resource usage of inactive tabs. This throttling can significantly reduce the number of times a website updates its content when it is inactive. However, you can turn off this feature by opening Chrome with the --disable-background-timer-throttling argument. This will prevent tab throttling for all tabs in the browser. Keep in mind that this may have an impact on the overall performance of your system.

    On Windows, close all Chrome browser windows. From the Start menu, search for the "Run" program. On the "Open:" input type the following command and hit the Enter key.

    %ProgramFiles%/Google/Chrome/Application/chrome.exe --disable-background-timer-throttling
    Also visit Chrome internal flags related to throttling by opening chrome://flags/#throttling in a new tab.

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

    Permissions are explained

    storageto store and retrieve internal preference

    Recent Blog Posts