As the Hypertext Markup Language / Extensible Markup Language / Cascading Style Sheets (HTML/XML/CSS) parsing and rendering engine for the Firefox, Mozilla, and Netscape browsers, Gecko is one of the most widely deployed cross-platform rendering engines in the world.
As both a Netscape engineer and later as the development manager of the Mozilla Gecko team, I had the privilege to work on the Gecko engine from its inception.
Gecko was born out of the desire to create a cross-platform, smallfootprint, fast, state-of-the-art, embeddable Web browsing engine that would leapfrog our competition in the “browser wars.” It had become painfully apparent that it was too difficult to add full CSS2, CSS3, and XML Web standards support to the lumbering Netscape 4.x engine. The idea was to start from scratch using only a few libraries from the original engine. Early in the Gecko project, there were discussions about using Java rather than C++ to leverage Java’s cross-platform capabilities. It was ultimately decided that C++, along with special development processes, tools, and design techniques, would yield the best solution. Many of those processes, tools, and design techniques are described as best practices throughout this book.