StopTheMadness for Microsoft Edge
You can selectively enable and disable StopTheMadness features. Your custom options can be configured to apply to every web page or just to web sites that you specify. To change the options, open the StopTheMadness popup in the toolbar of an Edge window. You can also open the Extensions window in Microsoft Edge, click the Details button under StopTheMadness, and then click "Extension options" on the Details page.
There are a number of protection features that you can enable and disable. By default, the "Recommended" features are enabled. These provide you with a high level of protection while also maximizing website compatibility. The features labeled "Use with caution" provide even higher levels of protection, but there may be more sites that don't work right when they're enabled, which is why they're disabled by default. The features labeled "Widespread breakage" are intended to be used sparingly, only on specific sites where you know you need them, because otherwise they can cause a large number of incompatibilities on other sites. Any and all of the features can be enabled or disabled as necessary or desired. Below is an explanation of each feature:
- ⌘-click: When enabled, ⌘-click always opens links in a new tab. When disabled, websites can prevent you from opening links in a new tab.
- ⌘-key shortcuts: When enabled, ⌘-key shortcuts always go to Edge. When disabled, websites can hijack or disable keyboard shortcuts.
- Autocomplete: When enabled, autocompletion and AutoFill of user names, passwords, and other information always works in web forms. When disabled, websites can prevent AutoFill.
- Contextual menus: When enabled, you can always open Edge's contextual menu. (If you still need to open a web site's custom contextual menu instead of Edge's contextual menu, just press the option key while you open the menu.) When disabled, websites can prevent you from opening the contextual menu or substitute their own menu for Edge's.
- Cut, copy, and paste: When enabled, you can always cut, copy, and paste text on a web page. When disabled, websites can prevent you from doing cut, copy, and paste.
- Drag and drop: When enabled, you can always drag and drop on a web page. When disabled, websites can prevent you from doing drag and drop.
- Hover shortcuts: When enabled, you can copy a link URL by hovering over it and pressing the keyboard shortcut (⌘-c) for the copy command, or copy a link title by hovering over it and pressing the keyboard shortcut (⌘-x) for the cut command. You can also delete any HTML element on the page by hovering over it and pressing the ⌘-delete keyboard shortcut. There's a confirmation dialog, which you can skip with the option key: ⌥⌘-delete.
- Input maxlength warning: When enabled, StopTheMadness warns you if the characters you type or paste into a password field or other input field exceed the maximum length of the field. If this feature is disabled, then some of the characters you type or paste into a password field can get silently lost, with no warning.
- Privacy: When enabled, your privacy is protected on the web in a a number of ways:
- Stops hyperlink auditing by removing the anchor "ping" attribute on link clicks.
- Stops tracking beacons (
Navigator.sendBeacon) from firing.
- Prevents hijacking/rewriting of clicked links in Google Search results.
- Prevents hijacking/rewriting of clicked links in Gmail.
- Prevents hijacking/rewriting of clicked links in Facebook.
- Removes tracking tags such as
utm_source (Urchin Tracking Module),
gclid (Google Click ID), and
fbclid (Facebook Click ID) from the end of the URL when you click, drag, or open a contextual menu on a link.
- Tab closing and visibility: When enabled, you can always immediately close a tab. When disabled, websites can stop you from closing a tab or window. Instead, the site may show a popup alert that asks "Are you sure you want to leave this page?" when you try to close a tab or a window.
The Tab closing and visibility feature also prevents websites from observing
visibilitychange events, which are part of the Page Visibility API. Using this API, websites can learn when a tab is visible on your screen and when the tab is hidden. When Tab closing and visibility is enabled, websites can't observe when you show or hide a tab or your screen.
- Text selection: When enabled, you can always select text on a web page. When disabled, websites can preventing you from selecting text.
- Force links to open in current tab: Websites frequently add
target="_blank" to a link to make the link automatically open in a new tab when you click. If you prefer to open links in the current tab instead of a new tab, you can enable this feature, which removes
target="_blank" from links. When enabled, normal link clicks always open in the current tab. (You can still ⌘-click to open the link in a new tab.) When this feature is disabled, some links may automatically open in new tabs when clicked.
- Images in front: When enabled, all images on the page are forced to the front. This can help on websites such as Instagram that put a transparent overlay in front of images, which prevents you from dragging or opening the contextual menu for an image. Images in front is disabled by default, because it can mess up the page layout on some sites.
- Scrolling: When enabled, websites cannot prevent or hijack scrolling. Websites often use "scrolljacking" for annoying purposes, such as popup videos on scroll. When the scrolling option is disabled, websites can scrolljack. This feature is disabled by default, because it causes incompatibilities with a number of websites, especially sites with "infinite scrolling". See Known Issues for a few examples.
- Show video controls: When enabled, video controls are shown by default, and you can always click on a video to control it or show the contextual menu for videos. When disabled, websites can cover videos with a transparent overlay that prevents you from directly controlling the video. This feature is disabled by default, because a lot of websites have custom video controls and don't use the HTML5 default controls.
- Stop video autoplay: When enabled, videos are prevented from autoplaying. When disabled, websites can autoplay videos without any user interaction. This feature is disabled by default.
Warning: Stop video autoplay can interfere with Edge's native video controls "play" button.
- Stop ⌘-arrow page navigation: Inside an editable text field, ⌘-left-arrow and ⌘-right-arrow put the cursor at the beginning or end of the current line of text. However, outside an editable text field, ⌘-left-arrow makes you navigate back to the previous page in your web browsing history, and ⌘-right-arrow makes you navigate forward. This page navigation is often accidental and unwanted! Stop ⌘-arrow page navigation prevents these keyboard shortcuts from causing page history navigation, while still allowing you to use the keyboard shortcuts in editable text fields. This feature is disabled by default. Enable it to prevent unwanted history navigation.
- Textarea: When enabled, multi-line text editors (HTML
textarea elements) are also protected by the website options "⌘-key shortcuts", "Cut, copy, and paste", and "Text selection". By default, only single-line editors (HTML
input elements) are protected, because multi-line editors don't usually prevent copy and paste, and a lot of websites have special multi-line "rich text" editors with highly customized editing that can break with the textarea feature enabled. However, you may need to enable this feature on certain websites if they disable copy and paste.
- All key presses: When enabled, stops websites from hijacking key presses on the page. This feature cannot be enabled with the Default options for all websites, because it would cause breakages on too many sites. It usually shouldn't be necessary, but in some rare cases a website will go to extreme lengths to interfere with your typing. (Note: textareas are not covered by "All key presses" unless the "Textarea" option is also enabled.)
- All mouse clicks: When enabled, stops websites from hijacking mouse clicks on the page. This feature cannot be enabled with the Default options for all websites, because it would cause breakages on too many sites. It usually shouldn't be necessary, but in some rare cases a website will go to extreme lengths to prevent you from selecting text on the page. If the Text selection feature is not sufficient to enable text selection on a page, you may need to enable All mouse clicks too in order to select text.
- Focus and blur: A focus event occurs when a website element gets the keyboard focus, and a blur event occurs when a website element loses the keyboard focus. When enabled, the Focus and blur feature stops websites from capturing these events. This feature cannot be enabled with the Default options for all websites, because it would cause breakages on too many sites.
When you change the website options in StopTheMadness, those changes apply immediately to the active Edge tab, and will apply to all web pages loaded thereafter in any tab. If you already had a web page open in a background tab before you changed the website options, and you want the changes to apply immediately to that web page, you need to switch to the tab and reload the page.
How to Add Website Options:
The Default options for all websites apply to every web page in Edge, unless you have custom options for a particular site. To create custom options for a website, press the New Customized Website button. There are two ways to specify websites: domain or URL. Examples of domains are "
apple.com" and "
google.com". If you specify a domain, then subdomains of that domain are automatically covered too. For example, "
google.com" also covers "
mail.google.com", etc. If you want a subdomain to have different options than its domain, create a separate item for the subdomain. The longest match always wins, so if you have items for both "
google.com" and "
mail.google.com", then your "
mail.google.com" options will apply when you load the page "
https://mail.google.com/". If you want options to apply only to subdomains but not to the domain, put a dot at the beginning: "
.google.com" applies to "
https://www.google.com/", etc., but not to "
You may want to apply custom options only to certain paths of a website, in which case you need to specify the website as a full URL. For example, if you enter "
https://www.google.com/maps", then the custom options will only apply to Google Maps and not to Google Search at "
https://www.google.com/". Subpaths are automatically covered too: "
https://www.google.com/maps" would also cover "
https://www.google.com/maps/search/apple+park". You can customize subpath options by creating a separate item for the subpath. As with domains, the longest match among URLs always wins. And a URL setting that includes a domain will override a domain setting for the same domain, since the URL is longer. So "
https://www.google.com/maps" takes precedence over "
Known Website Compatibility Issues:
In these cases you may want to create custom website options and disable the specific feature.
Medium: Enable "All mouse clicks" on
medium.com to stop its popup on text selection. See my blog post for more details.
Show video controls: ESPN, Hulu, Netflix, nfl.com