diff options
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/fp_config')
5 files changed, 3050 insertions, 0 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_0.json b/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_0.json new file mode 100644 index 0000000..34fa563 --- /dev/null +++ b/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_0.json @@ -0,0 +1,408 @@ +{ + "name":"FingerprintingActivity", + "description":"Definition of fingerprinting behavior by FPD module.", + "severity": [ + [0, "None", "#3CA519"], + [1, "Low", "#80B012"], + [2, "Moderate", "#CD9600"], + [3, "High", "#E64B19"], + [5, "Very High", "#C8004B"] + ], + "criteria":[ + { + "value":3, + "weight":1 + } + ], + "groups":[ + { + "name":"BrowserProperties", + "description":"Fingerprinting methods based on simple information gathering by accessing certain APIs.", + "criteria":[ + { + "value":7, + "weight":1 + }, + { + "value":12, + "weight":2 + }, + { + "value":14, + "weight":3 + } + ], + "groups":[ + { + "name":"NavigatorBasic", + "description":"Basic information about browser and system.", + "criteria":[ + { + "percentage":35, + "weight":1 + }, + { + "percentage":65, + "weight":2 + } + ] + }, + { + "name":"NavigatorHardware", + "description":"Hardware information about device.", + "criteria":[ + { + "value":1, + "weight":1 + } + ] + }, + { + "name":"NavigatorMobile", + "description":"Information about features supported by mobile devices.", + "criteria":[ + { + "value":1, + "weight":1 + } + ] + }, + { + "name":"NavigatorNetwork", + "description":"Information about internet connection.", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + }, + { + "name":"LocalizationInfo", + "description":"Localization details and keyboard layout.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"PermissionsInfo", + "description":"Querying different permissions through API.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"AudioInfo", + "description":"AudioContext configuration parameters.", + "criteria":[ + { + "percentage":40, + "weight":1 + } + ] + }, + { + "name":"ScreenInfo", + "description":"Information about screen and its properties.", + "criteria":[ + { + "value":5, + "weight":1 + } + ] + }, + { + "name":"WindowInfo", + "description":"Information about screen from root Window object.", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + }, + { + "name":"StorageInfo", + "description":"Availability of WebStorage technology.", + "criteria":[ + { + "percentage":60, + "weight":1 + } + ] + }, + { + "name":"NavigatorFlags", + "description":"Binary browser settings.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"TimeInfo", + "description":"Information about exact time values.", + "criteria":[ + { + "access":10, + "weight":1 + } + ] + }, + { + "name":"WebGLInfo", + "description":"Information from WebGL/WebGL2 interface.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + } + ] + }, + { + "name":"AlgorithmicMethods", + "description":"Fingerprinting methods based on specific procedures, calculations or processing.", + "criteria":[ + { + "value":1, + "weight":2 + }, + { + "value":2, + "weight":3 + } + ], + "groups":[ + { + "name":"FontsEnumFingerprint", + "description":"System fonts enumeration techniques.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ], + "groups":[ + { + "name":"JSFontEnum", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"JSFontEnumStepOne" + }, + { + "name":"JSFontEnumStepTwo", + "criteria":[ + { + "access":15, + "weight":1 + } + ] + } + ] + }, + { + "name":"CanvasFontEnum", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"CanvasFontEnumStepOne" + }, + { + "name":"CanvasFontEnumStepTwo" + } + ] + } + ] + }, + { + "name":"CanvasFingerprint", + "description":"Extraction of rendered image from 2D canvas.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"CanvasFingerprintStepOne", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"CanvasFingerprintStepTwo", + "criteria":[ + { + "access":2, + "weight":1 + } + ] + }, + { + "name":"CanvasFingerprintStepThree" + } + ] + }, + { + "name":"WebGLFingerprint", + "description":"Extraction of rendered image from WebGL canvas.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL1Fingerprint", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL1FingerprintStepOne", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL1FingerprintStepTwo", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL1FingerprintStepThree" + } + ] + }, + { + "name":"WebGL2Fingerprint", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL2FingerprintStepOne", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL2FingerprintStepTwo", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL2FingerprintStepThree" + } + ] + } + ] + }, + { + "name":"WebRTCFingerprint", + "description":"Leakage of public or local IP address.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebRTCFingerprintStepOne", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"WebRTCFingerprintStepTwo", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + } + ] + }, + { + "name":"AudioContextFingerprint", + "description":"Fingerprinting based on AudioContext processing.", + "criteria":[ + { + "value":2, + "weight":1 + } + ] + } + ] + }, + { + "name":"CrawlFpInspector", + "description":"APIs often abused for fingerprinting according to FP-Inspector study.", + "criteria":[ + { + "percentage":10, + "weight":1 + }, + { + "percentage":15, + "weight":2 + }, + { + "percentage":20, + "weight":3 + } + ] + } + ] +}
\ No newline at end of file diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_1.json b/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_1.json new file mode 100644 index 0000000..47f5939 --- /dev/null +++ b/data/extensions/jsr@javascriptrestrictor/fp_config/groups-lvl_1.json @@ -0,0 +1,408 @@ +{ + "name":"FingerprintingActivity", + "description":"Definition of fingerprinting behavior by FPD module.", + "severity": [ + [0, "None", "#3CA519"], + [1, "Low", "#80B012"], + [2, "Moderate", "#CD9600"], + [3, "High", "#E64B19"], + [5, "Very High", "#C8004B"] + ], + "criteria":[ + { + "value":3, + "weight":1 + } + ], + "groups":[ + { + "name":"BrowserProperties", + "description":"Fingerprinting methods based on simple information gathering by accessing certain APIs.", + "criteria":[ + { + "value":7, + "weight":1 + }, + { + "value":11, + "weight":2 + }, + { + "value":13, + "weight":3 + } + ], + "groups":[ + { + "name":"NavigatorBasic", + "description":"Basic information about browser and system.", + "criteria":[ + { + "percentage":35, + "weight":1 + }, + { + "percentage":65, + "weight":2 + } + ] + }, + { + "name":"NavigatorHardware", + "description":"Hardware information about device.", + "criteria":[ + { + "value":1, + "weight":1 + } + ] + }, + { + "name":"NavigatorMobile", + "description":"Information about features supported by mobile devices.", + "criteria":[ + { + "value":1, + "weight":1 + } + ] + }, + { + "name":"NavigatorNetwork", + "description":"Information about internet connection.", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + }, + { + "name":"LocalizationInfo", + "description":"Localization details and keyboard layout.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"PermissionsInfo", + "description":"Querying different permissions through API.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"AudioInfo", + "description":"AudioContext configuration parameters.", + "criteria":[ + { + "percentage":40, + "weight":1 + } + ] + }, + { + "name":"ScreenInfo", + "description":"Information about screen and its properties.", + "criteria":[ + { + "value":5, + "weight":1 + } + ] + }, + { + "name":"WindowInfo", + "description":"Information about screen from root Window object.", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + }, + { + "name":"StorageInfo", + "description":"Availability of WebStorage technology.", + "criteria":[ + { + "percentage":60, + "weight":1 + } + ] + }, + { + "name":"NavigatorFlags", + "description":"Binary browser settings.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"TimeInfo", + "description":"Information about exact time values.", + "criteria":[ + { + "access":10, + "weight":1 + } + ] + }, + { + "name":"WebGLInfo", + "description":"Information from WebGL/WebGL2 interface.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + } + ] + }, + { + "name":"AlgorithmicMethods", + "description":"Fingerprinting methods based on specific procedures, calculations or processing.", + "criteria":[ + { + "value":1, + "weight":2 + }, + { + "value":2, + "weight":3 + } + ], + "groups":[ + { + "name":"FontsEnumFingerprint", + "description":"System fonts enumeration techniques.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ], + "groups":[ + { + "name":"JSFontEnum", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"JSFontEnumStepOne" + }, + { + "name":"JSFontEnumStepTwo", + "criteria":[ + { + "access":15, + "weight":1 + } + ] + } + ] + }, + { + "name":"CanvasFontEnum", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"CanvasFontEnumStepOne" + }, + { + "name":"CanvasFontEnumStepTwo" + } + ] + } + ] + }, + { + "name":"CanvasFingerprint", + "description":"Extraction of rendered image from 2D canvas.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"CanvasFingerprintStepOne", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"CanvasFingerprintStepTwo", + "criteria":[ + { + "access":2, + "weight":1 + } + ] + }, + { + "name":"CanvasFingerprintStepThree" + } + ] + }, + { + "name":"WebGLFingerprint", + "description":"Extraction of rendered image from WebGL canvas.", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL1Fingerprint", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL1FingerprintStepOne", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL1FingerprintStepTwo", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL1FingerprintStepThree" + } + ] + }, + { + "name":"WebGL2Fingerprint", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebGL2FingerprintStepOne", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL2FingerprintStepTwo", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ] + }, + { + "name":"WebGL2FingerprintStepThree" + } + ] + } + ] + }, + { + "name":"WebRTCFingerprint", + "description":"Leakage of public or local IP address.", + "criteria":[ + { + "percentage":100, + "weight":1 + } + ], + "groups":[ + { + "name":"WebRTCFingerprintStepOne", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + }, + { + "name":"WebRTCFingerprintStepTwo", + "criteria":[ + { + "percentage":50, + "weight":1 + } + ] + } + ] + }, + { + "name":"AudioContextFingerprint", + "description":"Fingerprinting based on AudioContext processing.", + "criteria":[ + { + "value":2, + "weight":1 + } + ] + } + ] + }, + { + "name":"CrawlFpInspector", + "description":"APIs often abused for fingerprinting according to FP-Inspector study.", + "criteria":[ + { + "percentage":9, + "weight":1 + }, + { + "percentage":13, + "weight":2 + }, + { + "percentage":20, + "weight":3 + } + ] + } + ] +}
\ No newline at end of file diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json new file mode 100644 index 0000000..5a96d2f --- /dev/null +++ b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json @@ -0,0 +1,177 @@ +{ + "$schema":"http://json-schema.org/draft-07/schema", + "definitions":{ + "group":{ + "type":"object", + "title":"Group object", + "description":"Object representing group and its properties.", + "properties":{ + "name":{ + "type":"string" + }, + "description":{ + "type":"string" + }, + "criteria":{ + "$ref":"#/definitions/criteria" + }, + "groups":{ + "title":"Subgroups array", + "description":"Array of subgroups of defined group.", + "type":"array", + "items":{ + "$ref":"#/definitions/group" + } + } + }, + "required":[ + "name" + ], + "additionalProperties":false + }, + "criteria":{ + "type":"array", + "title":"Criteria array", + "description":"Contains criterion objects to define parent group access/weight.", + "if":{ + "items":[ + { + "$ref":"#/definitions/criterion_access" + } + ] + }, + "then":{ + "items":{ + "$ref":"#/definitions/criterion_access" + } + }, + "else":{ + "items":{ + "oneOf":[ + { + "$ref":"#/definitions/criterion_value" + }, + { + "$ref":"#/definitions/criterion_percentage" + } + ] + } + } + }, + "criterion_value":{ + "type":"object", + "title":"Value criterion", + "description":"Criterion based on curent weights of direct children. (children = subgroups or wrapped resources)", + "properties":{ + "value":{ + "type":"integer", + "minimum":1, + "maximum":1000 + }, + "weight":{ + "type":"integer", + "minimum":0 + } + }, + "required":[ + "value", + "weight" + ], + "additionalProperties":false + }, + "criterion_percentage":{ + "type":"object", + "title":"Percentage criterion", + "description":"Criterion based on percentage of currently gained weights (from max. obtainable) of direct children.", + "properties":{ + "percentage":{ + "type":"integer", + "minimum":0, + "maximum":100 + }, + "weight":{ + "type":"integer", + "minimum":0 + } + }, + "required":[ + "percentage", + "weight" + ], + "additionalProperties":false + }, + "criterion_access":{ + "type":"object", + "title":"Access criterion", + "description":"Criterion based on total number of accesses from direct child resources. (subgroups are ignored)", + "properties":{ + "access":{ + "type":"integer", + "minimum":1, + "maximum":1000 + }, + "weight":{ + "type":"integer", + "minimum":0 + } + }, + "required":[ + "access", + "weight" + ], + "additionalProperties":false + }, + "severity_item":{ + "type":"array", + "title":"Severity item", + "description":"Each severity item consists of weight number, severity string, and corresponding color.", + "items":[ + { + "num_value": "integer" + }, + { + "text_value": "string" + }, + { + "color": "string", + "pattern": "^#(?:[0-9a-fA-F]{3}){1,2}$" + } + ], + "additionalItems": false + } + }, + "type":"object", + "title":"Root group object", + "description":"Object representing root group and its properties.", + "properties":{ + "name":{ + "type":"string" + }, + "description":{ + "type":"string" + }, + "severity":{ + "type":"array", + "title":"Severity array", + "description":"Contains an array of severity items that represent severity thresholds.", + "items":{ + "$ref":"#/definitions/severity_item" + } + }, + "criteria":{ + "$ref":"#/definitions/criteria" + }, + "groups":{ + "title":"Array of subgroups", + "description":"Array of subgroups of root group.", + "type":"array", + "items":{ + "$ref":"#/definitions/group" + } + } + }, + "required":[ + "name" + ], + "additionalProperties":false +}
\ No newline at end of file diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/schema/wrappers-schema.json b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/wrappers-schema.json new file mode 100644 index 0000000..c777a0f --- /dev/null +++ b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/wrappers-schema.json @@ -0,0 +1,165 @@ +{ + "$schema":"http://json-schema.org/draft-07/schema", + "definitions":{ + "group_property":{ + "type":"object", + "title":"Group property object", + "description":"Assigns wrapped property to group.", + "if":{ + "properties":{ + "property":{ + "const":"get" + } + } + }, + "then":{ + "properties":{ + "group":{ + "type":"string" + }, + "property":{ + "const":"get" + }, + "criteria":{ + "$ref":"#/definitions/criteria" + } + }, + "additionalProperties":false + }, + "else":{ + "properties":{ + "group":{ + "type":"string" + }, + "property":{ + "const":"set" + }, + "criteria":{ + "$ref":"#/definitions/criteria" + }, + "arguments":{ + "oneOf":[ + { + "type":"array" + }, + { + "type":"string" + } + ] + } + }, + "additionalProperties":false + }, + "required":[ + "group" + ] + }, + "group_function":{ + "type":"object", + "title":"Group function object", + "description":"Assigns wrapped function to group.", + "properties":{ + "group":{ + "type":"string" + }, + "criteria":{ + "$ref":"#/definitions/criteria" + }, + "arguments":{ + "oneOf":[ + { + "type":"array" + }, + { + "type":"string" + } + ] + } + }, + "required":[ + "group" + ], + "additionalProperties":false + }, + "criteria":{ + "type":"array", + "title":"Criteria array", + "description":"Contains criterion objects to define parent group access/weight.", + "items":{ + "$ref":"#/definitions/criterion_value" + } + }, + "criterion_value":{ + "type":"object", + "title":"Value criterion", + "description":"Criterion defined as number of accesses to resource.", + "properties":{ + "value":{ + "type":"integer", + "minimum":1, + "maximum":1000 + }, + "weight":{ + "type":"integer", + "minimum":0 + } + }, + "required":[ + "value", + "weight" + ], + "additionalProperties":false + } + }, + "type":"array", + "items":{ + "type":"object", + "title":"Wrapper object", + "description":"Represents wrapped resource.", + "if":{ + "properties":{ + "type":{ + "const":"property" + } + } + }, + "then":{ + "properties":{ + "resource":{ + "type":"string" + }, + "type":{ + "const":"property" + }, + "groups":{ + "type":"array", + "items":{ + "$ref":"#/definitions/group_property" + } + } + }, + "additionalProperties":false + }, + "else":{ + "properties":{ + "resource":{ + "type":"string" + }, + "type":{ + "const":"function" + }, + "groups":{ + "type":"array", + "items":{ + "$ref":"#/definitions/group_function" + } + } + }, + "additionalProperties":false + }, + "required":[ + "resource", + "type" + ] + } +}
\ No newline at end of file diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/wrappers-lvl_0_1.json b/data/extensions/jsr@javascriptrestrictor/fp_config/wrappers-lvl_0_1.json new file mode 100644 index 0000000..5fb3f93 --- /dev/null +++ b/data/extensions/jsr@javascriptrestrictor/fp_config/wrappers-lvl_0_1.json @@ -0,0 +1,1892 @@ +[ + { + "resource":"Navigator.prototype.userAgent", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.language", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.languages", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.platform", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.productSub", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.product", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.vendorSub", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.vendor", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.appVersion", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.appCodeName", + "type":"property", + "groups":[ + { + "group":"NavigatorBasic", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.plugins", + "type":"property", + "groups":[ + { + "group":"BrowserProperties", + "property":"get" + } + ] + }, + { + "resource":"NetworkInformation.prototype.downlink", + "type":"property", + "groups":[ + { + "group":"NavigatorNetwork", + "property":"get" + } + ] + }, + { + "resource":"NetworkInformation.prototype.effectiveType", + "type":"property", + "groups":[ + { + "group":"NavigatorNetwork", + "property":"get" + } + ] + }, + { + "resource":"NetworkInformation.prototype.rtt", + "type":"property", + "groups":[ + { + "group":"NavigatorNetwork", + "property":"get" + } + ] + }, + { + "resource":"NetworkInformation.prototype.saveData", + "type":"property", + "groups":[ + { + "group":"NavigatorNetwork", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.hardwareConcurrency", + "type":"property", + "groups":[ + { + "group":"NavigatorHardware", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.deviceMemory", + "type":"property", + "groups":[ + { + "group":"NavigatorHardware", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.maxTouchPoints", + "type":"property", + "groups":[ + { + "group":"NavigatorMobile", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.vibrate", + "type":"function", + "groups":[ + { + "group":"NavigatorMobile" + } + ] + }, + { + "resource":"Navigator.prototype.cookieEnabled", + "type":"property", + "groups":[ + { + "group":"NavigatorFlags", + "property":"get" + } + ] + }, + { + "resource":"Navigator.prototype.doNotTrack", + "type":"property", + "groups":[ + { + "group":"NavigatorFlags", + "property":"get" + } + ] + }, + { + "resource":"MediaDevices.prototype.enumerateDevices", + "type":"function", + "groups":[ + { + "group":"BrowserProperties" + } + ] + }, + { + "resource":"Screen.prototype.height", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.width", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.colorDepth", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.pixelDepth", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.availHeight", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.availWidth", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.availTop", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"Screen.prototype.availLeft", + "type":"property", + "groups":[ + { + "group":"ScreenInfo", + "property":"get" + } + ] + }, + { + "resource":"window.devicePixelRatio", + "type":"property", + "groups":[ + { + "group":"WindowInfo", + "property":"get" + } + ] + }, + { + "resource":"window.innerWidth", + "type":"property", + "groups":[ + { + "group":"WindowInfo", + "property":"get" + } + ] + }, + { + "resource":"window.innerHeight", + "type":"property", + "groups":[ + { + "group":"WindowInfo", + "property":"get" + } + ] + }, + { + "resource":"window.outerWidth", + "type":"property", + "groups":[ + { + "group":"WindowInfo", + "property":"get" + } + ] + }, + { + "resource":"window.outerHeight", + "type":"property", + "groups":[ + { + "group":"WindowInfo", + "property":"get" + } + ] + }, + { + "resource":"Date.prototype.getTimezoneOffset", + "type":"function", + "groups":[ + { + "group":"LocalizationInfo" + } + ] + }, + { + "resource":"Intl.DateTimeFormat.prototype.resolvedOptions", + "type":"function", + "groups":[ + { + "group":"LocalizationInfo" + } + ] + }, + { + "resource":"Permissions.prototype.query", + "type":"function", + "groups":[ + { + "group":"PermissionsInfo", + "arguments":"diff", + "criteria":[ + { + "value":5, + "weight":1 + } + ] + } + ] + }, + { + "resource":"HTMLMediaElement.prototype.canPlayType", + "type":"function", + "groups":[ + { + "group":"BrowserProperties", + "arguments":"diff", + "criteria":[ + { + "value":5, + "weight":1 + } + ] + } + ] + }, + { + "resource":"AudioNode.prototype.channelCount", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AudioNode.prototype.channelCountMode", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AudioNode.prototype.channelInterpretation", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AudioDestinationNode.prototype.maxChannelCount", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AudioNode.prototype.numberOfInputs", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AudioNode.prototype.numberOfOutputs", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AnalyserNode.prototype.fftSize", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AnalyserNode.prototype.frequencyBinCount", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AnalyserNode.prototype.minDecibels", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AnalyserNode.prototype.maxDecibels", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"AnalyserNode.prototype.smoothingTimeConstant", + "type":"property", + "groups":[ + { + "group":"AudioInfo", + "property":"get" + } + ] + }, + { + "resource":"window.localStorage", + "type":"property", + "groups":[ + { + "group":"StorageInfo", + "property":"get" + } + ] + }, + { + "resource":"window.sessionStorage", + "type":"property", + "groups":[ + { + "group":"StorageInfo", + "property":"get" + } + ] + }, + { + "resource":"window.indexedDB", + "type":"property", + "groups":[ + { + "group":"StorageInfo", + "property":"get", + "criteria":[ + { + "value":1, + "weight":2 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getParameter", + "type":"function", + "groups":[ + { + "group":"WebGLInfo", + "arguments":"diff", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.getParameter", + "type":"function", + "groups":[ + { + "group":"WebGLInfo", + "arguments":"diff", + "criteria":[ + { + "value":3, + "weight":1 + } + ] + } + ] + }, + { + "resource":"Performance.prototype.now", + "type":"function", + "groups":[ + { + "group":"TimeInfo" + } + ] + }, + { + "resource":"Date.now", + "type":"function", + "groups":[ + { + "group":"TimeInfo" + } + ] + }, + { + "resource":"CSSStyleDeclaration.prototype.setProperty", + "type":"function", + "groups":[ + { + "group":"JSFontEnumStepOne", + "arguments":[ + "^\\\"font-family\\\"\\\\S*" + ], + "criteria":[ + { + "value":15, + "weight":1 + } + ] + } + ] + }, + { + "resource":"CSSStyleDeclaration.prototype.fontFamily", + "type":"property", + "groups":[ + { + "group":"JSFontEnumStepOne", + "property":"set", + "arguments":"diff", + "criteria":[ + { + "value":15, + "weight":1 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.font", + "type":"property", + "groups":[ + { + "group":"CanvasFontEnumStepOne", + "property":"set", + "arguments":"diff", + "criteria":[ + { + "value":15, + "weight":1 + } + ] + } + ] + }, + { + "resource":"HTMLElement.prototype.offsetWidth", + "type":"property", + "groups":[ + { + "group":"JSFontEnumStepTwo", + "property":"get" + } + ] + }, + { + "resource":"HTMLElement.prototype.offsetHeight", + "type":"property", + "groups":[ + { + "group":"JSFontEnumStepTwo", + "property":"get" + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.measureText", + "type":"function", + "groups":[ + { + "group":"CanvasFontEnumStepTwo", + "criteria":[ + { + "value":15, + "weight":1 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.fillText", + "type":"function", + "groups":[ + { + "group":"CanvasFingerprintStepOne", + "arguments":[ + ".{9,}" + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.strokeText", + "type":"function", + "groups":[ + { + "group":"CanvasFingerprintStepOne", + "arguments":[ + ".{9,}" + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.fillStyle", + "type":"property", + "groups":[ + { + "group":"CanvasFingerprintStepTwo", + "property":"set", + "arguments":"diff" + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.strokeStyle", + "type":"property", + "groups":[ + { + "group":"CanvasFingerprintStepTwo", + "property":"set", + "arguments":"diff" + } + ] + }, + { + "resource":"HTMLCanvasElement.prototype.toDataURL", + "type":"function", + "groups":[ + { + "group":"CanvasFingerprintStepThree" + }, + { + "group":"WebGL1FingerprintStepThree" + }, + { + "group":"WebGL2FingerprintStepThree" + } + ] + }, + { + "resource":"HTMLCanvasElement.prototype.toBlob", + "type":"function", + "groups":[ + { + "group":"CanvasFingerprintStepThree" + }, + { + "group":"WebGL1FingerprintStepThree" + }, + { + "group":"WebGL2FingerprintStepThree" + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.getImageData", + "type":"function", + "groups":[ + { + "group":"CanvasFingerprintStepThree" + }, + { + "group":"WebGL1FingerprintStepThree" + }, + { + "group":"WebGL2FingerprintStepThree" + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.createBuffer", + "type":"function", + "groups":[ + { + "group":"WebGL1FingerprintStepOne" + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.bindBuffer", + "type":"function", + "groups":[ + { + "group":"WebGL1FingerprintStepOne" + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.vertexAttribPointer", + "type":"function", + "groups":[ + { + "group":"WebGL1FingerprintStepTwo" + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.enableVertexAttribArray", + "type":"function", + "groups":[ + { + "group":"WebGL1FingerprintStepTwo" + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.createBuffer", + "type":"function", + "groups":[ + { + "group":"WebGL2FingerprintStepOne" + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.bindBuffer", + "type":"function", + "groups":[ + { + "group":"WebGL2FingerprintStepOne" + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.vertexAttribPointer", + "type":"function", + "groups":[ + { + "group":"WebGL2FingerprintStepTwo" + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.enableVertexAttribArray", + "type":"function", + "groups":[ + { + "group":"WebGL2FingerprintStepTwo" + } + ] + }, + { + "resource":"RTCPeerConnection.prototype.createDataChannel", + "type":"function", + "groups":[ + { + "group":"WebRTCFingerprintStepOne" + } + ] + }, + { + "resource":"RTCPeerConnection.prototype.createOffer", + "type":"function", + "groups":[ + { + "group":"WebRTCFingerprintStepOne" + } + ] + }, + { + "resource":"RTCPeerConnection.prototype.onicecandidate", + "type":"property", + "groups":[ + { + "group":"WebRTCFingerprintStepTwo" + } + ] + }, + { + "resource":"RTCPeerConnection.prototype.localDescription", + "type":"property", + "groups":[ + { + "group":"WebRTCFingerprintStepTwo" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createOscillator", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createDynamicsCompressor", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.destination", + "type":"property", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createAnalyser", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createBuffer", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createScriptProcessor", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"OfflineAudioContext.prototype.startRendering", + "type":"function", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"OfflineAudioContext.prototype.oncomplete", + "type":"property", + "groups":[ + { + "group":"AudioContextFingerprint" + } + ] + }, + { + "resource":"SubtleCrypto.prototype.exportKey", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":16 + } + ] + } + ] + }, + { + "resource":"RTCPeerConnection.prototype.iceGatheringState", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":15 + } + ] + } + ] + }, + { + "resource":"OfflineAudioCompletionEvent.prototype.renderedBuffer", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":14 + } + ] + } + ] + }, + { + "resource":"OfflineAudioContext.prototype.startRendering", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":14 + } + ] + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createOscillator", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":14 + } + ] + } + ] + }, + { + "resource":"DynamicsCompressorNode.prototype.knee", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"set", + "criteria":[ + { + "value":1, + "weight":14 + } + ] + } + ] + }, + { + "resource":"console.timeLog", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":13 + } + ] + } + ] + }, + { + "resource":"MediaDevices.prototype.enumerateDevices", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":12 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.vibrate", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":12 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.vendorSub", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":12 + } + ] + } + ] + }, + { + "resource":"AudioParam.prototype.setValueAtTime", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":12 + } + ] + } + ] + }, + { + "resource":"AudioBuffer.prototype.getChannelData", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":12 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":["\\\"WEBGL_draw_buffers\\\""], + "criteria":[ + { + "value":1, + "weight":11 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":["\\\"EXT_sRGB\\\""], + "criteria":[ + { + "value":1, + "weight":11 + } + ] + } + ] + }, + { + "resource":"HTMLMediaElement.prototype.setSinkId", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":11 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.productSub", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":11 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.hardwareConcurrency", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":11 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.requestMIDIAccess", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"Keyboard.prototype.getLayoutMap", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.buildID", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getSupportedExtensions", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.oscpu", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createDynamicsCompressor", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":["\\\"EXT_texture_filter_anisotropic\\\""], + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.isPointInPath", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getContextAttributes", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.depthFunc", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getShaderPrecisionFormat", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLShaderPrecisionFormat.prototype.rangeMax", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.clearColor", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"FileSystemFileEntry.prototype.createWriter", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getUniformLocation", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getAttribLocation", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.drawArrays", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":10 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.useProgram", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.enableVertexAttribArray", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.createShader", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.bindBuffer", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.appCodeName", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":["\\\"OES_standard_derivatives\\\""], + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.textBaseline", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"set", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.globalCompositeOperation", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"set", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createScriptProcessor", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createBuffer", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"BaseAudioContext.prototype.createAnalyser", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.fillRect", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":["\\\"WEBGL_debug_renderer_info\\\""], + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"HTMLCanvasElement.prototype.toDataURL", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":9 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "arguments":"diff", + "criteria":[ + { + "value":2, + "weight":8 + } + ] + } + ] + }, + { + "resource":"WebGL2RenderingContext.prototype.getExtension", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.fillStyle", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"set", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.maxTouchPoints", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"AnalyserNode.prototype.frequencyBinCount", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"WebGLRenderingContext.prototype.getParameter", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.closePath", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.languages", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.beginPath", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"Navigator.prototype.doNotTrack", + "type":"property", + "groups":[ + { + "group":"CrawlFpInspector", + "property":"get", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + }, + { + "resource":"CanvasRenderingContext2D.prototype.getImageData", + "type":"function", + "groups":[ + { + "group":"CrawlFpInspector", + "criteria":[ + { + "value":1, + "weight":8 + } + ] + } + ] + } +]
\ No newline at end of file |