Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Gecko (software)

From Wikipedia, the free encyclopedia
Open-source HTML layout engine
Gecko
Original authorNetscape
DevelopersMozilla Foundation,Mozilla Corporation,Adobe Systems, and other contributors
Initial release1998 asNGLayout
Stable release
125 / 4 November 2022; 3 years ago (4 November 2022)
Written inC++,JavaScript,Rust
TypeBrowser engine
LicenseMPL 2.0[1][2]
Websitedeveloper.mozilla.org/en-US/docs/Glossary/Gecko
Repository
Firefox
Related articles
Origins and lineage
Category

Gecko is abrowser engine developed byMozilla. It is used in theFirefox browser, theThunderbirdemail client, and in a discontinued state on AOL'sNetscape 6,Netscape 7,Netscape Browser andNetscape Navigator 9; this is alongside many other projects.

Gecko is designed to supportopenInternet standards, and is used by different applications to displayweb pages and, in some cases, an application'suser interface itself (by renderingXUL). Gecko offers a rich programmingAPI that makes it suitable for a wide variety of roles in Internet-enabled applications, such asweb browsers, content presentation, andclient/server.[3]

Gecko is written inC++ andJavaScript,[4][5] and, since 2016, additionally inRust.[6][7] It isfree and open-source software subject to the terms of theMozilla Public License version 2.[8] Mozilla officially supports its use onAndroid,[4]Linux,macOS, andWindows.[9]

History

[edit]

Development of the layout engine now known as Gecko began atNetscape in 1997, following the company's purchase ofDigitalStyle. The existing Netscape rendering engine, originally written forNetscape Navigator 1.0 and upgraded through the years, was slow, did not comply well with W3C standards, had limited support fordynamic HTML and lacked features such as incremental reflow (when the layout engine rearranges elements on the screen as new data is downloaded and added to the page). The new layout engine was developed in parallel with the old, with the intention being to integrate it into Netscape Communicator when it was mature and stable. At least one more major revision of Netscape was expected to be released with the old layout engine before the switch.

After the launch of the Mozilla project in early 1998, the new layout engine code was released under an open-source license. Originally unveiled asRaptor, the name had to be changed toNGLayout (next generation layout) due totrademark problems. Netscape later rebranded NGLayout asGecko. WhileMozilla Organization (the forerunner of theMozilla Foundation) initially continued to use the NGLayout name (Gecko was a Netscape trademark),[10] eventually the Gecko branding won out.[citation needed]

In October 1998, Netscape announced that its next browser would use Gecko (which was still called NGLayout at the time) rather than the old layout engine, requiring large parts of the application to be rewritten. While this decision was popular with web standards advocates, it was largely unpopular with Netscape developers, who were unhappy with the six months given for the rewrite.[11] It also meant that most of the work done forNetscape Communicator 5.0 (including development on theMariner improvements to the old layout engine) had to be abandoned. Netscape 6, the first Netscape release to incorporate Gecko, was released in November 2000 (the name Netscape 5 was never used).[citation needed]

As Gecko development continued, other applications and embedders began to make use of it.America Online, by this time Netscape's parent company, eventually adopted it for use inCompuServe 7.0 and AOL for Mac OS X (these products had previously embedded Internet Explorer). However, with the exception of a fewbetas, Gecko was never used in the mainMicrosoft Windows AOL client.[citation needed]

On July 15, 2003, AOL laid off the remaining Gecko developers and the Mozilla Foundation (formed on the same day) became the main steward of Gecko development. Today, Gecko is developed by employees of theMozilla Corporation, employees of companies that contribute to the Mozilla project, and volunteers.[12]

In the Netscape era, a combination of poor technical and management decisions resulted in Geckosoftware bloat.[11][13][14] Thus in 2001Apple chose to forkKHTML, not Gecko, to create theWebKitengine for itsSafari browser.[13][14] However, by 2008 Mozilla had addressed some of the bloat problems, resulting in significant performance improvements for Gecko.[15]

Quantum

[edit]

In October 2016, Mozilla announcedQuantum, an ongoing project encompassing severalsoftware development efforts to "build the next-generation web engine forFirefox users". It included numerous improvements to Gecko, taken from the experimentalServo project.[16][17] Firefox 57, also known as "Firefox Quantum", first shipped in November 2017 and was the initial version with major components from the Quantum/Servo projects enabled. These include increased performance in theCSS andGPU rendering components. Additional components will be merged from Servo to Gecko incrementally in future versions.[16]

GeckoView

[edit]

In September 2018, Mozilla announced GeckoView, the foundation of Mozilla's next generation of mobile products based on a software library that makes Gecko reusable for Android, encompassing newer software development efforts to "decouple the engine itself from its user interface, and made it easy to embed in other applications". Firefox Focus 7.0, shipped in the same month,[18] is the initial version introduced GeckoView, with increased performance in median page loading.[19][20] Firefox Reality was also built with GeckoView.[19] In June 2019, Mozilla announced Firefox Preview as an ongoing project that focuses on building an Android web browser with GeckoView.[21] Firefox for Android 79, also known as "Firefox Daylight", first shipping in August 2020, is the first stable release of that with major components powered by GeckoView engine.[22]

Standards support

[edit]
This section needs to beupdated. Please help update this article to reflect recent events or newly available information.(August 2022)

Some of the standards Gecko supports include:

Legacy IE non-standard support

[edit]
Main article:Quirks mode

In order to supportweb pages designed for legacy versions of Netscape and Internet Explorer, Gecko supportsDOCTYPE switching. Documents with a modern DOCTYPE are rendered in standards compliance mode, which follows theW3C standards strictly. Documents that have no DOCTYPE or an older DOCTYPE are rendered inquirks mode, which emulates some of the non-standard oddities ofNetscape Communicator 4.x; however, some of the 4.x features (such aslayers) are not supported.

Gecko also has limited support for some non-standard Internet Explorer features, such as themarquee element and thedocument.all property (though pages explicitly testing fordocument.all will be told it is not supported).[25]

Usage

[edit]
Main page:Category:Gecko-based software

Gecko is primarily used inweb browsers, the earliest beingNetscape 6 andMozilla Suite (later renamedSeaMonkey). It is also used in other Mozilla web browser derivatives such asFirefox andFirefox for mobile and the implementation of theInternet Explorer-clone that is part ofWine.[26] Forks of Firefox that also make use of Gecko includeLibreWolf,Zen Browser,GNU IceCat,[27]Midori,[28]Waterfox,Portable Firefox, andFloorp. Mozilla also uses it in theirThunderbird email-client.

Other web browsers using Gecko includeLunascape andSailfish Browser.

Gecko is also used by theKaiOS mobile operating system, which is based on the discontinuedFirefox OS.[29]

Past users

[edit]

Products that formerly used Gecko includePale Moon andK-Meleon (both now usingGoanna), Epiphany (now known asGNOME Web and usingWebKitGTK), andGNOME DevHelp (now usingWebKitGTK).

Discontinued products that used Gecko includeSwiftfox,Flock,Galeon,Camino,Minimo,Beonex Communicator,Kazehakase,Songbird,Sunbird (calendar),MicroB,Nightingale,Instantbird,Conkeror,Classilla,TenFourFox, andPicasa for Linux.[30]

Gecko was also used bySugar for theOLPC XO-1 computer,[31] before moving to WebKit in 2009.

Proprietary dependency

[edit]

On Windows and other platforms, Gecko depends on proprietary compilers.[32]

Versioning

[edit]

After Gecko 2.0, the version number was bumped to 5.0 to match Firefox 5, and from then on has been kept in sync with the major version number for both Firefox and Thunderbird,[33] to reflect the fact that it is no longer a separate component.[34]

Quantum

[edit]

Quantum is aMozilla project encompassing severalsoftware development efforts to "build the next-generation web engine forFirefox users". It includes numerous improvements to Gecko, largely incorporated from the experimentalServo project. Quantum also includes refinements to the user interface and interactions.[16][17]

Firefox 57, released in November 2017, is the initial version with a Servo component enabled. Mozilla dubs this and several planned future releases "Firefox Quantum".[35][36][needs update?]

Background

[edit]

In 2012, Mozilla began the experimentalServo project, which is an engine designed from scratch with the goals of improvingconcurrency and parallelism while also reducingmemory safety vulnerabilities. Servo is written in theRust programming language, also created by Mozilla, which is designed to generatecompiled code with better memory safety, concurrency, and parallelism than compiled C++ code.[5]

As of April 2016, Servo needed at least several years of development to become a full-featured browser engine,[37] hence the decision to start the Quantum project to bring stable portions of Servo into Firefox. Mozilla laid off all Servo developers in August 2020.[38]

Components

[edit]

The Quantum project is composed of several sub-projects.[16]

  • CSS:Servo's parallelstyle sheet system integrated into Gecko. Benchmarks suggest that performance scales linearly with number ofCPU cores.[39] This was released in Firefox 57.[36]
  • Render: Servo'srendering architecture, called WebRender, integrated into Gecko in 2019, 2 years after the first Firefox Quantum release, Firefox 67. WebRender replaces theimmediate mode drawing model with aretained mode model that is more easily accelerated by theGPU by taking advantage of CSS/DOM's similarity to ascene graph. Worst-case scenario rendering in testing exceeds 60 frames per second.[40] Mozilla began enabling the new renderer for select hardware/OS combinations in Firefox 67.[41]
  • Compositor: Gecko's existingcompositor moved to its own process, isolating browser tabs from graphics driver related crashes. Since compositor crashes will not bring down the browser content process, the compositor process can be restarted transparently without losing user data. This was released in Firefox 53.[42]
  • DOM: Loosely inspired by Servo's Constellation architecture[43] andOpera'sPresto engine,[44] Quantum DOM uses cooperatively scheduled threads within theDOM to increase responsiveness without increasing the number of processes and, thus, memory usage. The core of this shipped in Firefox 57.[45]
  • Flow: An umbrella for user visible performance improvements driven by a team that works across Gecko components. Focused on real user performance improvements on majorwebapps, primarily G Suite (now calledGoogle Workspace) andFacebook.[46] This work completed and shipped for Firefox 57.[47]
  • Photon: AUI refresh of the entire application, with a strong focus on improving UI performance. Treated as a sister project to Quantum Flow.[48] This was released in Firefox 57.[35]
  • Network: Improve the performance ofNecko, Gecko's networking layer, by moving more network activity off the main thread, context dependent prioritization of networking streams, and racing the cache layer with the network.[49] This feature was released in Firefox 59.[50]

Azure

[edit]

TheMozilla Azure project is a stateless low-levelgraphics abstraction API used inFirefox.[51]
The project has several objectives including:

  • more accurate Direct2D compatibility
  • optimized state interoperability
  • improved control over performance characteristics and bugs

Azure will provide 2D hardware acceleration on top of 3D graphics backends. Firefox began using Azure instead ofCairo in 2012.[52][53] It is written inC++ and used byServo.[54] The Azure name is an ode to the early Netscape founderJames H. Clark and his earlier work atSilicon Graphics where workstations were often named after colors.[55]

References

[edit]
  1. ^"Mozilla Foundation End-User Licensing Agreements".Mozilla.
  2. ^"Mozilla Licensing Policies". mozilla.org. Retrieved2013-03-26.
  3. ^"Embedding Mozilla". Mozilla.org. 2012-10-25. Retrieved2012-10-31.
  4. ^ab"Simple Firefox for Android build". Archived fromthe original on 2019-09-29. Retrieved2017-05-03.Gecko is implemented using C++ and JavaScript.
  5. ^abBergstrom, Lars; et al. (May 2016)."Engineering the Servo Web Browser Engine using Rust"(PDF).Proceedings of the International Conference on Software Engineering.Archived(PDF) from the original on 2016-05-29.
  6. ^"Google Groups".groups.google.com.
  7. ^Yegulalp, Serdar (February 3, 2017)."Mozilla binds Firefox's fate to the Rust language".InfoWorld.
  8. ^"MPL 2 Upgrade". Retrieved2012-08-18.
  9. ^"Gecko FAQ".MDN Web Docs. Archived fromthe original on 2019-10-08. Retrieved2017-05-03.
  10. ^"nglayout project: identity crisis". Mozilla.org. Archived fromthe original on 2011-06-29. Retrieved2012-10-31.
  11. ^abJorge O. Castro (2004-06-15)."Ars Technica sits down with Scott Collins from Mozilla.org".Ars Technica. Retrieved2017-02-16.
  12. ^mozilla."Contributors to mozilla/gecko-dev".GitHub. Retrieved2026-01-06.
  13. ^abPaul Festa (2003-01-14)."Apple snub stings Mozilla".CNET Networks. Archived fromthe original on 2012-10-25. Retrieved2017-02-16.
  14. ^abDavid Baron (2003-01-09)."Thursday 2003-01-09".David Baron's weblog. self-published. Archived fromthe original on 2009-07-28. Retrieved2017-02-16.
  15. ^Ryan Paul (2008-09-09)."Why Mozilla is committed to Gecko as WebKit popularity grows". Retrieved2017-02-16.
  16. ^abcd"Quantum".Mozilla Wiki. Retrieved2017-04-20.
  17. ^abCimpanu, Catalin."Mozilla Announces Quantum, a New Browser Engine for Firefox".softpedia. Retrieved2016-11-07.
  18. ^"Firefox Focus 7.0 enters beta, Switches to GeckoView (Gecko Engine)". 14 September 2018. Archived fromthe original on 31 July 2020. Retrieved19 September 2019.
  19. ^ab"Firefox Focus with GeckoView".Mozilla Hacks. September 13, 2018. RetrievedSeptember 4, 2019.
  20. ^"What's new in Firefox Focus for Android (version 7) | Firefox Focus Help".support.mozilla.org. RetrievedSeptember 4, 2019.
  21. ^"GeckoView in 2019".Mozilla Hacks. June 27, 2019. RetrievedSeptember 4, 2019.
  22. ^Vesta Zare (August 25, 2020)."Fast, personalized and private by design on all platforms: introducing a new Firefox for Android experience".Mozilla Blog. RetrievedSeptember 22, 2020.
  23. ^"Cross Browser Compatibility of ECMAScript 2015 (ES6) in Firefox 102".www.lambdatest.com. Archived fromthe original on 2022-08-21. Retrieved2022-08-21.
  24. ^"Cross Browser Compatibility of SVG (basic support) in Firefox 102".www.lambdatest.com. Archived fromthe original on December 9, 2022. Retrieved2022-08-21.
  25. ^"Mozilla Adds Undetectable document.all Support, Part of New Novell Linux Distribution?". Developer.mozilla.org. 2004-07-23. Retrieved2018-02-07.
  26. ^"IE Uses Gecko Under Wine". Wine Wiki. Retrieved2009-09-14.
  27. ^sdubois (24 June 2010)."Gecko".Free Software Foundation. Retrieved23 May 2019.
  28. ^"Midori Browser light web browser".Astian, Inc. Retrieved2025-02-04.
  29. ^Hill, Paul (2020-03-12)."KaiOS Technologies partners with Mozilla to improve Gecko".Neowin. Retrieved2024-07-12.
  30. ^"Picasa 3.0 for Linux". Archived fromthe original on 2009-01-07. Retrieved2008-12-28.
  31. ^Martens, China (2007-01-03)."One Laptop Per Child readies 'Sugar' interface". IDG News Service. Archived fromthe original on 2008-01-18. Retrieved2007-12-28.
  32. ^"Building Firefox for Windows".MDN Web Docs.
  33. ^"Gecko versions and application versions".MDN. Archived fromthe original on 2020-10-31. Retrieved2013-11-18.
  34. ^"Not much in new Thunderbird 5, but roadmap looks promising".Ars Technica. 30 June 2011. Retrieved2018-02-07.
  35. ^ab"Firefox 57.0, See All New Features, Updates and Fixes".Mozilla. Retrieved2018-10-30.
  36. ^ab"Introducing the New Firefox: Firefox Quantum – The Mozilla Blog".The Mozilla Blog. Retrieved2018-10-30.
  37. ^"Servo remaining work".GitHub. Retrieved2017-02-17.
  38. ^"Mozilla lays off 250 employees while it refocuses on commercial products".ZDNet. Retrieved2022-06-14.
  39. ^"The Changelog".The Changelog. 18 November 2016. Retrieved2017-03-28.
  40. ^"Bay Area Rust Meetup February 2016".Air Mozilla. Retrieved2017-03-28.
  41. ^"Webrender Where".Mozilla Wiki. Retrieved2020-07-14.
  42. ^"Firefox faster and more stable with the first big bytes of Project Quantum, simpler with compact themes and permissions redesign".Mozilla Blog. Retrieved2017-04-27.
  43. ^"Servo Architecture".YouTube. 18 January 2017.Archived from the original on 2021-12-11. Retrieved2017-03-28.
  44. ^"Mozilla's Quantum Project".Bill McCloskey's Blog. 2016-10-27. Retrieved2017-03-28.
  45. ^"Entering the Quantum Era".Mozilla Hacks. 2017-11-13. Retrieved2020-07-14.
  46. ^"Quantum Flow".Mozilla Wiki. Retrieved2017-03-28.
  47. ^"Quantum Flow Engineering Newsletter #25".ehsanakhgari.org. 2017-09-17. Retrieved2020-07-14.
  48. ^dolske (2017-05-18)."Photon Engineering Newsletter #1".Dolske's blog. Retrieved2017-07-04.
  49. ^"TPE Necko/Projects - MozillaWiki".wiki.mozilla.org. Retrieved2017-07-04.
  50. ^"Firefox 59 Release Notes".www.mozilla.org. Retrieved2019-01-16.
  51. ^"Platform/GFX/Moz2D - MozillaWiki".
  52. ^Parfeni, Lucian (7 September 2012)."Firefox Now Uses the Azure Graphics API for Canvas on All Platforms".
  53. ^"Azure Replacing Cairo In Mozilla Firefox - Phoronix".
  54. ^Willis, Nathan (17 June 2015)."Parallel page rendering with Mozilla Servo".LWN.net. Retrieved27 June 2015.
  55. ^"Introducing the Azure project - JOEDREW!". Archived fromthe original on 2016-09-08. Retrieved2019-09-22.

External links

[edit]
Applications and Projects
Mozilla
Labs
Mozilla
Research
Mozilla
Foundation
Firefox
Origins
Frameworks
Components
Typefaces
Discontinued
Forks
Discontinued projects are initalics. Some projects abandoned by Mozilla that are still maintained by third parties are inunderline.
Organization
Foundation
Official affiliates
People
Other topics
Other
Community
Browser versions
E-mail clients
Other components
Server software
Web services
People
See also
Stable
Experimental
Discontinued
Features, standards & protocols
Features
Web standards
Protocols
Active
Blink-based
Proprietary
FOSS
Gecko-based
Goanna-based
WebKit-based
Multi-engine
Other
Discontinued
Blink-based
Gecko-based
MSHTML-based
WebKit-based
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Gecko_(software)&oldid=1331496183"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp