We have to thank KDE for the modern web.

I have always liked History. The story makes it clear the motivation and causes of the events that happened, it rips off the veils, exposing accidental successes and planned failures. Today I will try to trace one branch of the evolution of browser engines and show how great the connection in the world of open technologies is.

NOTE: Links in the text to information about the names and abbreviations used in the article lead mainly to the Russian-language pages of the site Wikipedia, and not the original sites of the projects, so that it would be easier for a Russian-speaking reader to understand the context if the given naming is unfamiliar to him. Below are links to original resources.

From CDE to KDE

Linux appeared in the right place at the right time, while the project participants GNU tried to design an ideal kernel for their operating system, a simple Finnish student did the best he could, and, without expecting it, dragged the blanket over himself.

Then there were XFree86 and twm, and essentially everything. CDE (for commercial Unix) appeared only in 1993. In the free world GNU / Linux window managers ruled the show, and everyone assembled the work environment for themselves piece by piece. The advent of the closed Common Desktop Environment haunted enthusiasts, and in 1996, Matthias Ettrich founds the project KDE… The history and goals of the project itself, as well as its impact on the emergence GNOME – a topic for a separate article. We are also interested in the appearance in KDE in the same 1996 of a combine called Konqueror, which was used not only as a browser on the engine khtmlw, but also as a file manager (those who used KDE before Dolphin remember this pain). Why couldn’t you just take Geckoinstead of reinventing the wheel? The answer is simple – development of Gecko only began in 1997.


Early versions of Konqueror used khtmlw (KDE HTML Widget), by the second half of 1998, due to the switch to Qt2, the engine tried to refresh and refactor, then there was no support yet DOM and JavaScript v KHTML… However, already in March 1999, Lars Knoll announced that he had completed a review of an almost completely rewritten KHTML library that supports the standards w3c… These drastic changes allowed Harry Porten to implement JavaScript support in just a few months (KJS). A year later, in March 2000, thanks to the joint work of Lars, Antti Koivisto and Dirk Müller, HTML support was added. CSSwhich made KHTML a complete web engine along with Gecko and Trident those years. Since KHTML had to perform additional tasks as part of KDE, it acquired the ability to run full-fledged web applications, not just web documents. In this aspect, perhaps, it should be compared with sweet couple Trident and ActiveX

Safari and WebKit

From letters from Don Melton dated January 7, 2003sent to Dirk Müller.


I am the technical manager of Safari, Apple Computer’s new web browser based on KHTML and KJS. I am sending you this email to thank you for creating such a wonderful open source project and to introduce myself and my development team. I also want to explain why and how we used your excellent technology. It is important that you know that we are committed to open source and are making our changes now and in the future, back to you, the original developers. Hopefully this will start a dialogue between us for the benefit of both of our projects.

In the letter, Don talks about what is over Safari people who took part in the creation of the project worked Mozilla and browser Chimera (he is Camino). The choice fell on KHTML and KJS, including due to the fact that in total these two projects, which have a clear architecture, contained less than 140,000 lines of code. Don briefly describes the changes: bug fixes, a number of improvements and optimizations, as well as the creation of a compatibility layer KWQ (read as “quark”) that served to make KHTML work outside of the Qt and KDE libraries.

The final project code was published under a free license, KHTML was renamed to WebCore, and KJS – in JavaScriptCore, the new project was named WebKit

Unfortunately, there was no reverse merge with KHTML / KJS. Such attempts were initially made on both sides, but they failed. Politics is to blame Applethat was not interested in supporting the community. The WebKit code was significantly different from KHTML / KJS, the styles were changed according to the internal requirements for the design of the company code, which eliminated the possibility of automatic merging of changes. Also, Apple’s management pressured Safari developers to prepare new features for the next release, and did not allocate time to work with the KDE team. Nevertheless, some of the changes still ended up in KHTML, and the Safari developers out of duty contributed to the development of the parent project.

WebKit-based browser by Google

Google hired several former Mozilla employees who built the project based on WebKit Chromiumwhich resulted in the first version Chrome… On September 2, 2008, the first public beta was released for Windows… WebCore was working under the hood, but JavaScriptCore was not included in the new browser, its place was taken by a self-developed JavaScript engine V8, which Google has relied on for its performance.


By 2013, according to Google representatives, the number of patches that they had to apply to WebCore to maintain compatibility with the current version of V8 exceeded critical mass, and it was decided to make an official fork, which received the name Blink in honor of the tag blinkto create a shimmery effect on the text. However, there is an alternative opinion on the network, they say, Google wished to break away from the competitor in the person of Apple, depriving them of their new developments. One way or another, the true reasons are likely to forever remain behind the closed doors of the alphabet offices.

Fun fact: tag support blink was abolished by all the browsers that were relevant at that time just in 2013, and Blink itself never supported this tag at all.


As of today, the development of KHTML has stopped, the repository contains only commits that implement support for modern versions of KDE Frameworks. The latest code improvement activity in the KJS repository dates back to June 2020. The current version of Konqueror supports this engine, but uses WebKit by default. Safari maintains its niche on Apple devices. Google Chrome has almost completely taken over the desktop and mobile (Android) browser market and is already starting to take advantage of its monopoly position. Companies such as Microsoft and Opera abandoned the development of their engines in favor of Chromium. Mozilla Firefox lost a significant part of the market and continues to fall. Despite the deplorable state of development of the KDE project’s own browser engine, he was able to prove that a small team of enthusiastic enthusiasts can create a solution that can become the starting point for a global change in a world that today can no longer imagine life without web technologies. Someone might argue that Apple engineers, if KHTML / KJS were not available, could have taken something else or write from scratch, and they will be right, but history does not tolerate the subjunctive mood.

Sources of

Similar Posts

Leave a Reply Cancel reply