Navigator Plugins

This file contains wrappers for NavigatorPlugins. See the MDN docs on the plugins and MIME types.

The goal is to prevent fingerprinting by modifying value returned by getters navigator.plugins and navigator.mimeTypes

This wrapper operates with three levels of protection:

  • (0) - replace by shuffled edited PluginArray with two added fake plugins, edited MimeTypeArray
  • (1) - replace by shuffled PluginArray with two fake plugins, empty MimeTypeArray
  • (2) - replace by empty PluginArray and MimeTypeArray

These approaches are inspired by the algorithms created by Brave Software available here.

The purpose of the wrappers is solely to prevent fingerprinting. However, browsers modyfing the array stand out of the crowd, which makes them more fingerprintable. Consequently, JShelter does not modify an empty list. So no matter the configuration, an empty list is not populated by the wrappers.

If PDF inline viewing is supported, Firefox returns 5 plugins: * "PDF Viewer" * "Chrome PDF Viewer" * "Chromium PDF Viewer" * "Microsoft Edge PDF Viewer" * "WebKit built-in PDF"

A list containing exactly these plugins is treated as the empty list and it is not modified.