Browser engine: Difference between revisions
→Examples: wikilinks |
|||
Line 30: | Line 30: | ||
==See also== |
==See also== |
||
* [[Comparison of web browser engines]] |
* [[Comparison of web browser engines]] |
||
* [[List of |
* [[List of web browser engines]] |
||
* [[Game engine]] |
|||
* [[Rendering (computer graphics)]] |
* [[Rendering (computer graphics)]] |
||
* [[Rasterisation]] |
* [[Rasterisation]] |
Revision as of 00:07, 4 June 2010
HTML |
---|
Comparisons |
A web browser engine (sometimes called layout engine or rendering engine), is a software component that takes marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.) and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer. A web browser engine is typically embedded in web browsers, e-mail clients, on-line help systems or other applications that require the displaying (and editing) of web content.
History
The first web browsers where monolithic. Later they adopted a more modular approach and were split into a user interface and an engine.
The engine does most of the work. It essentially takes a URL and a screen rectangle as arguments. It then retrieves the document corresponding to the URL and paints a graphical representation of it on the given rectangle. It handles links, cookies, scripting, plug-ins loading and other matters.
The user interface provides the menu bar, address bar, status bar, bookmark manager, history and preferences window among other things. It embeds the engine and serves as an interface between the user and the engine. Since it provides the graphical elements surrounding the area in which the engine paints documents, the term chrome is sometimes used to refer to it.
The advantage of this modular approach is that it then becomes easy to embed web browser engines in a variety of applications. For example, the same engine used by a web browser can be used by an email client to display HTML mail. On-line help systems integrated in applications have largely moved from using custom formats to using standard HTML displayed with a web browser engine.
Examples
Gecko, the Mozilla project's open-source web browser engine, is used by a variety of products derived from the Mozilla code base, including the Firefox web browser, the Thunderbird e-mail client, and SeaMonkey internet suite.
Trident, the web browser engine from Internet Explorer, is used by many applications on the Microsoft Windows platform, such as Outlook Express, some versions of Microsoft Outlook, and the mini-browsers in Winamp and RealPlayer.
Opera Software's proprietary Presto engine is licensed to a number of other software vendors, and is used in Opera's own web browser.
KDE's open-source KHTML engine is used in KDE's Konqueror web browser and was the basis for WebKit, the rendering engine in Apple's Safari and Google's Chrome web browsers.
A note on terminology
The names layout engines and rendering engines are in popular use to refer to web browser engines. However their traditional meaning is different. This usage came from the fact that web browser engines themselves include a layout module and a rendering module. But they do a lot more.
A layout engine (or module) is a software component that computes the position of objects in space subject to various constraints. Web browser engines include a page layout module to determine the position of the textual and graphical elements of a page.
A rendering engine (or module) is a software component that transform graphical objects into a raster. Web browser engines include a rendering module to transform the bitmap graphics, vector graphics and text that make up a web document into a raster that can be displayed on screen.