Name:
MathML
Original feature purpose:
Mathematical Markup Language (MathML) is a dialect of XML for describing mathematical notation and capturing both its structure
and content. For more details see, e.g., MDN web docs
The method getClientRects of a DOM element
returns DOMRect objects which reveal bounding rectangles of CSS border boxes. A DOMRect object comprises the height, width, left, right, top, bottom and, depending on the browser,
the x and y values of the element.
For more details see, e.g., MDN web docs
FPExplanation:
MathML 1.0, MathML 2.0 and MathML 3.0
allow to describe complex mathematical notations.
The builtin rendering behavior of the browsers result in different rendering outputs of the same MathML code.
The dimensions (width, height, ...) of a rendered MathML notation is used for fingerprinting.
The DOMRect information of a specific DOM element is available by default and can be read out without any
privileges.
The values are provided with an accuracy of up to 16 decimal places.
The MathML fingerprint is hashed information from multiple DOMRect objects,
where each object represents a different MathML formulation, such as Axiom of power set,
De Morgan's law or Quadratic Formula.
Due to its large scope of functionality, there are many more possiblities to fingerprint browsers with MathML including Font Detection
for MathML engines.
Demo:
>> Jump to MathML Fingerprinting Demo <<
FPType:
active
FPCategories:
js, jsattrib, softwaredependent, consistent
Countermeasures:

Disable MathML
Description: Disable MathML in the browser settings
Publications/References: