Gecko (software)
Desenvolvedor | Mozilla Foundation / Mozilla Corporation |
Versão estável | 93.0 (5 de outubro de 2021 | )
Versão em teste | 94.0b1 (5 de outubro de 2021 | )
Escrito em | C++ |
Sistema operativo | Multiplataforma |
Gênero(s) | Motor de layout |
Licença | MPL/GPL/LGPL |
Página oficial | developer |
Gecko é um motor de layout com código aberto usado em aplicativos desenvolvidos pela Mozilla Foundation e a Mozilla Corporation (principalmente o navegador Firefox), como também em muitos outros projetos de software com código aberto.
Ele é projetado para suportar os padrões da internet, e é usado por diferentes aplicativos para mostrar páginas da web e, em alguns casos, uma aplicação interface de usuário ele próprio (pelo processamento de XUL). O Gecko oferece uma rica e robusta API que o torna adequado para um vasta e variada gama de aplicações baseadas nos princípios da Internet, como exemplo, navegadores web.[1]
Gecko é escrito em C++ e é multiplataforma, roda sobre vários sistemas operacionais, entre eles BSD, Linux, Mac OS X, Solaris, OS/2, AIX, OpenVMS, e Windows. Seu desenvolvimento está agora sendo supervisionado pela Mozilla Foundation e é licenciado por uma tri-licença do Mozilla Public License (MPL), GNU General Public License (GPL) e GNU Lesser General Public License (LGPL).
Gecko é o terceiro motor de layout mais popular da Web, atrás somente do Blink (usado pelo Google Chrome, pelo Microsoft Edge e pelo Opera), e do WebKit (usado pelo Safari).[2]
Historia
[editar | editar código-fonte]O desenvolvimento do motor de layout agora conhecido como Gecko começou no Netscape em 1997, após a compra da empresa pela DigitalStyle. O motor de renderização da Netscape, originalmente escrito para o Netscape Navigator 1.0 e atualizado através dos anos, foi amplamente considerado inferior numa comparação com o Microsoft Internet Explorer. Ele era lento, não cumpria as normas do padrão W3C, tinha um suporte limitado para o dynamic HTML e faltava o recurso de reflow (quando o motor de layout rearranja elementos sobre a tela, quando novos dados são baixados no lado do cliente). O novo motor de layout foi desenvolvido em paralelo com o antigo, com a intenção de ser implementado dentro do Netscape Communicator quando este ficaste maduro, robusto e estável. Era esperado que mais uma versão do Netscape fosse lançada com o antigo motor de layout depois da troca.
Após o lançamento do projeto Mozilla no início de 1998, o novo código do motor de layout foi distribuído sobre uma licença Open Source. Originalmente apresentado como Raptor, o nome foi modificado para NGLayout (próxima geração de layout) devido a problemas com a marca registrada. Mais tarde a Netscape rebatizou o motor NGLayout para Gecko. Enquanto Mozilla Organization (precursora da futura Mozilla Foundation), inicialmente continuou a usar o nome de NGLayout (Gecko foi uma marca da Netscape),[3] mais tarde, a Mozilla Foundation passou a utilizar a marca Gecko para seu motor de layout.
Em outubro de 1998, a Netscape anunciou que seu próximo web browser usaria o motor Gecko (que ainda era chamado de NGLayout na época), ao invés do motor de layout antigo, exigindo da mesma um grande trabalho de reescrita e adaptações. Embora essa decisão era popular com os padrões web, o navegador não obteve uma popularidade satisfatória entre os desenvolvedores, que estavam descontentes com o prazo de seis meses prometidos para a reescrita.[4] Isso significou que a maioria do trabalho realizado pela Netscape para o Netscape Communicator 5.0 (incluindo o desenvolvimento do Mariner que trazia melhorias ao antigo motor de layout) tiveram de ser abandonados. O Netscape 6, foi a primeira versão a incorporar o motor de layout Gecko, foi lançado em Novembro de 2000 (o nome Netscape 5 nunca fora utilizado).
Com a continuação do motor de layout Gecko, outras aplicações e utilitários passaram a utilizar-se do novo motor. A America Online, nessa altura, acabou adotando para o uso em seu CompuServe 7.0 e AOL para Mac OS X (este produtos já tinham sido incorporados no Internet Explorer). No entanto, com a exceção de alguns, o Gecko nunca chegou a ser utilizado nos principais clientes Microsoft Windows e AOL.
Em 15 de julho de 2003, AOL demitiu os desenvolvedores restantes do Gecko e a Mozilla Foundation (formada no mesmo dia) tornou-se a principal desenvolvedora do Gecko. Hoje, o Gecko é desenvolvido por funcionários da Mozilla Corporation, funcionários de companhias que contribuem para o projeto Mozilla, e também de diversos voluntários.
Padrões suportados
[editar | editar código-fonte]Desde o início, o Gecko foi desenhado para suportar os padrões abertos da Internet. Alguns dos padrões suportados hoje pelo Gecko são:
- HTML4 (suporte parcial ao HTML5)
- CSS Nível 2.1 (suporte parcial ao CSS3)[5]
- JavaScript 1.8 (ECMAScript 3, e suporte parcial ao ECMAScript 5), implementado no SpiderMonkey
- DOM Nível 1 e 2 (suporte parcial ao DOM 3)
- XML 1.0
- XHTML 1.0
- XSLT e XPath, implementado no TransforMiiX
- MathML
- XForms (Via uma extensão oficial)
- RDF
O Gecko também suporta parcialmente SVG 1.1.[nota 1]
Com a finalidade de suportar web pages projetadas para versões antigas do Netscape e do Internet Explorer, o Gecko suporta o comutador DOCTYPE. Documentos com um moderno DOCTYPE são renderizados nos padrões regulamentados pela W3C. Documentos que não tem DOCTYPE ou um antigo DOCTYPE são renderizados em quirks mode, que emula alguns dos padrões não adotados pelo Netscape Communicator 4.x. Desta forma, alguns dos recursos do 4.x (como os layers) não são suportados.
Gecko também tem suporte limitado para alguns padrões não oficiais embutidos no Internet Explorer, como o marquee element e o document.all
que são proprietários (apesar das páginas serem explicitamente testadas para o document.all
, este será descontinuado). Enquanto estas implementações de compatibilidade com muitos documentos são desenhadas somente para o Internet Explorer, alguns puristas argumentam que isso é um atraso à adoção de um padrão universal.
Utilização
[editar | editar código-fonte]Gecko é usado principalmente em web browsers, sendo os primeiros a embutirem/implantarem Netscape 6 e Mozilla Application Suite (depois renomeado para SeaMonkey). Ele também é utilizado em outros web browsers derivados do Mozilla, como exemplo Firefox, Camino, Flock, K-Meleon e uma versão do Internet Explorer que roda sobre o Wine.[7] A versão Linux do software de organização de fotos Picasa do Google é baseada em Gecko.[8] DevHelp, um browser GTK+/GNOME para documentações de API, usa a Gecko para renderizar documentos.[9] Outros produtos não incluidos nesta tabela são Swiftfox, Portable Firefox, Fennec, Conkeror, Classilla, TenFourFox, HP Secure Web Browser, Oxygen, Minimo, My Internet Browser, Sylera (para mobile), Thunderbird (email), Sunbird (calendar) e Instantbird. Gecko é também usado pelo Sugar para o computador OLPC XO-1.[10] Gecko é usado com uma complementação do XUL (XML User Interface Language). Gecko atualmente é responsável por estabelecer o padrão XUL.
A tabela seguinte compara diferentes versões do Gecko:
Gecko versão | Todas plataformas | Somente Windows | Somente Mac | *nix somente | *nix mobile | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Firefox | Netscape | Mozilla | SeaMonkey | Flock | Songbird | Beonex | Lunascape | K-Meleon | My Internet Browser | Camino | Galeon | Epiphany | Kazehakase | MicroB | |
0.6 | 6.0 | 0.6 | 0.6[11] | ||||||||||||
0.8 | 0.8 | 0.3 | |||||||||||||
0.9.2 | 6.1 | 0.9.2 | |||||||||||||
0.9.4 | 6.2 | 0.9.4 | 0.5 | ||||||||||||
0.9.4.1 | 6.2.2 | 0.9.4.1 | 0.7[11] | ||||||||||||
0.9.5 | 0.9.5 | 0.6 | |||||||||||||
0.9.7 | 0.9.7 | 1.0.2 | |||||||||||||
1.0.1 | 7.0 | 1.0.1 | 0.8.1[12] | ||||||||||||
1.0.2 | 1.0.2 | 0.8.2[13] | |||||||||||||
1.1 | 1.1 | 0.9pre[11] | |||||||||||||
1.2b | 0.1 | 1.2b | 0.7 | ||||||||||||
1.3a | 0.5 | 1.3a | |||||||||||||
1.4 | 7.1 | 1.4 | |||||||||||||
1.4.1 | 1.4.1 | 1.0.4 | |||||||||||||
1.5 | 0.7 | 1.5 | 0.8 | ||||||||||||
1.7 | 1.0 | 1.7 | 2.0 | 0.2.8 | |||||||||||
1.7.2 | 7.2 | 1.7.2 | |||||||||||||
1.7.5 | 8.0.2 | 1.7.5 | 0.9 | ||||||||||||
1.8.0 | 1.5 | 1.0 | 0.7 | 0.2 | 1.0 | 1.0 | 1.0 | ||||||||
1.8.1 | 2.0 | 9.0 | 1.1 | 1.0 | 4.8 | 1.1, 1.5 | 2.0 | 1.6.5 | 2.16 | ||||||
1.9.0 | 3.0 | 2.0 - 2.6 | 0.5 - 1.4 | 2.2 | 2.0 | 2.22 | |||||||||
1.9.1 | 3.5 | 2.0 | 5.0 | 1.6 | 3.0 | ||||||||||
1.9.2 | 3.6 | 1.9.3 | 6.3 | 1.7 | 4.0 | 2.1a1[14] | 1.7.4.8 | ||||||||
2.0 | 4.0 | 2.1 | |||||||||||||
5.0 | 5.0 |
Críticas
[editar | editar código-fonte]Uma das principais razões para uma adoção lenta pelo market share é a complexidade do código do Gecko que tem por finalidade proporcionar muito mais do que um processador ou renderizador de HTML. [15] [16] [17] O motor Gecko também prove uma versatilidade na renderização de interface de usuários baseado em XML, um framework chamado XUL que foi muito utilizado em seu programa de e-mail, newsgroup e outros programas. Outra razão que explica a complexidade do código do Gecko é o uso do XPCOM, um modelo de componente multiplataforma.[18]
Ver também
[editar | editar código-fonte]- ↑ Embedding Mozilla
- ↑ «Browser Market Share Worldwide». StatCounter. Consultado em 7 de maio de 2020
- ↑ «nglayout project: identity crisis». Consultado em 28 de junho de 2011. Arquivado do original em 29 de junho de 2011
- ↑ Ars Technica interviews Scott Collins
- ↑ Mozilla CSS support chart
- ↑ Mozilla SVG Status
- ↑ «IE Uses Gecko Under Wine». Wine Wiki. Consultado em 14 de setembro de 2009
- ↑ «Picasa 3.0 for Linux». Google. Consultado em 28 de dezembro de 2008. Arquivado do original em 7 de janeiro de 2009
- ↑ «Official package devhelp (0.19.1-6 and others) on Debian Lenny». Debian Project. Consultado em 12 de agosto de 2009
- ↑ Martens, China (3 de janeiro de 2007). «One Laptop Per Child readies 'Sugar' interface». IDG News Service. Consultado em 28 de dezembro de 2007. Arquivado do original em 18 de janeiro de 2008
- ↑ a b c Bucksch, Ben (12 de março de 2003). «News». Consultado em 29 de janeiro de 2011. Arquivado do original em 9 de julho de 2011
- ↑ Bucksch, Ben. «0.8.1». Consultado em 29 de janeiro de 2011. Arquivado do original em 18 de julho de 2011
- ↑ Bucksch, Ben. «Release-notes». Consultado em 29 de janeiro de 2011. Arquivado do original em 7 de julho de 2011
- ↑ «Camino 2.1a1 Release Notes». Consultado em 2 de fevereiro de 2011
- ↑ Mike Shaver (8 de janeiro de 2003). «Designate contact sierra-five». Shaver: Noise from signal. self-published. Consultado em 6 de setembro de 2009. Cópia arquivada em 6 de setembro de 2009
- ↑ David Baron (9 de janeiro de 2003). «Thursday 2003-01-09». David Baron's weblog. self-published. Consultado em 6 de setembro de 2009. Cópia arquivada em 6 de setembro de 2009
- ↑ Paul Festa (14 de janeiro de 2003). «Apple snub stings Mozilla». CNET Networks. Consultado em 6 de setembro de 2009. Cópia arquivada em 6 de setembro de 2009
- ↑ Jorge O. Castro (15 de junho de 2004). «Ars Technica sits down with Scott Collins from Mozilla.org». Ars Technica
Ligações externas
[editar | editar código-fonte]- Gecko - Mozilla Developer Center
- Gecko development wiki (wiki.mozilla.org)
- Gecko Layout Engine - Real-time Reflow Videos
- Mozilla Product Strategy Proposal (DRAFT)
- Web Browser Standards Support
- JRex (Java API for Gecko)