请输入您要查询的百科知识:

 

词条 Browser engine
释义

  1. Name and scope

  2. Layout and rendering

  3. Notable engines

     Timeline 

  4. References

A browser engine is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interactive visual representation on a user's device.

Name and scope

A browser engine is not a stand-alone computer program but a critical piece of a larger program, such as a web browser, from which the term is derived. (The word "engine" is an analogy to the engine of a car.)

Besides "browser engine", two other terms are in common use regarding related concepts: "layout engine" and "rendering engine".[1][1][2][3] In theory, layout and rendering (or "painting") could be handled by separate engines. In practice, however, they are tightly coupled and rarely considered separately.

In addition to layout and rendering, a browser engine enforces the security policy between documents and implements the Document Object Model (DOM) data structure exposed to page scripts. It also handles hyperlinks and web forms.

Executing JavaScript (JS) code is a separate matter, however, as every major web browser uses a dedicated engine for this. The JS language was originally created for use in browsers, but it is now used elsewhere too, so the implementation of JS engines is decoupled from browser engines. In a web browser, the two engines work in concert via the shared DOM data structure.

Browser engines may be used in other types of programs besides web browsers (just as different types of cars can be manufactured with the same engine). For example, an email client may need one to display HTML email. The Electron framework, which is powered by the two engines of the Google Chrome browser, has been used to create many applications.

Layout and rendering

The layout of a web page is typically specified by Cascading Style Sheets (CSS). Each style sheet is a series of rules which the browser engine interprets. For example, some rules specify typography details, such as font, color, and text size. The engine combines all relevant CSS rules to calculate precise graphical coordinates for the visual representation it will paint on the screen.[1] To complete the process, the engine makes the necessary system calls.[4]

Some engines may begin rendering before all of a page's resources are downloaded. This can result in visual changes as more data is received, such as images being gradually filled in or a flash of unstyled content.

Notable engines

{{bar box
|float=right
|title=Browser usage on Wikipedia during February 2014
|titlebar=#DDD
|width=300px
|barwidth=250px
|bars={{bar percent|Google Chrome, Opera and other variants (Blink)|#37C837|86.00|43.00%}}{{bar gap|height=2}}{{bar percent|Internet Explorer (Trident)|cyan|51.60|25.80%}} {{bar gap|height=2}}{{bar percent|Firefox and other variants (Gecko)|red|36.44|18.22%}} {{bar gap|height=2}}{{bar percent|Safari and other variants (WebKit)|#FF1493|11.8|5.90%}}{{bar gap|height=2}}{{bar percent|Opera (Presto)|blue|4.62|2.31%}} {{bar gap|height=2}}{{bar percent|Others|yellow|9.54|4.77%}} {{bar gap|height=2}}
|caption=Non-mobile web browser usage for Wikimedia visitors during February 2014.[5]
}}

Because the Web platform is a set of open standards, there are multiple browser engine implementations.

Gecko is Mozilla's browser engine, used in its Firefox web browser, the Thunderbird email client, and the SeaMonkey internet suite.[2] Goanna is a fork of Gecko used in the Pale Moon browser.[3]Apple created the WebKit engine for its Safari browser by forking the KHTML engine of the KDE project.[6]

Google originally used WebKit for its Chrome browser but eventually forked it to create the Blink engine.[7] All Chromium-based browsers use Blink, as do applications built with CEF, Electron, or any other framework that embeds Chromium.

Although Apple permits third-party browsers as alternatives to Safari on iOS devices, all browsers distributed through its App Store must use WebKit as their engine. For example, Opera Mini for iOS uses WebKit, whereas all other Opera variants use Blink. (Opera formerly used its own proprietary Presto engine.)

Microsoft formerly developed its own proprietary browser engines, Trident and EdgeHTML, but now uses Blink for its Edge browser.[8][9]

Timeline

  1. header

ImageSize = width:700 height:200

PlotArea = left:50 right:5 bottom:20 top:5

AlignBars = justify

DateFormat = dd/mm/yyyy

Period = from:01/01/1997 till:01/03/2019

TimeAxis = orientation:horizontal format:yyyy

Colors =

  id:microsoft     value:rgb(0.3, 0.5, 1)  id:gecko       value:rgb(1, 0, 0)  id:goanna      value:rgb(1, 0.2, 0.2)  id:khtml       value:rgb(0.3,0.3,0.3)  id:webkit      value:rgb(0.3, 0.4, 0.4)  id:blink       value:rgb(0.3, 0.5, 0.5)  id:presto      value:rgb(0.6, 0.2, 0.0)  id:mgray       value:rgb(0.5, 0.5, 0.5)  id:lgray       value:rgb(0.75, 0.75, 0.75)

ScaleMajor = gridcolor:mgray unit:year increment:1 start:01/01/1997

ScaleMinor = unit:month increment:3 start:01/01/1997

BackgroundColors = bars:lgray

BarData =

  bar:Trident         text:Trident  bar:EdgeHTML        text:Edge  bar:Gecko           text:Gecko  bar:Goanna          text:Goanna  bar:KHTML           text:KHTML  bar:WebKit          text:WebKit  bar:Blink           text:Blink  bar:Presto          text:Presto

PlotData=

  bar:Trident  from: 01/10/1997  till: 15/07/2015    color:microsoft mark:(line,white)
  bar:EdgeHTML  from: 12/11/2014  till: 06/12/2018    color:microsoft mark:(line,white)
  bar:Gecko  from: 01/05/1997  till: 01/03/2019    color:gecko mark:(line,white)
  bar:Goanna  from: 26/01/2016 till: 01/03/2019    color:goanna mark:(line,white) 
  bar:KHTML  from: 04/11/1998  till: 06/06/2014    color:khtml mark:(line,white)
  bar:WebKit  from: 25/06/2001  till: 01/03/2019    color:webkit mark:(line,white)
  bar:Blink  from: 03/04/2013  till: 01/03/2019    color:blink mark:(line,white) 
  bar:Presto  from: 28/01/2003  till: 16/03/2015    color:presto mark:(line,white)

References

1. ^{{cite web|url=http://taligarsiel.com/Projects/howbrowserswork1.htm|title=Behind the scenes of modern web browsers|publisher=Tali Garsiel|accessdate=2018-04-21}}
2. ^{{cite web|url=https://developer.mozilla.org/docs/Mozilla/Gecko|title=Gecko|publisher=Mozilla|accessdate=2018-04-21}}
3. ^{{cite web |url = https://forum.palemoon.org/viewtopic.php?f=1&t=8607|title=Introducing Goanna|publisher=M.C. Straver|date=2015-06-22|accessdate=2018-04-21}}
4. ^{{cite web|url=https://www.pcmag.com/encyclopedia/term/61819/browser-rendering-engine|publisher=PC Mag|title=Definition of: browser rendering engine}}
5. ^{{Citation | url = http://stats.wikimedia.org/archive/squid_reports/2014-02/SquidReportClients.htm | title = Wikimedia Traffic Analysis Report - Browsers e.a.: Monthly requests or daily averages, for period: 1 Feb 2014 - 28 Feb 2014 | publisher = Wikimedia}}
6. ^{{cite web|url=http://news.cnet.com/2100-1023-980492.html |archiveurl=https://www.webcitation.org/5jaojY2P3?url=http://news.cnet.com/2100-1023-980492.html |title=Apple snub stings Mozilla |author=Paul Festa |publisher=CNET Networks |date=2003-01-14 |archivedate=2009-09-06 |accessdate=2017-02-16 |authorlink=Paul Festa |deadurl=yes |df= }}
7. ^{{cite web |first=Peter |last=Bright |title=Google going its own way, forking WebKit rendering engine |url=https://arstechnica.com/information-technology/2013/04/google-going-its-own-way-forking-webkit-rendering-engine/ |website=Ars Technica |publisher=Conde Nast |date=April 3, 2013 |accessdate=March 9, 2017}}
8. ^{{citation |url=https://blogs.windows.com/windowsexperience/2018/12/06/microsoft-edge-making-the-web-better-through-more-open-source-collaboration |title=Microsoft Edge: Making the web better through more open source collaboration |publisher=Microsoft |first=Joe |last=Belfiore |date=2018-12-06}}
9. ^{{cite web |url=https://github.com/MicrosoftEdge/MSEdge/blob/7d69268e85e198cee1c2b452d888ac5b9e5995ca/README.md |title=Microsoft Edge and Chromium Open Source: Our Intent |date=6 December 2018 |publisher=Microsoft Edge Team |accessdate=8 December 2018}}
{{Browser engines}}

2 : Layout engines|Web browsers

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/13 19:19:44