summaryrefslogtreecommitdiff
path: root/data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-08-15 03:01:21 +0300
committerawy <awy@awy.one>2025-08-15 03:01:21 +0300
commita9370a08517668b3e98cc1d0bd42df407a76c220 (patch)
tree37e7bdb0e76f5495f798e077e45d377c0c3870c0 /data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js
parentb73acfe395ea849fcd15c9886a7f4631f2b6f82b (diff)
ubo + private browsing patchHEADmaster
Diffstat (limited to 'data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js')
-rw-r--r--data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js b/data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js
new file mode 100644
index 0000000..24a39b9
--- /dev/null
+++ b/data/extensions/uBlock0@raymondhill.net/web_accessible_resources/fingerprint2.js
@@ -0,0 +1,55 @@
+/*******************************************************************************
+
+ uBlock Origin - a browser extension to block requests.
+ Copyright (C) 2014-present Raymond Hill
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see {http://www.gnu.org/licenses/}.
+
+ Home: https://github.com/gorhill/uBlock
+*/
+
+// Reference:
+// https://github.com/fingerprintjs/fingerprintjs/tree/v2
+
+(function() {
+ 'use strict';
+ const hex32 = len => {
+ return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)
+ .toString(16)
+ .slice(-len)
+ .padStart(len, '0');
+ };
+ const browserId = `${hex32(8)}${hex32(8)}${hex32(8)}${hex32(8)}`;
+ const fp2 = function(){};
+ fp2.get = function(opts, cb) {
+ if ( !cb ) { cb = opts; }
+ setTimeout(( ) => { cb([]); }, 1);
+ };
+ fp2.getPromise = function() {
+ return Promise.resolve([]);
+ };
+ fp2.getV18 = function() {
+ return browserId;
+ };
+ fp2.x64hash128 = function() {
+ return browserId;
+ };
+ fp2.prototype = {
+ get: function(opts, cb) {
+ if ( !cb ) { cb = opts; }
+ setTimeout(( ) => { cb(browserId, []); }, 1);
+ },
+ };
+ self.Fingerprint2 = fp2;
+})();