function getConnectionSpeed()

in src/js/detect.js [128:161]


function getConnectionSpeed(performance, connection, reportUnknown) {

    connection = connection || navigator.connection || navigator.mozConnection || navigator.webkitConnection || {type: 'unknown'};

    var isMobileNetwork = connection.type === 3 // connection.CELL_2G
            || connection.type === 4 // connection.CELL_3G
            || /^[23]g$/.test(connection.type), // string value in new spec
        loadTime,
        speed;

    if (isMobileNetwork) {
        return 'low';
    }

    loadTime = getPageSpeed(performance);

    // Assume high speed for non supporting browsers
    speed = 'high';
    if (reportUnknown) {
        speed = 'unknown';
    }

    if (loadTime) {
        if (loadTime > 1000) { // One second
            speed = 'medium';
            if (loadTime > 3000) { // Three seconds
                speed = 'low';
            }
        }
    }

    return speed;

}