Web browser engine
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
The first web browsers were monolithic programs, but browser developers soon adopted a modular approach, splitting browsers into several large components:
- The host application embeds the other browser components and serves as the interface between them, the user, and the host operating system. The host application includes the GUI surrounding the web page content, such as the tab bar, the address bar, and bookmark manager.
- The layout engine does much of the work of rendering a web page. When the user visits a page, the host application provides the layout engine with a URL and content window rectangle coordinates. The layout engine then retrieves the HTML document and associated resources, like style sheets and images, and paints a graphical representation of the page in the given rectangle. The engine also handles links, forms, and related details.
Some layout engines may begin rendering before all of a page's resources are received. This can result in visual changes as more data is received, such as images being gradually filled in or a flash of unstyled content if rendering begins before formatting information is received.
KDE created the KHTML engine for use in its Konqueror browser. Apple forked KHTML make the WebKit engine for its Safari browser. Google originally used WebKit for its Chrome browser but now uses its own fork called Blink. The Opera browser also uses Blink; previously, it used its own Presto engine.