# Privacy policy for the TW Power Tools (formerly Infinite Scroll) extension

The TW Power Tools (formerly Infinite Scroll) extension for Chrome and Firefox (including its beta channel) adds several enhancements to the Google forums. It does that by injecting Javascript code into the forum pages which adds these enhancements. The extension doesn't collect any information at all nor does it send it to any server, although Chrome and Firefox will save and sync the extension settings between all your synced Chrome/Firefox browsers.

The extension also requests every 30 minutes the current kill switch status to a server hosted by us. The request doesn't identify the user. Apache automatically logs these requests (including the IP address and the user agent) to help notice errors in the server. This information is deleted automatically up to 1 year after it is logged.

## Contact information

You can contact us here:

* **Name:** Adrià Vilanova Martínez
* **E-mail address:** [privacy-requests@avm99963.com](mailto:privacy-requests@avm99963.com?subject=TW+Power+Tools+privacy+request)
