Gecko

A Gecko egy nyílt forrású böngészőmotor, melyet a Mozilla családba tartozó szoftverek, és azok leszármazottjai (beleértve a Netscape Navigator későbbi változatait) a webes tartalmak megjelenítéséhez használnak. A motort C++ nyelven írták a nyílt webes szabványok
támogatásának elősegítésére. Eredetileg a Netscape Communications Corporation készítette a szoftvert, majd a munkát a Mozilla Alapítvány vette át és  folytatja azóta is.

A Gecko, mivel egy gazdagon kihasználható illesztőfelülettel rendelkezik, megtalálható az internetes programok széles skálájának belsejében, mint például a webböngészők, bemutatókezelők és kliens–szerver alkalmazások. Elsődlegesen a Mozilla böngésző részére készül a motor, a leszármazottak, mint például a Netscape és a Mozilla Firefox azonban legalább olyan jól illeszkednek a böngésző lelkét képező programhoz, mint a fő fejlesztési célpont. A Gecko több-platformos fejlesztés, így sokféle operációs rendszeren működik, beleértve a Windowst, a Linuxot és a Mac OS X-et is.

Jelenleg (2017 júniusában) a Gecko a második legelterjedtebb böngészőmotor a KHTML-leszármazottak (Blink – Google Chrome, WebKit – Safari, U3 – UC Browser stb.) után 6-7%-os részesedéssel.

Szabványtámogatás
Kezdetekben a Geckót a nyílt internetszabványok támogatására fejlesztették ki. Néhány a Geckóban megtalálható támogatott szabvány:

HTML 5.0
XML 1.0
XHTML 1.1
MathML
CSS Level 1 (a CSS 2 és 3 támogatása is)
DOM Level 1 and 2 (DOM 3 részleges támogatása)
RDF
JavaScript 1.8

Ahogy a Tasman (az Internet Explorer Macintosh verziójának motorja), úgy a Gecko is támogatja a DOCTYPE figyelését. A korszerű DOCTYPE-pal ellátott dokumentumokat a motor „szabvány-kompatibilis”, a W3C szabványait pontosan követő üzemmódban jeleníti meg. Amely dokumentumok nem rendelkeznek DOCTYPE-pal, vagy egy régi DOCTYPE verziót használnak, a „quirks mode” szerint renderelődnek. Ebben az üzemmódban a motor olyan nem szabványos furcsaságokat is támogat, amelyeket a Netscape Communicator 4.x verziói használtak (bár néhány a 4.x extráiból, mint például a layer-ek, nem támogatott).

A Gecko néhány nem szabványos Internet Explorer szolgáltatást is támogat, mint amilyen a <marquee> tag és a document.all tulajdonság (bár a document.all-kompatibilitást tesztelő oldalaknak úgy válaszol, mintha nem támogatná). Ez javítja a kompatibilitását az Internet Explorerre tervezett dokumentumokkal, de a szabványosítás evangélistái szerint gátolja a szabványok terjedését.

Történelem
A böngészőmotort a Netscape fejlesztése során 1997-ben nevezték el Gecko-nak, miután a cég a DigitalStyle-tól megvette azt. A Netscape megjelenítő motorját eredetileg a Netscape Navigator 1.0 részére írták és ezt a magot fejlesztgették tovább az évek során, de alulmaradt az egyeduralkodó Internet Explorerrel folytatott harcban. Lassú volt, a W3C ajánlásaival nem működött együtt, a DHTML támogatása korlátozott volt, néhány funkció teljesen hiányzott, mint például a tartalom újratöltése (amikor a motor újrarendezi az elemeket a képernyőn, és az oldalhoz adja azokat). Az új böngészőmotort a régivel párhuzamosan fejlesztették, azzal a céllal, hogy azt integrálják azt a Netscape Communicator magjába, ha stabillá és éretté válik arra. Legalább még egy nagy Netscape átdolgozásra lett volna szükség ahhoz, hogy a régi magba be lehessen építeni az új fejlesztések eredményeit.

Miután a Mozilla projekt 1998 elején elindult, az új böngészőmotort nyílt forrásúvá tették. Eredetileg Raptor, majd az NGLayout (next generation layout – újgenerációs szerkezet) néven emlegették, ám mindkettőnél szerzői jogi problémák adódtak. A Netscape később átnevezte az NGLayout-ot a mai Gecko névre. Bár a Mozilla Szervezet (a későbbi Mozilla Alapítvány) kezdetben az NGLayout nevet volt kénytelen használni (A Gecko a Netscape védett neve volt), végül is a Gecko elnevezés nyert. Egy ideig a Gecko név egyszerre utalt a régi NGLayout böngészőmotorra és az XPFE-re (kereszt-platformos frontend) – az új XML-alapú Mozilla felhasználói felület, melynek az NGLayout volt a motorja – de ma már csak a programok magját alkotó böngészőmotort nevezzük e néven.

1998 októberében a Netscape bejelentette, hogy újabb böngészőjét a Gecko (amit még mindig NGLayout néven említettek) motorral szándékozik elkészíteni, inkább mintsem a régi motort használnák, ez szükségessé tette nagyobb részek újraírását az alkalmazásban. Bár ez a döntés a webes szabványok követését könnyebbé tette, a Netscape fejlesztők dolgát mégis nagyon megnehezítette, akik nagyon nem örültek annak, hogy hat hónapot kaptak az újraírásra. Végül is ez volt az leginkább, ami ahhoz vezetett, hogy a Netscape Communicator 5.0 (és ezáltal a régi motor felújított változatának, a Marinernek) munkálatait félbehagyták. A Netscape 6 volt az első Netscape, amelyben Gecko szív dobogott. Ez a verzió 2000 novemberében jelent meg (A Netscape 5 nevet soha nem használták).

Ahogy fejlődött a Gecko motor, más alkalmazásokban is elkezdték használni azt. Az America Online, mely ez idő tájt a Netscape szülőcége volt, véglegesen áttért erre a motorra a CompuServe 7.0 és a Mac OS X-re szánt AOL programjaiban (Ezekbe a termékekbe azelőtt az Internet Explorer volt beépítve). Mindazonáltal, néhány bétateszt kivételével, a Gecko nem lett magja a Microsoft Windows AOL kliensének.

2003. július 15-én az AOL elbocsátotta a még nála dolgozó Gecko-fejlesztőket és a Mozilla Alapítvány (mely ezen a napon alakult) vette át a Gecko fejlesztését. Ma a Mozilla Alapítvány utódjaként alakult Mozilla Company fizetett alkalmazottai felelősek a Gecko fejlesztéséért.

Jövőbe tekintés
A Gecko fejlesztői további, jelenleg nem (teljesen) támogatott nyílt szabványok támogatását kívánják a motorba építeni, mint amilyen az XForms és az SVG. Ez például abban is megmutatkozik, hogy a Gecko támogatni fogja azokat a technológiákat, melyeket a WHATWG fejleszt a közeljövőben.  Dolgoznak a HTML azon új mezőelemeinek támogatásán, amelyeket a WHATWG 2005. április 19.-én publikált.

A nagy fejlesztési tervek egyike az 1.9-es verzióban tervezett grafikus infrastruktúra újragondolás. Az operációs rendszerek API-jának használata helyett a Cairo minden grafikus felületen használható lesz. Fejlettebb 2D grafikus képességek várhatóak, és a Glitz jóvoltából a 3D grafikus hardverek gyorsítását is ki fogja használni. Ez azt is jelenti majd, hogy egyetlen csővezeték (pipeline) elég lesz a HTML/CSS, a felület és az SVG megjelenítéséhez, így az SVG hatások érvényesíthetőek lesznek a HTML tartalmakra. A Cairo lehetővé fogja tenni a grafikák konvertálását más formátumokba, mint PNG és PDF, például „Oldal mentése PDF-ként”.

Gecko bázisú alkalmazások

Webböngészők
Mozilla Firefox*
AOL Mac OS X alá
Aphrodite*
Beonex Communicator*
Camino Mac OS X rendszerekre
CompuServe 7.0 Windows és Mac OS X rendszerekre
DocZilla Windows és Linux rendszerekre
Epiphany GNU/Linux rendszerekre
Galeon Linux rendszerekre
IBM Web Browser OS/2 rendszerekre*
K-Meleon Windows rendszerekre
Kazehakase Linux rendszerekre
ManyOne*
Minimo (böngésző kézi eszközökre)
Netscape 6.0 és utódai*
Pale Moon (Goanna nevű fork és Firefox 28 felület)*
Q.BATi (halott tervezet, nem érte el az alfa állapotot)
Salamander GNU/Linux rendszerekre
SeaMonkey(korábban Mozilla Application Suite)*
Skipstone GNU/Linux rendszerekre
Waterfox

Más alkalmazások
ActiveState Komodo (Vizuális fejlesztőeszköz Perl, Python és más nyelvekhez Windows és Linux rendszerekre)
Liferea (news aggregator Linuxra)
Mozilla ActiveX Control (az ActiveX fejlesztők számára Gecko-használatot tesz lehetővé)
Mozilla Calendar (naptár és határidőnapló alkalmazás)*
Mozilla Thunderbird (e-mail/hírcsoport kliens és news aggregator)*
Nvu (web authoring application)*
Gecko# Windowsra (.NET Binding for Gecko)*
* A saját felhasználói felületének megjelenítését is a Gecko biztosítja az XUL segítségével.

Jegyzetek

További információk 
Mozilla Layout Engine
Gecko Wiki
Mozilla SVG Update
Glimpse Of The Future 
Mozilla2:GFXEvolution

Szabad szoftverek
Böngészőmotorok