TEST 1

HTMLAnchorElement.prototype.hrefTranslate (should be "Illegal invocation") - ...
        
    try {
        HTMLAnchorElement.prototype.hrefTranslate
        document.getElementById('hrefTranslate').innerText = ' undefined';
    } catch (e) {
        document.getElementById('hrefTranslate').innerText = e.message;
    }
        
    

TEST 2

osmismatch - ...
        
    const platformClientHints = {
    "macOS": 0,
    "Windows": 1,
    }

    const input = document.createElement("input");
    const start = performance.now();

    input.type = "text";
    input.id = "sd1";
    input.value = "bla";
    input.style.visibility = "hidden";

    document.body.appendChild(input);

    const textSelectionDirection = document.querySelector("#sd1");
    const sd = textSelectionDirection.selectionDirection;
    const platform = sd === 'none' ? 0 : 1;
    let clientHints;
    if (!navigator.userAgentData ||
        !navigator.userAgentData.getHighEntropyValues) {
        clientHints = {};
    } else {
        const data = await navigator.userAgentData.getHighEntropyValues(
            ['platform', 'platformVersion', 'architecture', 'bitness', 'model', 'uaFullVersion', 'fullVersionList', 'formFactor', 'wow64'],
        );
        const { mobile } = navigator.userAgentData || {};

        if (!data.mobile) {
            data.mobile = mobile;
        }
        clientHints = Object.keys(data).sort().reduce((acc, key) => {
            acc[key] = data[key];
            return acc;
        }, {});
    }
    const osOsMismatch = platformClientHints[clientHints.platform] !== platform;

    document.getElementById('osmismatch').innerText = osOsMismatch;
        
    

TEST 3

widevine - ...
        
    const video = document.createElement('video');
    video.id = 'videoElement';

    const config = [{
        initDataTypes: ['cenc'],
        videoCapabilities: [{
            contentType: 'video/mp4; codecs="avc1.42E01E"',
            robustness: 'SW_SECURE_CRYPTO',
        }]
    }];

    function checkWidevineKeys() {
        if (!navigator.requestMediaKeySystemAccess) {
            document.getElementById('widevine').innerText = false;
            return;
        }

        navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
            .then(keySystemAccess => {
                return keySystemAccess.createMediaKeys();
            })
            .then(mediaKeys => {
                return video.setMediaKeys(mediaKeys);
            })
            .then(() => {
                document.getElementById('widevine').innerText = true;
            })
            .catch(() => {
                document.getElementById('widevine').innerText = false;
            });
    }

    checkWidevineKeys();
        
    

TEST 4

gpu (should be 17) - ...
        
    const getWebGpu = async () => {
        if (!('gpu' in navigator)) {
            return { error: 'Unsupported', finished: true };
        }

        return navigator.gpu.requestAdapter().then(async (adapter) => {
            if (!adapter) {
                return { error: 'Unsupported', finished: true };
            }
            const device = await adapter.requestDevice();
            const deviceLimits = device.limits;
            const { limits = {} } = adapter || {};
            const adapterLimits = ((limits) => {
                const data = {};
                for (const prop in limits) {
                    data[prop] = limits[prop];
                }
                return data;
            })(limits);
            let diffs = 0;
            for (let i in deviceLimits) {
                if (deviceLimits[i] !== adapterLimits[i]) {
                    diffs++
                }
            }
            return diffs;
        });
    };

    getWebGpu().then(data => {
        document.getElementById('gpu').style.background = data === 17 ? 'green' : 'red';
        document.getElementById('gpu').innerText = data;
    });
        
    

TEST 5

extension - ...
        
    const ext = {
        ghbmnnjooekpmoecnnnilnnbdlolhkhi: {
            name: 'Google Docs Offline',
            file: 'page_embed_script.js',
        },
    }

    const getInstalledExtensions = async function () {
        const keys = Object.keys(ext)
            , installedExtensions = []
            , promises = Array.from({
            length: 1,
        }, () => async function () {
            for (; 0 < keys.length;) {
                const extension = keys.shift();
                try {
                    await fetch(`chrome-extension://${extension}/` + ext[extension].file),
                        installedExtensions.push(extension);
                } catch (e) {
                }
            }
        }());
        await Promise.all(promises);
        document.getElementById('extension').innerText = !!installedExtensions.length;
        document.getElementById('extension').style.background = !!installedExtensions.length ? 'green' : 'red';
    };

    getInstalledExtensions();
        
    

TEST 6

webgl-load test - ...
        
    import testMaxUniformBlockAndBindings from './maxBindings.js';
    import testMaxFragmentUniformBlocks from './maxFragmentUniformBlocks.js';
    import testMaxVaryingComponents from './maxVaryingComponents.js';
    import testMaxVaryingVectors from './maxVaryingVectors.js';
    import testMaxVertexUniformBlocks from './maxVertexUniformBlocks.js';

    const runLoadTests = async () => {
        return new Promise(resolve => {
            const w_2 = testMaxUniformBlockAndBindings();
            const w_3 = testMaxFragmentUniformBlocks();
            const w_4 = testMaxVaryingComponents();
            const w_5 = testMaxVaryingVectors();
            const w_7 = testMaxVertexUniformBlocks();
            const result = [w_2, w_3, w_4, w_5, w_7];
            console.log('result load: ', result);
            const fake = result.some(i => i.error);
            resolve(fake);
        })
    }

    runLoadTests();