Firefox and ActiveX

I cannot begin to describe how frustrating it is to have a fully functional device be rendered obsolete. This is due to many factors. The manufacturer choosing a poor technology for its software interface (but otherwise having a wonderful physical implementation of the hardware). Microsoft not providing or continuing a method for maintaining backwards / legacy compatibility, etc. And after writing that sentence, I feel myself softening a bit in terms of thinking of all the Microsoft engineers as idiots for some of the decisions they make. I'm sure if I was in their shoes, I might make the same decision. They have actually done a fantastic job maintaining backwards compatibility for a range of software over the past several decades.

The Objective

Being able to continue using perfectly functional hardware devices in the year 2022 with Windows 11 and it's 'associated baggage' (IE, only the latest and greatest, with limited legacy support)

The Issue(s) (and associated Diatribe)

Here's what's going on in terms of Microsoft. Here it is, July 2022 and Internet Explorer's days are over. Microsoft elected to not include it within Windows 11. But they did include some backwards compatibility by including the Trident Engine (the rendering software for Internet Explorer) with Microsoft Edge. That allows for some backwards compatibility. But what about if a website uses ActiveX technology. Well, your SOL as far as Edge is concerned. And SOL with every other browser out there.

And now lets address why anyone would want to access a website that uses ActiveX technology (OCX, etc.)... Well, how about surveillance cameras, among many other hardware items. Yup, I'm not speaking about publicly available websites. I'm talking only about hardware devices. Private hardware devices, behind firewalls on private sub-nets, and password protected, not available to the public, for personal use only. A very good, legitimate reason to still use a web browser that has ActiveX technology. And I'll follow that sentence with this statement: To all the nay-Sayers, whatever your argument, like "buy a new device", I'll tell you like an old friend would say to me: "Shhhhh...." And because nay-Sayers tend to be obtuse, I'll translate: "Shut up. Your argument is as stupid as you are."

That last statement is a lead in (and due to) the next issue I have, which are all the websites that have just plain wrong, incorrect, and have stupid information on the subject of maintaining accessibility and functionality of older hardware. And in the grand wisdom of Google (or because those same people are talented with SEO), all the crap results that are just plain wrong, pollute the internet.

There are so many people that declare Firefox does not support ActiveX. PERIOD. Well, that's true, but also inaccurate, because it leads one to believe their journey for a solution is over. Firefox, as in just plain Firefox does not support ActiveX. Does that mean it won't run ActiveX controls? Nope, it will, with the help of a Plugin. So Firefox + Plugin = Firefox will support ActiveX controls.

Cool! Good to go! Nope, not so fast. There are a lot of catches (and solutions for all of them)

The Solution

The solution? First, the bad news. Internet Explorer isn't really a choice going into the future.

Firefox + Plugin for ActiveX. Nope, not any modern version of Firefox. Thankfully, Mozilla maintains a library of all their versions of Firefox: https://ftp.mozilla.org/pub/firefox/releases/

OK, that the Firefox part, but what about the Plugin. Sorry, Mozilla no longer maintains or keeps old Plugins around. Probably because they are third party plugins that Mozilla didn't bother to collect. But someone did (Thank you for that by the way): https://github.com/JustOff/ca-archive/

  • Get version 52.9.0esr of Firefox: https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/win32/ Per my research, it seems to be the last version that will support older Plugins (like the necessary ActiveX one)
  • Install the older version of Firefox, BUT!, don't overwrite any current version of Firefox. Use the Custom Install feature to pick a unique directory to install the older version of Firefox (sorry, no step by step hand holding here, because if you need to do this, you don't need a step by step Appled up version of things, just need to know what to do)
  • Get the latest version of this 'archive plugin' (2.0.3 as of July 2022): https://github.com/JustOff/ca-archive/releases The trick here is to download it with a non-Firefox webbrowser (Chrome or Chrome again, errr, Microsoft Edge) and save it as Firefox will just try to unsuccessfully install it.
  • Before installing it (because Firefox won't let you), first change this setting in Firefox's about:config (entered as a URL, not in any menu, look it up if needed): xpinstall.signatures.required --> false, then restart Firefox (from here:https://support.mozilla.org/en-US/kb/add-on-signing-in-firefox?as=u&utm_source=inproduct) And oh, by the way, the extensions.langpacks.signatures.required setting doesn't exist for version 52.9
  • Install: "Hamburger Menu", Addons, Plugins, Gear Menu towards the top middle, Install Addon from File, select the downloaded file, etc. Then restart Firefox.

The Profiles

And don't forget about making it so Firefox uses multiple Profiles. IE, a current version and a "Legacy" version of Firefox shouldn't use the same profle.

Solution, one profile for the current Firefox and a second profile for the "Legacy" Firefox. See the below example for the "Target" command line to start each instance of Firefox

  • Legacy Firefox: "C:\Program Files (x86)\Mozilla Firefox 52.9.0esr 32-bit\firefox.exe" -P "Firefox - 53.9.0esr Legacy" -no-remote
  • Current Firefox: "C:\Program Files\Mozilla Firefox\firefox.exe" -P "Firefox - Current" -no-remote

Note: The profile names (after the -P switch) are arbitrary and can be named / titled anything.

...from: https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles

The Result

You now have the ability to view / access / use any older device (via a web GUI interface) that uses ActiveX technology.

The Evidence

Below is an image from a LaView Surveillance system that uses ActiveX viewer software (no other choice, except their Windows Utility), viewed in Firefox (version 52.9.0b esr 'extended service release') over HTTPS, on a Windows 11 computer that is installed on an SSD with an MBR partition (not GPT) on a laptop computer configured with Legacy Boot enabled (not UEFI) with TPM (Trusted Platform Management) version 1.1 in July 2022 (the Windows comments are just to push the point home that you don't have to listen to what cannot be done). And big middle finger for all the nay-Sayers that declare something like this isn't possible.


The Extra and Requiem

And on a sad note (for some of the effort), found a slightly updated version of the cameras 'web viewer' software that allowed for non ActiveX controls to be used, but still required the older XPCOM and XUL style Addin (IE, the 'pre WebAssembly' version of PlugIns) architecture for Firefox. And from there, the version that one can use (at least for this camera) gets a bit murky. As far as I can tell, the ESR (Extended Service Release) version(s) of Firefox, which are a requirement for any of this stuff to work, goes from 52.9 to 60.something, with 52.9 not having WebAssembly enabled. And for the regular version, the 'XPInstall signed' thing is only available in the ESR version, so even though the older XPCOM and XUL style add-ins seem to be available through version 57 or 59 of 'regular' Firefox, the signing setting isn't available. So in the end, to play it safe, picking 52.9.0esr was a good choice.

As with everything these days, there are choices. Another choice for the above dilemma might be SeaMonkey (tried, but couldn't get it to work)

And of course it should be pointed out, not that any intelligent person wouldn't understand, that Firefox version 52 should not be used for any public website access (and I'm not sure it can even deal with modern TLS certificates). This entire article is about keeping older hardware viable (and cutting down on e-waste among other things). Access to any 'website' with Firefox 52 requires that you be aware of what you're connecting to ahead of time (IE, nothing on the public internet).