Client._isFirefoxUpToDate = function()

in media/js/base/mozilla-client.js [179:228]


    Client._isFirefoxUpToDate = function (strict, isESR, userVer) {
        strict = strict === undefined ? true : strict;
        isESR = isESR === undefined ? false : isESR;
        userVer = userVer === undefined ? Client._getFirefoxVersion() : userVer;

        var html = document.documentElement;

        if (
            !html.getAttribute('data-esr-versions') ||
            !html.getAttribute('data-latest-firefox')
        ) {
            return false;
        }

        var versions = isESR
            ? html.getAttribute('data-esr-versions').split(' ')
            : [html.getAttribute('data-latest-firefox')];
        var userVerArr = userVer.match(/^(\d+(?:\.\d+){1,2})/);

        if (userVerArr && userVerArr.length > 0) {
            userVerArr = userVerArr[1].split('.');
        } else {
            // if there's no version in the UA string, assume out of date (issue 10582)
            return false;
        }

        var isUpToDate = false;

        // Sort product details version so we compare the newer version first
        versions.sort(function (a, b) {
            return parseFloat(a) < parseFloat(b);
        });

        // Compare each latest version in product details to the user version.
        for (var i = 0; i < versions.length; i++) {
            var latestVerArr = versions[i].split('.');

            isUpToDate = Client._compareVersion(
                strict,
                userVerArr,
                latestVerArr
            );

            if (isUpToDate) {
                break;
            }
        }

        return isUpToDate;
    };