Firefox Internal Versioning

Updated with an additional column in the table (Size on disk). See comment after the table.

So we’re running into a problem with our internal deployment of Firefox 2.0.0.3 that our software installer can’t tell which is newer, Firefox 1.5.0.11 or Firefox 2.0.0.3. At the same time, I was asked by someone to create a list of files that could be used as “signature files” for Firefox. (For this purpose, a signature file is a file in a distribution with a unique file size that can be used to identify a particular version of the distribution.)

As a result of this effort, I came up with this lovely table.

  FIREFOX.EXE Values are taken from the
Version page of firefox.exe properties
Firefox Version Size Size on disk File version File Version Product Version
1.0 6621794 6623232 1.0.0.0 1 1.7.5: 2004110711
1.0.1 6626916 6627328 1.0.1.0 1.0.1 1.7.6: 2005022518
1.0.2 6627428 6631424 1.0.2.0 1.0.2 1.7.6: 2005031717
1.0.3 6631012 6631424 1.0.3.0 1.0.3 1.7.7: 2005041417
1.0.4 6631012 6631424 1.0.4.0 1.0.4 1.7.8: 2005051112
1.0.5 6636644 6639616 1.0.5.0 1.0.5 1.7.9: 2005071118
1.0.6 6636644 6639616 1.0.6.0 1.0.6 1.7.10: 2005071605
1.0.7 6637156 6639616 1.0.7.0 1.0.7 1.7.12: 2005091517
1.0.8 6639716 6643712 1.0.8.0 1.0.8 1.7.13: 2006041017
           
1.5 7162979 7163904 1.8.20051.11116 1.8: 2005111116 1.5
1.5.0.1 7166053 7168000 1.8.20060.11112 1.8.0.1: 2006011112 1.5.0.1
1.5.0.2 7171685 7172096 1.8.20060.30804 1.8.0.2: 2006030804 1.5.0.2
1.5.0.3 7172197 7176192 1.8.20060.42618 1.8.0.3: 2006042618 1.5.0.3
1.5.0.4 7177325 7180288 1.8.20060.50817 1.8.0.4: 2006050817 1.5.0.4
1.5.0.5 7183469 7184384 1.8.20060.6376 1.8.0.5: 2006071912 1.5.0.5
1.5.0.6 7183469 7184384 1.8.20060.7278 1.8.0.6: 2006072814 1.5.0.6
1.5.0.7 7190637 7192576 1.8.20060.25382 1.8.0.7: 2006090918 1.5.0.7
1.5.0.8 7191149 7192576 1.8.20061.2516 1.8.0.8: 2006102516 1.5.0.8
1.5.0.9 7200365 7200768 1.8.20061.20612 1.8.0.9: 2006120612 1.5.0.9
1.5.0.10 7206509 7208960 1.8.20070.21601 1.8.0.10: 2007021601 1.5.0.10
1.5.0.11 7206509 7208960 1.8.20070.31202 1.8.0.11: 2007031202 1.5.0.11
1.5.0.12 7209069 7213056 1.8.20070.50813 1.8.0.11: 2007050813 1.5.0.12
           
2.0 7604331 7606272 1.8.20061.1023 1.8.1: 2006101023 2.0
2.0.0.1 7620696 7622656 1.8.20061.20418 1.8.1.1: 2006120418 2.0.0.1
2.0.0.2 7633008 7634944 1.8.20070.21917 1.8.1.2: 2007021917 2.0.0.2
2.0.0.3 7633008 7634944 1.8.20070.30919 1.8.1.3: 2007030919 2.0.0.3
2.0.0.4 7637104 7639040 1.8.20070.51502 1.8.1.4: 2007051502 2.0.0.4
2.0.0.5 7644008 7647232 1.8.20070.5781 1.8.1.5: 2007071317 2.0.0.5
2.0.0.6 7644520 7647232 1.8.20070.6982 1.8.1.6: 2007072518 2.0.0.6

NOTE: I’ve updated this table to include a new field, Size on disk. This field is obtained from the General Properties page for FIREFOX.EXE. I got my original file sizes by looking at the file system from a command line and they correspond to Size, NOT Size on disk. I have no idea why, but I wanted to post both values here for posterity.

So first lets talk about the “signature file” problem. Unfortunately I quickly discovered that there are a few versions between which the file sizes for firefox.exe are EXACTLY the same. In particular:

  • 1.0.3 and 1.0.4
  • 1.0.5 and 1.0.6
  • 1.5.0.5 and 1.5.0.6
  • 1.5.0.10 and 1.5.0.11
  • 2.0.0.2 and 2.0.0.3

I investigated further and found that just looking at disk footprint, there is no way to tell those versions apart. I’m curious to know if other products besides our Tivoli products use file size to determine signature. If this is the case, it might be worth while to have a small signature file in Firefox that simply grows by a byte with each release. This would give us a file for which we could track versioning using file size.

The second problem is much more serious for us and revealed that despite the fixing of bug 286825, there is still a major problem with Firefox file versioning. In particular, take a look at the File version (not Version) of Firefox 1.5.0.11 and Firefox 2.0.0.3. You’ll see that Firefox 1.5.0.11 is 1.8.20070.31202 and Firefox 2.0.0.3 is 1.8.20070.30919. So if an application uses File version to determine which is the latest version, it will claim that Firefox 1.5.0.11 is newer than Firefox 2.0.0.3. This is what is causing our software install problem.

Hopefully we can workaround the problem on our end, but at the same time, we need to get the file versioning in Firefox done properly. Otherwise, this is just yet another hurdle for the enterprise deployment of Firefox.

Please note: I reserve the right to delete comments that are offensive or off-topic.

Leave a Reply

Your email address will not be published. Required fields are marked *

10 thoughts on “Firefox Internal Versioning

  1. Size on disk just includes the overhead from the file system to produce full sectors – consequently it depends on the size of your sectors.

  2. How about doing md5sums of the firefox.exe? I’m thinking that would be a pretty accurate way to create a table…and highly unlikely to see duplicate signatures.

  3. Dear collagues,
    the firefox version mapping table at this site is very useful.
    I have recently noticed Firefox file versions beginning with 1.9.20070.xxx .
    Are these versions mapped to Firefox version 2.0 beta ?

    With kind regards.
    Reinhard Fuhrberg

  4. Actually, those are the beta of Firefox 3. Here is the information for Gran Paradiso alpha 4.

    Size: 7,584,768
    Size on disk: 7,585,792 bytes
    File version: 1.9.20070.42705
    File Version: 1.9a4: 2007042705
    Product Version: 3.0a4

  5. Anytime you see a version that is not on my list, it is a nightly build. When an official Firefox 2.0.0.4 is posted, I’ll put those numbers up.

  6. Dear all,

    this list is very helpful for me. But unfortunately it stops after version 2.0.0.6. Where are all the versions after 2.0.0.6? Is this site no longer updated? If yes, could someone perhaps tell me where I can found the references of the rest of the versions? Thank you so much in advance.