The Complete Magazine on Open Source

Firefox: Its past, present and … future?

SHARE
/ 10935 0

Main

If Google had sneaked in a crack sabotage team behind enemy lines at Mozilla, the tech giant could not have been more successful! Mozilla is on a self-destructive course — it has fired its CEO, abandoned pet projects, frustrated add-on writers with breaking API changes and annoyed users by disabling important functionality. Worst of all, Mozilla’s obsession with Chrome may see it lose control of Firefox.

At the outset, let’s look at the four primary reasons for Mozilla Firefox losing the browser wars to Google Chrome:

  • For one, the vast majority of people use a browser solely as a means to an end. They use a aparticular software only because somebody told them to. There is not too much of thought that goes into this nor sentiments attached to it. When Microsoft Internet Explorer (IE) was ruling the Web, these people would hit the IE icon and wait patiently as the browser got automatically redirected from Microsoft.com to MSN.com and then to MSN.in. Even after that, the wait would continue because IE would become unresponsive as it loaded big blobs of images, CSS and JavaScript frameworks. Only after at least one or two minutes of this, could people click the address bar and type in some URL! It would never occur to them that they could easily change the home page to about:blank and avoid all that waiting. Most people never change their software settings. They always work with defaults. When Chrome was started, it loaded a blank page almost immediately. “Chrome loads so fast!” people would gush
  • When Chrome was installed, it would be to the user’s ‘Application Data’ directory. This was, until then, a tactic used mostly by malware programs. This enabled Google to bypass user account restrictions on installing new software. Even a ‘Guest’ account user could install Chrome!
  • The third reason is that most people are unquestioning rule-followers and compulsive clickers. If an online ad says, “Here, click to install this toolbar/screensaver,” they obediently click on it. Or, if somebody announces a bereavement on Facebook, they impulsively ‘Like’ it! Most browsers had Google as the default search engine. At the top of every search results page, Google would implore the user to install the Chrome browser. There was no escape. People downloaded it and it took over the machine. There was no going back. Chrome did not load a home page and it had no UI. Where was the need for a UI? Most users did not even know how to change their home page to blank! Google knew this and Chrome was made to take advantage of it.
  • Microsoft’s reaction to Chrome has ranged from generally lethargic to hilariously pathetic. After winning the browser wars against Netscape, it spent some time with its ‘Embrace, extend and extinguish’ strategy. After that, it lost interest and stopped doing any major work on the browser, except for security updates (of which quite a lot were required). Microsoft belatedly tried to get back into the game. If a user tried to change the browser to Chrome, some builds of Windows 10 would throw a pop-up asking the user to ‘Give Microsoft Edge a shot’. On Twitter, I have seen photos of the Bing search engine doing the same when someone tries to search for Chrome. “Learn the facts!” Bing would thunder.
Figure 1

Figure 1: Google page asks the user to download Chrome

The origins of the Web
The National Centre for Supercomputing Applications (NCSA) at the University of Illinois created the Mosaic browser in 1993. Marc Andreessen, who led the development of Mosaic, left NCSA and started work on the free but closed source Netscape browser based on Mosaic (a proprietary browser, but its source code was publicly available for non-commercial use). Netscape was released in 1994 and became the dominant browser by 1995, eclipsing Mosaic. In the same year, Microsoft released Internet Explorer, based on a Mosaic licence.
The Web initially served static Web pages. Later, CGI programs were used to serve dynamically generated Web pages. These CGI programs could not handle a lot of traffic and more sophisticated server-side scripting languages were developed. Similarly, for the browser, JavaScript was used as a client-side scripting language.
JavaScript was developed by Brendan Eich while working at Netscape. He released the first version in a matter of 10 days. At that time, Java had captured the imagination of technologists with its ‘Write Once, Run Anywhere’ promise. Java applets could be downloaded from the Web and run on any computer with a Java runtime. Java applets could also run inside Web browsers. Netscape decided to ride on Java’s phenomenal name-recognition and named its native client-side scripting technology as JavaScript. This creates some confusion even now. Eventually, JavaScript became the native scripting technology for browsers. DHTML (HTML+JavaScript) was touted as ‘HTML with steroids’.
Microsoft copied JavaScript’s API and created JScript for use with IE and other Microsoft products. Thus, IE supported JavaScript/JScript nomenclature in addition to VBScript. In 1996, Microsoft also introduced a proprietary technology called ActiveX in IE 3.0. It enabled Windows-only software components (COM-based DLLs and OCX files) to be used within Web pages. This meant that Web pages that used ActiveX components would not run on non-Windows operating systems. Even on Windows, browsers such as Firefox and Opera failed to display such Web pages. Everyone had to have IE and Windows. However, ActiveX introduced a host of security problems. Malware writers used IE to infect Windows systems.

Figure 2

Figure 2: Microsoft gives a shot at protecting its edge

Firefox: The past
In its heydays, AOL acquired several software products including Netscape, ICQ and Winamp. By 2003, AOL’s fortunes had waned and it created the Mozilla Foundation to ensure that development of Mozilla Firefox would independently continue as an open source browser project. Since then, Mozilla has been on a mission to ‘take back the Web’. Many Netscape/Firefox and open source fans adopted the browser and helped it spread. In 2004, Mozilla agreed to make Google its default search engine and this earned it millions of dollars in revenue. Later, Mozilla diversified this revenue stream by signing up with the Yahoo, Yandex and Baidu search engines. The Netscape Communicator mail client was rebranded as Thunderbird. Its main focus was to become a free alternative to Microsoft Outlook.
Meanwhile, the Konqueror Desktop Environment (KDE) project decided to write its own browser engine. It was called KHTML, and was used by the Konqueror browser and file manager. Apple forked the open source KHTML and created WebKit. From then on, WebKit became a complicated beast with numerous Mac-related dependencies.
When Google decided to create the Chrome browser, it adopted the WebKit rendering engine. For some time, Google worked with Apple and other WebKit developers. In April 2013, Google announced that it was forking WebKit and creating the Blink rendering engine. Opera and other Chrome clones followed suit.
Before becoming a Chrome clone, Opera was a pioneering, if not popular, Web browser. It had an extremely customisable user interface that fans loved. Opera had its own proprietary rendering engine called Presto. It was not just a browser. Opera bundled an e-mail client, chat client, torrent client, download manager and notes manager much before such features showed up in other browsers. It was the first browser with support for multi-tab browsing, mouse gestures, user scripts and stylesheets, popup-blocking, private browsing, speed dialling, and many other features. Despite all that, it could never capture a considerable market share. In February 2013, Opera announced that it would choose WebKit and abandon Presto. Opera fans were disappointed to learn that there was no email client or RSS feed reader and the UI was not at all customisable. Opera did not just change the rendering engine; it had become an empty Chrome shell.
With Opera throwing in the towel, a campaign for the WebKit/Blink-based monoculture was building up. In 2013, Brendan Eich, who created JavaScript, wrote on why Firefox as an independent browser mattered:
“First, there’s not just one WebKit. Web developers dealing with Android 2.3 have learned this the hard way. But let’s generously assume that time (years of it) heals all fragments or allows them to become equivalent.
“WebKit has eight build systems, which cause perverse behaviour. Peel back the covers and you’ll find tension related to past code forks: V8 vs Apple’s JavaScriptCore (Nitro), iOS (in a secret repository at apple.com for years) finally landing, various graphics back-ends, several network stacks, two multi-process models (one being Chrome’s, stealth-developed for two years; and the other, Apple’s WebKit2 framework). Behind the technical clashes lie deep business conflicts.”
At that time, Eich was working as chief technology officer (CTO) at Mozilla Foundation. In April 2014, after he became CEO of Mozilla, a campaign against him by homosexuals brought him down. Eich resigned rather than embroil Mozilla in needless controversy. Mozilla, since then, has been on a downward course.

Figure 3

Figure 3: Firefox hides the RSS icon

Figure 4

Figure 4: Firefox clear history, but does not really

Firefox: The now
While some imitators try to make it look like an art form, Firefox developers seem to imply that they have absolutely no intention of being original.
Firefox copied Chrome’s no-chrome user interface (UI). Chrome has a maze-like vertigo-inducing Settings screen, which makes it difficult to discover and change settings (particularly those relating to privacy). Firefox has gone for the same style for its Preferences screen.
Firefox even chose to copy Chrome’s version number system.
Companies like Google, Apple, Facebook and Twitter have declared an unofficial war on RSS, apparently because it encourages anonymity. Chrome never supported RSS/ATOM feeds. Google had also shut down its Reader and FeedBurner services. And now, Firefox has stopped displaying the orange RSS feed icon in the address bar. It is now obscured in the multi-layered hidden menu system.
Being a Google product, Chrome was never known for privacy protection. In contrast, Firefox was a strongly trusted brand. Now, if you try to clear Firefox history, it will clear history entries only for the last one hour by default. If you try to change the way it remembers history, Firefox will immediately want to restart the browser, instead of waiting until the user does that.
Chrome uses a background service (daemon) to download updates. Firefox also started bundling an update service. If you chose not to install the service, then the browser would get extremely cranky after that. First, it will not display the browser at all. Instead, an update window will start checking your add-ons and update them. Then, it will update the browser. Subsequently, it will check to see if your add-ons are compatible with that new version, disable those that are not compatible and only then display the browser. Because Mozilla has been repeatedly introducing breaking changes with each Firefox release, Firefox add-ons are getting culled out of existence.
In August 2015, Mozilla decided to abandon its XUL-based add-on architecture and instead adopted WebExtensions, a clone of the extensions API used by Chrome. Mozilla reasoned that it would be easy for add-on writers to maintain just one code base. This is particularly galling for Firefox add-on writers, as Firefox has a far richer add-on ecosystem than Chrome. The author of the popular DownThemAll add-on wrote:
“What this also means: Almost all your existing add-ons will be broken, entirely, save for some Add-on SDK add-ons, namely those that don’t do anything fancy. Sure, even today, lots of add-ons break, and some add-ons will not get updated when they do and there are no suitable replacements. However, with this change, almost every add-on will be completely broken and in need of major updating by the extension authors. Good luck with that.
“It is safe to say, that Firefox will not be Firefox any more as far as extensions go, but instead will become yet another Chrome-clone.
“To be clear: I was furious when the extension signing stuff was announced and then actually implemented, which effectively created yet another Walled Garden, but regarding this announcement, I am just sad. Right now, it feels like I just learned my dear old friend Firefox is going to die.”
In April 2016, Mozilla announced that it is exploring the use of the Chrome rendering engine, in place of Mozilla’s own Gecko rendering engine. Writing on the blog of what is called Project Tofino, senior vice president of the Firefox project, Mark Mayo wrote:
“Let’s jump right in and say yes, the rumours are true, we’re working on browser prototypes that look and feel almost nothing like the current Firefox… we’re long overdue for some fresh approaches… the prototype we’re feeling good about right now is built with Electron and React, not Gecko and XUL (our go-to technologies for building browsers)… Not having an awesome Firefox will kill Firefox. End of story.”
Apparently, Mozilla feels a ‘fresh approach’ would have to involve the use of existing creations from Google (Electron/Chromium) and Facebook (React). Electron is a framework for building desktop apps with Chromium, the open source base for the proprietary Google Chrome browser. Mozilla is using React to build Servo, which is expected to one day replace Gecko. Servo supports the Chromium Embedded Framework (CEF) that developers use to add a Chromium-based browser control to desktop applications and games. CEF development is led by Adobe and Valve.
Mozilla is hoping that by providing support for Electron and CEF, developers would be tempted to choose Servo in place of Chromium. In other words, Mozilla will be fighting for minnows. It will also be like closing the barn door after the horses have bolted. Would not Firefox be completely at the mercy of projects beyond Mozilla’s leadership? Breaking changes in Chromium and CEF would affect Firefox. Instead of maintaining the entire code stack as it does now, Mozilla feels comfortable about ceding control of its flagship product to Google and other corporations. If Servo failed, then Chrome would be the winner anyway. By virtue of Google’s distribution, it is Chrome, not Chromium, that dominates desktop browsing. If Servo does become better than Chromium, it will still have a tough time beating Google’s dominance. Firefox beat IE for the first time only recently – that, too, after Microsoft replaced it with the Edge browser.
Earlier, in late 2015, Mozilla announced that it would put less resources on Thunderbird development and the larger open source community would have to take over. Mozilla’s excuse was that people were using webmail and were less reliant on traditional desktop email clients. Around the same time, Mozilla announced that it would abandon the Firefox OS smartphone project.