AskBlocker

Blocks overly-eager permission requests for notifications, location, etc. For example, before you've interacted with the page.

What is AskBlocker?

AskBlocker is a Chrome extension developed by https://adamlynch.com, and its main feature is "Blocks overly-eager permission requests for notifications, location, etc. For example, before you've interacted with the page.".

Extension Screenshots

screenshot

Download AskBlocker Extension CRX File

Download AskBlocker 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

                        Block overly-eager permission requests for notifications, location, etc. For example, ones that happen before you've interacted with the page. This was created as part of How to improve your permissions UX (https://adamlynch.com/improve-permissions-ux).

How it works:

Permissions requests are blocked until you've interacted with the page; i.e. click, tap, or key press. Although there are the following exceptions:

- If the permission has been previously requested and granted (or explicitly denied).
- If the domain is `localhost` or `127.0.0.1`.
- If you've navigated to the current page from another page on the same domain.

Things not covered and why:

 - Accelerometer, gyroscope, magnetometer, device motion, device orientation, etc. They don't trigger a permissions request popup.
 - Ambient light sensor. It doesn't trigger a permissions request popup.
 - Bluetooth. This can only be requested due to user interaction anyway (https://webbluetoothcg.github.io/web-bluetooth/#requestDevice-user-gesture).
 - Clipboard. It doesn't trigger a permissions request popup.
 - Flash. I don't know how the prompt is triggered or how I can intercept this.
 - Geolocation's `watchPosition` method. There's no way to achieve this without breaking stuff. It returns an ID and it doesn't offer any way to check the status of the permission, like `Notification.permission`. The Permission API could be used but it's asynchronous (Promise based), so there's no way to use it and also still return the ID. 
 - Web USB. Not really supported yet (and the Permission API doesn't support it yet), so it probably won't be annoying anyone.                    

Extension Basic Information

Name AskBlocker AskBlocker
ID eelfgnmggfgncoipinopobfcabnfknho
Official URL https://chromewebstore.google.com/detail/askblocker/eelfgnmggfgncoipinopobfcabnfknho
Description Blocks overly-eager permission requests for notifications, location, etc. For example, before you've interacted with the page.
File Size 57.04 KB
Installation Count 173
Current Version 1.0.7
Last Updated 2018-03-04
Publish Date 2018-03-04
Rating 3.67/5 Total 3 Ratings
Developer https://adamlynch.com
Payment Type free
Extension Website https://adamlynch.com/askblocker/
Help Page URL https://github.com/adam-lynch/askblocker/issues
Supported Languages en
manifest.json
{
    "update_url": "https:\/\/clients2.google.com\/service\/update2\/crx",
    "manifest_version": 2,
    "name": "AskBlocker",
    "description": "Blocks overly-eager permission requests for notifications, location, etc. For example, before you've interacted with the page.",
    "version": "1.0.7",
    "homepage_url": "https:\/\/adamlynch.com\/askblocker",
    "background": {
        "scripts": [
            "browser-polyfill.min.js",
            "background.js"
        ]
    },
    "browser_action": {
        "default_icon": "icons\/askBlocker-128.png",
        "default_popup": "popup.html"
    },
    "content_scripts": [
        {
            "matches": [
                ""
            ],
            "all_frames": true,
            "js": [
                "browser-polyfill.min.js",
                "content.js"
            ],
            "run_at": "document_start"
        }
    ],
    "icons": {
        "16": "icons\/askBlocker-16.png",
        "32": "icons\/askBlocker-32.png",
        "48": "icons\/askBlocker-48.png",
        "128": "icons\/askBlocker-128.png",
        "512": "icons\/askBlocker-512.png"
    },
    "permissions": []
}