Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to detect difference between Firefox and Firefox ESR in JavaScript?

Tags:

firefox

I need to detect if firefox is ESR updated or not in javascript.

Below image is of Firefox without ESR:

Firefox without ESR

This image is of Firefox with ESR support Firefox with ESR

There's no clear way to spot out the difference between the two.

like image 993
user2091061 Avatar asked Mar 08 '17 14:03

user2091061


People also ask

How do I know if Firefox has ESR?

You should see the update channel in "Firefox > About" and on the troubleshooting information page (Help > Troubleshooting Information). See: https://support.mozilla.org/kb/Finding+your+Firefox+version.

What is the difference between Firefox and Firefox ESR?

Firefox Extended Support Release (ESR) is an official version of Firefox developed for large organizations like universities and businesses that need to set up and maintain Firefox on a large scale. Firefox ESR does not come with the latest features but it has the latest security and stability fixes.

Is Firefox ESR no longer supported?

Special notes. Firefox 78 ESR is the last version of Firefox that supports Flash. The last version of that ESR will be 78.15, which is scheduled to be released on 2021-10-05.


1 Answers

I don't know if there's a generic way to distinguish between ESR and non-ESR, however, the browser does expose a bit of information that allows making this distinction: the build ID, which is available as window.navigator.buildID.

For instance:

  • Firefox 52.0 (non-ESR) for Windows x64 has the buildID: "20170302120751"
  • Firefox 52.9.0 ESR for Windows x64 has the buildID: "20180621064021"

Using the build ID, we can find out whether the build is ESR or not.

Mozilla provides the data on all builds on a public service called Buildhub, which has a web API. We can query the build IDs for all Firefox ESR releases using the following script:

echo '{
    "aggs": {
        "buildid": {
            "terms": {
                "field": "build.id",
                "size": 1000
            }
        }
    },
    "query": {
        "bool": {
            "filter": [
                {
                    "term": {
                        "source.product": "firefox"
                    }
                }, {
                    "term": {
                        "target.channel": "esr"
                    }
                }
            ]
        }
    },
    "size": 0
}' | \
        curl https://buildhub.prod.mozaws.net/v1/buckets/build-hub/collections/releases/search --data @- | \
        jq -r '.aggregations.buildid.buckets[].key' | \
        sort -u

As of today, this outputs the following build IDs:

20160725105554 20160905130425 20161031153904 20161129180326 20161209150850 20170118123525
20170227085837 20170227131422 20170301181722 20170303022339 20170316213902 20170323110425
20170410145022 20170411115307 20170412142208 20170417065206 20170504112025 20170517122419
20170607123825 20170627155318 20170801170322 20170802111520 20170917103825 20170921064520
20171005074949 20171106172903 20171107091003 20171128121223 20171206101620 20171226003912
20180116134019 20180118122319 20180307131617 20180313134936 20180315163333 20180322140748
20180426000307 20180427183532 20180427222832 20180430140610 20180503092946 20180503164101
20180516032417 20180605153619 20180605174236 20180605201706 20180619102821 20180619173714
20180621064021 20180621121604 20180830204350 20180903060751 20180920175354 20181001135620
20181017185317

Indeed, the ESR build ID from above is in this list, but the non-ESR isn't.

like image 198
Vladimir Panteleev Avatar answered Nov 07 '22 18:11

Vladimir Panteleev