Removed parameters from navigator functions

This commit is contained in:
z0ccc 2021-10-05 00:03:35 -04:00
parent 9a308f287a
commit cca0a0e02e

View file

@ -1,153 +1,192 @@
import { checkWebWorker } from './common'; import { checkWebWorker } from './common';
const getDeviceMemory = (key, worker) => ({ const getDeviceMemory = (worker) => {
const name = 'deviceMemory';
return {
key: 'Device memory', key: 'Device memory',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getHardwareConcurrency = (key, worker) => ({ const getHardwareConcurrency = (worker) => {
const name = 'hardwareConcurrency';
return {
key: 'Hardware concurrency', key: 'Hardware concurrency',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getMaxTouchPoints = (key) => ({ const getMaxTouchPoints = () => {
const name = 'maxTouchPoints';
return {
key: 'Max touch points', key: 'Max touch points',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getPlatform = (key, worker) => ({ const getPlatform = (worker) => {
const name = 'platform';
return {
key: 'Platform', key: 'Platform',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getUserAgent = (key, worker) => ({ const getUserAgent = (worker) => {
const name = 'userAgent';
return {
key: 'User agent', key: 'User agent',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getAppVersion = (key, worker) => ({ const getAppVersion = (worker) => {
const name = 'appVersion';
return {
key: 'App version', key: 'App version',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getLanguage = (key, worker) => ({ const getLanguage = (worker) => {
const name = 'language';
return {
key: 'Language', key: 'Language',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
checkWebWorker(navigator[key], worker), checkWebWorker(navigator[name], worker),
], ],
}); };
};
const getLanguages = (key) => ({ const getLanguages = () => {
const name = 'languages';
return {
key: 'Languages', key: 'Languages',
code: `navigator.${key}`, code: `navigator.${name}`,
value: sortArr(navigator[key]), value: sortArr(navigator[name]),
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getCookieEnabled = (key) => ({ const getCookieEnabled = () => {
const name = 'cookieEnabled';
return {
key: 'Cookie enabled', key: 'Cookie enabled',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key] ? 'True' : 'False', value: navigator[name] ? 'True' : 'False',
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getDoNotTrack = (key) => ({ const getDoNotTrack = () => {
const name = 'doNotTrack';
return {
key: 'Do not track', key: 'Do not track',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key] ? 'True' : 'False', value: navigator[name] ? 'True' : 'False',
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getWebDriver = (key) => ({ const getWebDriver = () => {
const name = 'webdriver';
return {
key: 'Web driver', key: 'Web driver',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key] ? 'True' : 'False', value: navigator[name] ? 'True' : 'False',
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getPlugins = (key) => ({ const getPlugins = () => {
const name = 'plugins';
return {
key: 'Plugins', key: 'Plugins',
code: `navigator.${key}`, code: `navigator.${name}`,
value: sortPlugins(navigator[key]), value: sortPlugins(navigator[name]),
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
const getVendor = (key) => ({ const getVendor = () => {
const name = 'vendor';
return {
key: 'Vendor', key: 'Vendor',
code: `navigator.${key}`, code: `navigator.${name}`,
value: navigator[key], value: navigator[name],
issues: [ issues: [
checkNavigatorProperties(key), checkNavigatorProperties(name),
checkNavigatorValue(key), checkNavigatorValue(name),
checkNavigatorPrototype(key), checkNavigatorPrototype(name),
], ],
}); };
};
// sorts array into comma separated list // sorts array into comma separated list
const sortArr = (arr) => { const sortArr = (arr) => {
@ -172,27 +211,30 @@ const sortPlugins = (data) => {
return list; return list;
}; };
const checkNavigatorProperties = (key) => { const checkNavigatorProperties = (name) => {
if (Object.getOwnPropertyDescriptor(navigator, key) !== undefined) { if (Object.getOwnPropertyDescriptor(navigator, name) !== undefined) {
return 'Failed undefined properties'; return 'Failed undefined properties';
} }
return null; return null;
}; };
const checkNavigatorValue = (key) => { const checkNavigatorValue = (name) => {
try { try {
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const { value } = Object.getOwnPropertyDescriptor(Navigator.prototype, key); const { value } = Object.getOwnPropertyDescriptor(
Navigator.prototype,
name
);
} catch (err) { } catch (err) {
return 'Failed Navigator property value'; return 'Failed Navigator property value';
} }
return null; return null;
}; };
const checkNavigatorPrototype = (key) => { const checkNavigatorPrototype = (name) => {
try { try {
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const check = Navigator.prototype[key]; const check = Navigator.prototype[name];
return 'Failed Navigator.prototype'; return 'Failed Navigator.prototype';
} catch (err) { } catch (err) {
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
@ -202,19 +244,19 @@ const checkNavigatorPrototype = (key) => {
}; };
const getNavigator = (workerData) => [ const getNavigator = (workerData) => [
getDeviceMemory('deviceMemory', workerData.deviceMemory), getDeviceMemory(workerData.deviceMemory),
getHardwareConcurrency('hardwareConcurrency', workerData.hardwareConcurrency), getHardwareConcurrency(workerData.hardwareConcurrency),
getMaxTouchPoints('maxTouchPoints'), getMaxTouchPoints(),
getPlatform('platform', workerData.platform), getPlatform(workerData.platform),
getUserAgent('userAgent', workerData.userAgent), getUserAgent(workerData.userAgent),
getAppVersion('appVersion', workerData.appVersion), getAppVersion(workerData.appVersion),
getLanguage('language', workerData.language), getLanguage(workerData.language),
getLanguages('languages'), getLanguages(),
getCookieEnabled('cookieEnabled'), getCookieEnabled(),
getDoNotTrack('doNotTrack'), getDoNotTrack(),
getWebDriver('webdriver'), getWebDriver(),
getPlugins('plugins'), getPlugins(),
getVendor('vendor'), getVendor(),
]; ];
export default getNavigator; export default getNavigator;