Firefox Resource URLs Reader
The resource://
URI scheme is a mechanism used by Firefox to access on-disk resources from internal modules and extensions.
While these resources are not intended for use outside of the browser, some can be accessed by any web page via the script tag, which can lead to unintentional data exposure. This includes information that could be used for fingerprinting, such as the user's platform, locale, and installed extensions.
System Summary | |||
Platform Detection | × False | ||
Default Locale | × False | ||
Update Locale | × False | ||
Tor Browser | × False | ||
Firefox Build | |||
Firefox Official Build | × False | ||
Firefox Release Build | × False | ||
Firefox ESR Channel | × False | ||
Firefox Beta Channel | × False | ||
Firefox Developer Edition | × False | ||
Firefox Nightly Build | × False | ||
Firefox GTK Build | × False | ||
PDF.js | × False |
Default Preferences | |||
Filename | Items | Hash | |
× firefox.js | – | – | |
× firefox-branding.js | – | – | |
× firefox-l10n.js | – | – | |
× webide-prefs.js | – | – | |
× greprefs.js | – | – | |
× services-sync.js | – | – | |
× 000-tor-browser.js | – | – | |
Total | – | – |
Firefox Resources Reader Details
Default Preferences table is a list of built-in Firefox files that contain Firefox defaults. They are identical for all those who install the same Firefox Setup.exe, but they may be different between Firefox versions, platforms, repositories. The table also shows the number of items in each file, and MD5 hash of all items ("key+val+key+val…") that helps to identify the similarity or difference with another Firefox instance.
Locale Detection is done by two ways. First way is trying resource:///chrome/*/locale/
directories for all possible Firefox locales. If the resource:///chrome/zh-TW/
exists, that means this Firefox is Chinese. Second way (not available if the Firefox installed from a Linux repository) is reading resource://gre/update.locale
file, that contains a locale that is used on Firefox Update, so it shows real Firefox interface language.
Platform Detection and Firefox Build type is done by comparing differences in resource:///defaults/preferences/firefox.js
. Some keys and values in this file exist only on Windows, some on Linux, some on Mac. Thus it enables to determine the OS:
- var include = function(load, err) {
- var el = document.createElement("script");
- el.type = "text/javascript";
- el.onload = load;
- el.onerror = err;
- document.head.appendChild(el);
- el.src = "resource:///defaults/preferences/firefox.js";
- }
- var pref,
- sticky_pref,
- os;
- pref = sticky_pref = function(key, val) {
- if (!os)
- if (key == "browser.gesture.pinch.out" && val == "cmd_fullZoomEnlarge")
- os = "Windows";
- else if (key == "browser.backspace_action" && val == "2")
- os = "Linux";
- else if (key == "browser.gesture.pinch.threshold" && val == "150")
- os = "Mac";
- }
- include(function() {
- console.log( "OS: " + (os ? os : "unknown") );
- },function() {
- console.log( "OS: n/a (not a Firefox)" );
- });