Auto Referer

Control referer to protect privacy and not break web

What is Auto Referer?

Auto Referer is a Chrome extension developed by https://garywill.github.io, and its main feature is "Control referer to protect privacy and not break web".

Extension Screenshots

screenshot

Download Auto Referer Extension CRX File

Download Auto Referer extension files in crx format, manually install Chrome extensions in the browser, or share the crx files with friends to easily install Chrome extensions.

Extension Usage Instructions

                        Control HTTP Referer to protect privacy and not break web. Open source at https://github.com/garywill/autoReferer

Referer policy:

1. For webs' top frame (i.e. clicking link, navigating, redirecting etc.):
   1). If origin and target url have same domain, allow trimmed referer
   2). If origin and target url have different domain, no referer 

2. For in-page resources (images, videos, js, css etc.), allow trimmed referer (this is **the key to not break** most webs, also a balance between privacy and experience)

3. Trim referer: Any referer should be no more than `http(s)://domain-name:port/` 

4. Not allow referer that not starts with "http" or "https". (Please feedback if you find something broken due to this)

5. No referer when downgrade from HTTPS/WSS to HTTP/WS

We believe that can protect privacy enough and won't break web.

If user find a web broken, user can temporary set this addon disabled via toolbar button for:

- this one tab
- this one tab and new tabs opened by this tab
- this one window (Firefox only)
- globally

(above can be set as keyboard shortcuts)

there's showy toolbar button badge indicating disabling status.

## Notice
Due to browser bug on javascript `document.referrer` , using a regular referer controlling addon you can get 70% of expected protection until they fix that bug. 

So, we've implemented a workaround to improve protection to 85%. Please enable workaround in addon settings .

This addon doesn't use content script. Content script hiding `document.referrer` is not 100% reliable.

Instead, we use this workaround to kill `document.referrer`: 
Cancel all cross-domain navigating requests and make freshnew ones, like directly hit (currently only implemented for GET method and main frame, other methods and sub-frames remain as is)

## Allowlist

Currently it has hard-coded allowlist.

## Disclaimer

This open souce addon comes with no warranty. Use on you own risk!                    

Extension Basic Information

Name Auto Referer Auto Referer
ID dafnjeokmkpjdlfgllccdenmikeglgab
Official URL https://chromewebstore.google.com/detail/auto-referer/dafnjeokmkpjdlfgllccdenmikeglgab
Description Control referer to protect privacy and not break web
File Size 34.28 KB
Installation Count 382
Current Version 0.8.40
Last Updated 2024-01-22
Publish Date 2021-12-24
Developer https://garywill.github.io
Email [email protected]
Payment Type free
Extension Website https://github.com/garywill/autoReferer
Help Page URL https://github.com/garywill/autoReferer
Privacy Policy Page URL https://github.com/garywill/garywill/blob/privacy_policy/README.md
Supported Languages en
manifest.json
{
    "update_url": "https:\/\/clients2.google.com\/service\/update2\/crx",
    "name": "Auto Referer",
    "description": "Control referer to protect privacy and not break web",
    "manifest_version": 2,
    "version": "0.8.40",
    "homepage_url": "https:\/\/github.com\/garywill\/autoReferer",
    "author": {
        "name": "Garywill",
        "url": "https:\/\/garywill.github.io"
    },
    "permissions": [
        "webRequest",
        "webRequestBlocking",
        "*:\/\/*\/*",
        "ws:\/\/*\/*",
        "wss:\/\/*\/*",
        "",
        "contextMenus",
        "storage"
    ],
    "icons": {
        "128": "icon.png"
    },
    "background": {
        "page": "background.html",
        "persistent": true
    },
    "browser_action": {
        "default_icon": "icon_gray.png",
        "default_title": "Auto Referer"
    },
    "commands": {
        "_execute_browser_action": {
            "description": "Click toolbar button"
        },
        "toggle_t": {
            "description": "Toggle for one tab"
        },
        "toggle_h": {
            "description": "Toggle for one tab and new tabs opened by it"
        },
        "toggle_global": {
            "description": "Toggle globally enable\/disable"
        }
    },
    "options_ui": {
        "page": "options.html"
    }
}