Gecko (Software)

4
Gecko (software) Gecko is a web browser engine used in many applications developed by Mozilla Foundation and the Mozilla Corpo- ration (notably the Firefox web browser including its mo- bile version and their e-mail client Thunderbird), as well as in many other open source software projects. Gecko is free and open-source software subject to the terms of the Mozilla Public License version 2. [9] It is designed to support open Internet standards, and is used by different applications to display web pages and, in some cases, an application’s user interface itself (by ren- dering XUL). Gecko offers a rich programming API that makes it suitable for a wide variety of roles in Internet- enabled applications, such as web browsers, content pre- sentation, and client/server. [10] Gecko is written in C++ and is cross-platform, and runs on various operating systems including BSDs, Linux, OS X, Solaris, OS/2, AIX, OpenVMS, and Microsoft Win- dows. Its development is now overseen by the Mozilla Foundation. 1 History Development of the layout engine now known as Gecko began at Netscape in 1997, following the company’s pur- chase of DigitalStyle. The existing Netscape render- ing engine, originally written for Netscape Navigator 1.0 and upgraded through the years, was slow, did not com- ply well with W3C standards, had limited support for dynamic 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 as Raptor, the name had to be changed to NGLayout (next generation layout) due to trademark problems. Netscape later rebranded NGLayout as Gecko. While Mozilla Organization (the forerunner of the Mozilla Foundation) initially contin- ued to use the NGLayout name (Gecko was a Netscape trademark), [11] eventually the Gecko branding won out. In October 1998, Netscape announced that its next browser would use Gecko (which was still called NGLay- out at the time) rather than the old layout engine, re- quiring large parts of the application to be rewritten. While this decision was popular with web standards ad- vocates, it was largely unpopular with Netscape develop- ers, who were unhappy with the six months given for the rewrite. [12] It also meant that most of the work done for Netscape Communicator 5.0 (including development on the Mariner 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). 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 in CompuServe 7.0 and AOL for Mac OS X (these products had previously embedded Internet Ex- plorer). However, with the exception of a few betas, Gecko was never used in the main Microsoft Windows AOL client. On July 15, 2003, AOL laid off the remaining Gecko de- velopers and the Mozilla Foundation (formed on the same day) became the main steward of Gecko development. Today, Gecko is developed by employees of the Mozilla Corporation, employees of companies that contribute to the Mozilla project, and volunteers. 2 Standards support From the outset, Gecko was designed to support open In- ternet standards. Some of the standards Gecko supports include: CSS Level 2.1 (partial support for CSS 3) [13] DOM Level 1 and 2 (partial support for DOM 3) HTML4 (partial support for HTML5—see Comparison of layout engines (HTML5)) JavaScript 1.8.5 (full ECMAScript 5.1 support), [14] implemented in SpiderMonkey MathML RDF XForms (via an official extension) XHTML 1.0 XML 1.0 1

description

detail about search engine of firefox

Transcript of Gecko (Software)

Page 1: Gecko (Software)

Gecko (software)

Gecko is a web browser engine used in many applicationsdeveloped byMozilla Foundation and theMozilla Corpo-ration (notably the Firefox web browser including its mo-bile version and their e-mail client Thunderbird), as wellas in many other open source software projects. Gecko isfree and open-source software subject to the terms of theMozilla Public License version 2.[9]

It is designed to support open Internet standards, and isused by different applications to display web pages and, insome cases, an application’s user interface itself (by ren-dering XUL). Gecko offers a rich programming API thatmakes it suitable for a wide variety of roles in Internet-enabled applications, such as web browsers, content pre-sentation, and client/server.[10]

Gecko is written in C++ and is cross-platform, and runson various operating systems including BSDs, Linux, OSX, Solaris, OS/2, AIX, OpenVMS, and Microsoft Win-dows. Its development is now overseen by the MozillaFoundation.

1 History

Development of the layout engine now known as Geckobegan at Netscape in 1997, following the company’s pur-chase of DigitalStyle. The existing Netscape render-ing engine, originally written for Netscape Navigator 1.0and upgraded through the years, was slow, did not com-ply well with W3C standards, had limited support fordynamic HTML and lacked features such as incrementalreflow (when the layout engine rearranges elements on thescreen as new data is downloaded and added to the page).The new layout engine was developed in parallel with theold, with the intention being to integrate it into NetscapeCommunicator when it was mature and stable. At leastone more major revision of Netscape was expected to bereleased 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 as Raptor, the namehad to be changed to NGLayout (next generation layout)due to trademark problems. Netscape later rebrandedNGLayout as Gecko. While Mozilla Organization (theforerunner of the Mozilla Foundation) initially contin-ued to use the NGLayout name (Gecko was a Netscapetrademark),[11] eventually the Gecko branding won out.In October 1998, Netscape announced that its nextbrowser would use Gecko (which was still called NGLay-

out at the time) rather than the old layout engine, re-quiring large parts of the application to be rewritten.While this decision was popular with web standards ad-vocates, it was largely unpopular with Netscape develop-ers, who were unhappy with the six months given for therewrite.[12] It also meant that most of the work done forNetscape Communicator 5.0 (including development onthe Mariner improvements to the old layout engine) hadto be abandoned. Netscape 6, the first Netscape release toincorporate Gecko, was released in November 2000 (thename Netscape 5 was never used).As Gecko development continued, other applications andembedders began to make use of it. America Online, bythis time Netscape’s parent company, eventually adoptedit for use in CompuServe 7.0 and AOL for Mac OS X(these products had previously embedded Internet Ex-plorer). However, with the exception of a few betas,Gecko was never used in the main Microsoft WindowsAOL client.On July 15, 2003, AOL laid off the remaining Gecko de-velopers and theMozilla Foundation (formed on the sameday) became the main steward of Gecko development.Today, Gecko is developed by employees of the MozillaCorporation, employees of companies that contribute tothe Mozilla project, and volunteers.

2 Standards support

From the outset, Gecko was designed to support open In-ternet standards. Some of the standards Gecko supportsinclude:

• CSS Level 2.1 (partial support for CSS 3)[13]

• DOM Level 1 and 2 (partial support for DOM 3)

• HTML4 (partial support for HTML5—seeComparison of layout engines (HTML5))

• JavaScript 1.8.5 (full ECMAScript 5.1 support),[14]implemented in SpiderMonkey

• MathML

• RDF

• XForms (via an official extension)

• XHTML 1.0

• XML 1.0

1

Page 2: Gecko (Software)

2 5 REFERENCES

• XSLT and XPath, implemented in TransforMiiX

Gecko also partially supports SVG 1.1.[15][16]

In order to support web pages designed for legacy ver-sions of Netscape and Internet Explorer, Gecko supportsDOCTYPE switching. Documents with a modern DOC-TYPE are rendered in standards compliancemode, whichfollows the W3C standards strictly. Documents that haveno DOCTYPE or an older DOCTYPE are rendered inquirks mode, which emulates some of the non-standardoddities of Netscape Communicator 4.x; however, someof the 4.x features (such as layers) are not supported.Gecko also has limited support for some non-standard In-ternet Explorer features, such as the marquee elementand the document.all property (though pages explicitlytesting for document.all will be told it is not supported).While this increases compatibility with many documentsdesigned only for Internet Explorer, some purists arguethat it harms the cause of standards evangelism.

3 Usage

Gecko is primarily used in web browsers, the earli-est being Netscape 6 and Mozilla Suite (later renamedSeaMonkey). It is also used in other Mozilla web browserderivatives such as Firefox and Firefox for mobile andthe implementation of the Internet Explorer-clone that ispart of Wine.[17] Mozilla also uses it in their Thunderbirdemail-client and their Firefox OS.Other web browsers using Gecko include Airfox,Waterfox, K-Meleon, Lunascape, Pale Moon, PortableFirefox, Conkeror, Classilla, TenFourFox, HP SecureWeb Browser, Oxygen and Sylera (for mobile).Other products using Gecko include Conkeror, Oxy-gen, Nightingale, Instantbird and Google’s picture-organization software Picasa (for Linux).[18]

DevHelp, a GTK+/GNOME browser for API documen-tation, used Gecko for rendering documents.[19]

Gecko is also used by Sugar for the OLPC XO-1computer.[20] Gecko is used as a complete implementa-tion of the XUL (XMLUser Interface Language). Geckocurrently defines the XUL specification.Products that have historically used Gecko includeSongbird, Epiphany (now known as Web and nolonger using Gecko), Sunbird (calendar), and other webbrowsers including Swiftfox, Flock, Galeon, Camino,Minimo, Beonex Communicator, Kazehakase, andMicroB.After Gecko 2.0, the version number was bumped to 5.0to match Firefox 5, and from then on has been kept insync with the major version number for both Firefox andThunderbird,[21] to reflect the fact that it is no longer aseparate component.

4 Criticism

In the past, Gecko had slower market share adoptiondue to the complexity of the Gecko code, which aimedto provide much more than just an HTML rendererfor web browsers.[22][23][24] Mozilla’s engineering ef-forts since then have addressed many of these historicalweaknesses.[25]

The Gecko engine also provides a versatile XML-baseduser interface rendering framework called XUL that wasused extensively in mail, newsgroup, and other programs.Another reason for much of the complexity in Geckois the use of XPCOM, a cross-platform componentmodel.[26] However, its use has been scaled back.[27]

On Windows and similar platforms, Gecko depends onnon-free compilers. Thus, FOSS distributions of Linuxcan not include the Gecko package used in the Windowscompatibility layer Wine.[28]

5 References

[1] “Firefox — Notes (40.0.2) — Mozilla”. mozilla.org.2015-08-13. Retrieved 2015-08-13.

[2] “Firefox — Notes (38.2.0) — Mozilla”. mozilla.org.2015-08-11. Retrieved 2015-08-11.

[3] “Firefox — Beta Notes (40.0beta) —Mozilla”. 2015-07-03. Retrieved 2015-07-03.

[4] “Mozilla FirefoxWeb Browser—Download Firefox Betain your language — Mozilla”. Retrieved 2015-08-01.

[5] “Firefox — Aurora Notes (41.0a2) — Mozilla”. 2015-07-03. Retrieved 2015-07-03.

[6] “RapidRelease/Calendar - MozillaWiki”. Retrieved2015-07-03.

[7] https://www.mozilla.org/en-US/about/legal/eula/

[8] “Mozilla Licensing Policies”. mozilla.org. Retrieved2013-03-26.

[9] “MPL 2 Upgrade”. Retrieved 2012-08-18.

[10] “Embedding Mozilla”. Mozilla.org. 2012-10-25. Re-trieved 2012-10-31.

[11] “nglayout project: identity crisis”. Mozilla.org. Retrieved2012-10-31.

[12] Castro, Jorge O. (2004-06-16). “Ars Technica interviewsScott Collins”. Arstechnica.com. Retrieved 2012-10-31.

[13] “Mozilla CSS support chart”. Developer.mozilla.org.2012-08-04. Retrieved 2012-10-31.

[14] “ECMAScript 5 support in Mozilla”. Devel-oper.mozilla.org. 2013-11-14. Retrieved 2013-12-02.

Page 3: Gecko (Software)

3

[15] The SVG font, color profile, animation, view, and cursormodules are yet to be implemented and the filter and textmodules are only partially implemented. The extensibilitymodule is also implemented but is currently disabled

[16] “Mozilla SVG Status”. Mozilla.org. 2012-08-25. Re-trieved 2012-10-31.

[17] “IE Uses Gecko Under Wine”. Wine Wiki. Retrieved2009-09-14.

[18] “Picasa 3.0 for Linux”. Google. Retrieved 2008-12-28.

[19] “Official package devhelp (0.19.1-6 and others) on DebianLenny”. Debian Project. Retrieved 2009-08-12.

[20] Martens, China (2007-01-03). “One Laptop Per Childreadies 'Sugar' interface”. IDG News Service. Retrieved2007-12-28.

[21] “Gecko versions and application versions”. MDN. Re-trieved 2013-11-18.

[22] Mike Shaver (2003-01-08). “Designate contact sierra-five”. Shaver: Noise from signal. self-published.Archived from the original on 2009-09-06. Retrieved2009-09-06.

[23] David Baron (2003-01-09). “Thursday 2003-01-09”.David Baron’s weblog. self-published. Archived from theoriginal on 2009-09-06. Retrieved 2009-09-06.

[24] Paul Festa (2003-01-14). “Apple snub stings Mozilla”.CNET Networks. Archived from the original on 2009-09-06. Retrieved 2009-09-06.

[25] “A revamped Gecko puts the fire in Firefox”.

[26] Jorge O. Castro (2004-06-15). “Ars Technica sits downwith Scott Collins from Mozilla.org”. Ars Technica.

[27] https://bugzilla.mozilla.org/show_bug.cgi?id=105431

[28] http://wiki.jswindle.com/index.php/Fedora#Working_Wine Archived April 2, 2015 at the Wayback Machine

6 External links• Gecko - Mozilla Developer Network

• Gecko development wiki (wiki.mozilla.org)

• Mozilla Product Strategy Proposal (DRAFT)

• Web Browser Standards Support

• JRex (Java API for Gecko)

Page 4: Gecko (Software)

4 7 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

7 Text and image sources, contributors, and licenses

7.1 Text• Gecko (software) Source: https://en.wikipedia.org/wiki/Gecko_(software)?oldid=669068843 Contributors: Magnus Manske, Matthew

Woodcraft, Brion VIBBER, Andre Engels, Vaganyik, Aldie, Hhanke, Lightning~enwiki, K.lee, Michael Hardy, Hoshie, GTBacchus,Minesweeper, Ahoerstemeier, Nanshu, 5ko, Den fjättrade ankan~enwiki, LittleDan, Nikai, Evercat, Jonik, Feedmecereal, RickK, Dm-sar, Dysprosia, Jitse Niesen, Miernik, Hao2lian, Tpbradbury, Itai, Nv8200pa, Nickshanks, Chealer, Noldoaran, RedWolf, Stewartadcock,DocWatson42, Haeleth, Tapo, Itpastorn, AlistairMcMillan, Mooquackwooftweetmeow, Pgan002, Wickedpedia is a fascist project, Beland,Paul99, ZZyXx, Bbpen, Karl Dickman, Asqueella, Grstain, Reinthal, A-giau, Rich Farmbrough, Qutezuce, EliasAlucard, Luxdormiens,Gronky, Bender235, Evice, Balubino, BruceRD, Peter M Gerdes, Causa sui, Adamlock, John Vandenberg, Cwolfsheep, Garlics82, DeryckChan, Anonymous Cow, WikiLeon, Minghong, Wayfarer, Zachlipton, Nanobot, Ijain, Kocio, Mrholybrain, Schapel, Danhash, Kuda,Tedp, Kurivaim, Forderud, Ian Moody, Jannex, Mindmatrix, Torqueing, Bluemoose, GregorB, Waldir, Havarhen, Toussaint, Rgbea,Ictlogist, Yoric~enwiki, BD2412, Phoenix-forgotten, Rjwilmsi, Koavf, KamasamaK, Gudeldar, Miha Ulanov, Brighterorange, George-Bills, Yamamoto Ichiro, FlaBot, Foolishgrunt, DevastatorIIC, DrIdiot, Stephantom, Adoniscik, Lil devil, YurikBot, Borgx, Laurentius,Limulus, Lavenderbunny, Hm2k, Toehead2001, WulfTheSaxon, Complainer, Waffle, Bota47, Jeremy Visser, ColdFusion650, Ms2ger,Kgyt, Skedaddle, Composingliger, GrinBot~enwiki, Mardus, NetRolller 3D, SmackBot, Faisal.akeel, Renegadeviking, Ultramandk, Es-kimbot, Darklock, Bluebot, Thumperward, Metavida, Frap, Juancnuno, UU, Superjordo, Charles Merriam, MichaelBillington, Alsh,Michael Bednarek, 16@r, Poemich, Sharcho, AGK, FatalError, Marbles, CRGreathouse, Pentiumforever, Simast, Monta990, Wikien2009,Kweeket, Herorev, Neustradamus, Elikser, Thijs!bot, Stewx, Bobblehead, WinBot, CZmarlin, Isilanes, Dylan Lake, Progdev, JAnDbot,Wootery, Jldupont~enwiki, Photobiker, Skezo, DrSeehas, Arkar1984, Gwern, Cmsjustin, Jesant13, Jreferee, R!SC, Jojas, Austin512, LittleProfessor, Bsmith781, AhmadSherif, Plasticup, Josh Tumath, Funandtrvl, Gerhartm, Nomaxxx, TheOtherJesse, Benbucksch, TXiKiBoT,Rei-bot, Broadbot, Abdullais4u, Fenring, ITxT, Digita, LittleBenW, SieBot, HuggaBounce, Phe-bot, Execvator, Theaveng, Jruderman,StaticGull, Shooke, Ehsan Akhgari, ClueBot, Czarkoff, Kl4m-AWB, Wolfbeast, Darth NormaN, Alexbot, Alexqw, SF007, Miami33139,Antti29, C. A. Russell, Jrooksjr, Addbot, Mabdul, AndersBot, Numbo3-bot, BitterEndofRosemary, Mktsay123, Yobot, Vitalie Ciubotaru,A0091206, AnomieBOT, Götz, AtteL, Deeringc, Berntie, Citation bot, Kaltaugh, ArthurBot, 1wolfblake, Locos epraix, 1nt2, Oneliketa-dow, DeTru711, Thorenn, SL93, Rayqwmon46, USam, Ale And Quail, Defrector, Romaxa2009, EmausBot, WikitanvirBot, Jjeka, En-talpia2, Josve05a, H3llBot, Markrlondon, Jaycee55, Jasontan90, Bomazi, Arcorann, Sudozero, Czeror, Will Beback Auto, Robin MathewRajan, Trewyy, BG19bot, FloFlo91, Clothbound, Cyberbot II, Damiengolding, Rezonansowy, Hoestmelankoli, Enock4seth, S8321414,Whalrush, Comp.arch, Lennartelsner, Werddemer, ScotXW, Xue Fuqiao, Nutty151, Karrtojal, BugsGounelas and Anonymous: 211

7.2 Images• File:Commons-logo.svg Source: https://upload.wikimedia.org/wikipedia/en/4/4a/Commons-logo.svg License: ? Contributors: ? Originalartist: ?

• File:Crystal_Clear_app_browser.png Source: https://upload.wikimedia.org/wikipedia/commons/f/fe/Crystal_Clear_app_browser.pngLicense: LGPL Contributors: All Crystal icons were posted by the author as LGPL on kde-look Original artist: Everaldo Coelho andYellowIcon

• File:Crystal_Clear_device_cdrom_unmount.png Source: https://upload.wikimedia.org/wikipedia/commons/1/10/Crystal_Clear_device_cdrom_unmount.png License: LGPL Contributors: All Crystal Clear icons were posted by the author as LGPL on kde-look;Original artist: Everaldo Coelho and YellowIcon;

• File:Folder_Hexagonal_Icon.svg Source: https://upload.wikimedia.org/wikipedia/en/4/48/Folder_Hexagonal_Icon.svg License: Cc-by-sa-3.0 Contributors: ? Original artist: ?

• File:Free_Software_Portal_Logo.svg Source: https://upload.wikimedia.org/wikipedia/commons/6/67/Nuvola_apps_emacs_vector.svgLicense: LGPL Contributors:

• Nuvola_apps_emacs.png Original artist: Nuvola_apps_emacs.png: David Vignoni• File:Mozilla_Firefox_logo_2013.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/76/Mozilla_Firefox_logo_2013.svgLicense: CC BY 3.0 Contributors: http://www.mozilla.org/en-US/styleguide/identity/firefox/branding/ Original artist: Sean Martell forMozilla [2][3]

• File:Mozilla_Firefox_wordmark.svg Source: https://upload.wikimedia.org/wikipedia/commons/3/34/Mozilla_Firefox_wordmark.svgLicense: Public domain Contributors: Firefox from PDF file at Mozilla ;Original artist: Yarnalgo (<a href='//commons.wikimedia.org/wiki/User_talk:Yarnalgo' title='User talk:Yarnalgo'>talk</a>), User:Nicosmos, Erik Spiekermann (FF Meta)

7.3 Content license• Creative Commons Attribution-Share Alike 3.0