Download all the test presented by clicking on the link below.

Download

Font Smoothing Fingerprint

Description: This function fingerprints the font smoothing setting on a client's device. It attempts to use the straightforward screen.fontSmoothingEnabled setting, if that fails it attempts to use the canvas element.

Issues: If the check of enabledFontSmoothing fails and canvas element is used, some browser will not work with the canvas element. The canvas element will not work with Android Browser 2.x and earlier, Internet Explorer 8.0 and earlier, or Opera Mini 7.0 and earlier. Click here for current compatible list.

Returns: True if enabled, False if disabled but it exists, and Unknown if a determination cannot be made.

Entropy: ~0.4

Output for your computer is:

Download this script

function fingerprint_fontsmoothing() {
    "use strict";
    var strOnError, strFontSmoothing, canvasNode, ctx, i, j, imageData, alpha, strOut;

    strOnError = "Unknown";
    strFontSmoothing = null;
    canvasNode = null;
    ctx = null;
    imageData = null;
    alpha = null;
    strOut = null;

    if (typeof(screen.fontSmoothingEnabled) !== "undefined") {
        strFontSmoothing = screen.fontSmoothingEnabled;
    } else {
        try {
			fontsmoothing = "false";
            canvasNode = document.createElement('canvas');
            canvasNode.width = "35";
            canvasNode.height = "35";
            canvasNode.style.display = 'none';
            document.body.appendChild(canvasNode);
            ctx = canvasNode.getContext('2d');
            ctx.textBaseline = "top";
            ctx.font = "32px Arial";
            ctx.fillStyle = "black";
            ctx.strokeStyle = "black";
            ctx.fillText("O", 0, 0);
            for (j = 8; j <= 32; j = j + 1) {
                for (i = 1; i <= 32; i = i + 1) {
                    imageData = ctx.getImageData(i, j, 1, 1).data;
                    alpha = imageData[3];
                    if (alpha !== 255 && alpha !== 0) {
                        strFontSmoothing = "true"; // font-smoothing must be on.
                    }
                }
            }
            strOut = strFontSmoothing;
        } catch (err) {
            return strOnError;
        }
    }
    strOut = strFontSmoothing;
    return strOut;
}