Web


Há muitos anos adquiri e uso o software shareware gerenciador de downloads chamado GetRight.

No tempo da banda não tão larga assim, um dos recursos do GetRight era buscar a aceleração de downloads com a engenhosa opção de segmentar o arquivo a baixar em vários pedaços simultaneamente, inclusive podendo baixar cada segmento de um servidor diferente. Atualmente, esse recurso tem pouca valia.

Dois recursos do GetRight que me interessam até hoje são os seguintes:

  • Opção de gerar um arquivo de log para cada download, onde fica anotado o URL (endereço) de origem do download e pode-se fornecer também uma anotação ou descrição.
  • A opção de preservar o horário (timestamp) de modificação do arquivo no servidor, ao invés de deixar o arquivo com a data em que você realizou o download. Esta opção só está disponível na versão paga do GetRight.

Enquanto os navegadores web não implementam esses recursos de forma nativa, eu vou usando o GetRight para gerenciar e organizar meus downloads.

Sobre a preservação do timestamp de modificação de downloads

Apesar da informação da data de última modificação do arquivo no servidor estar facilmente disponível no cabeçalho dos pacotes HTTP para um download, infelizmente os navegadores mais populares ainda não oferecem a opção de preservar a data-hora original do arquivo, embora existam demandas de usuários para que esse recurso seja implementado. Veja:

Uma extensão para Firefox que promete oferecer essa opção não funciona.

Voltando ao HTTPS

Contudo, já faz um bom tempo que observei que os downloads via HTTP (conexão segura) muitas vezes não estavam funcionando no GetRight, aparentando ficar extremamente lentos ou parados.

Como o GetRight não vem sendo mais atualizado desde a versão 6.5 de fev/2011, suspeitei de problemas de compatibilidade ou mesmo bug com a bibioteca DLL que implementa o OpenSSL no GetRight para suportar HTTPS.

Procurando na pasta do GetRight em Arquivos de Programas (x86), encontrei o arquivo libeay32.dll. Em Propriedades > Detalhes do arquivo vemos que se trata da OpenSSL Shared Library versão 0.9.8.11 de mar/2009.

Propriedades de libeay32.dll do GetRight

Consultei o site do projeto de software livre OpenSSL e vi que a versão estável mais recente disponível no momento em que escrevo este artigo era 1.0.2e.

Por se tratar de um software envolvendo criptografia, que tem restrições de uso e exportação para alguns países mais “complicados”, o site OpenSSL.org só disponibiliza os códigos-fonte do OpenSLL para baixar. Vários sites independentes oferecem o download de versões compiladas para Windows (32 e 64 bits) do OpenSSL. Optei por baixar de https://indy.fulgan.com/SSL/ o arquivo openssl-1.0.2e-i386-win32.zip (apesar do meu Windows ser 64-bit, o GetRight é antigo e 32-bit).

Extraí do ZIP baixado o arquivo libeay32.dll atualizado da versão 1.0.2e, substituí esse arquivo na pasta do GetRight e… sucesso! Os downloads via HTTPS voltaram a funcionar rapidamente no GetRight.

#ficaadica … Espero que seja útil para mais alguém.

Sem Plug-insRemonta à época do velho navegador internet Netscape a ideia de se definir uma API aberta de plug-ins para integrar tratamento de conteúdos e mecanismos específicos ao navegador, como vídeos, animações, gráficos vetoriais, PDF, aplicações dinâmicas etc., de forma que o os mecanismos nativos do navegador se concentrassem em navegação e exibição de páginas da “World Wide Web”. Isso fazia muito sentido naqueles anos 90.

E até agora, praticamente todos os navegadores populares da atualidade, em sistemas operacionais desktop como Windows, Linux e MacOS, ainda implementavam a arquitetura de plug-ins multi-plataforma denominada Netscape Plugin Application Programming Interface (NPAPI).

Contudo, no longo caminho de mais de 20 anos de evolução desde os idos do Netscape até hoje, e mais intensamente nos últimos anos, a necessidade de plug-ins vem decrescendo. E a tendência iminente é chegar a zero!

Este artigo busca um retrospecto e referências dos principais aspectos, contextos e fatos envolvidos na decadência dos plug-ins de navegadores.

Recursos nativos

Os navegadores e os padrões da web vem evoluindo para incorporar cada vez mais recursos nativos para conteúdo dinâmico, rico e interativo. Citemos alguns marcos importantes:

Ajax e Rich Internet Applications (RIA)

Os padrões de JavaScript, CSS (estilos), DOM (modelo de objetos das páginas web para manipulação programática, especialmente via JavaScript) evoluíram muito para suportar cada vez mais interatividade e experiência rica (RIA) nas páginas web, com destaque par a popularização do Ajax e de frameworks de programação web poderosos como jQuery e AngularJS, só para citar alguns. Veja por exemplo meu artigo Ajax e RIA – Radar do mercado, de mai/2011.

HTML5

O padrão HTML5 (desenvolvimento iniciado em 2007/2008 e recomendação oficial do W3C concluída em 2014-10-28, especificação liderada por Ian Hickson da Google), suportado por todos os principais navegadores da atualidade, incluiu elementos nativos para incorporação de multimídia como vídeo, áudio e legendas, equações matemáticas (MathML), gráficos vetoriais (SVG), canvas gráficos 2D (bitmaps dinâmicos) e 3D (WebGL) etc. diretamente em páginas web. Isso dispensa o uso de plug-ins antigamente utilizados para integrar com visualizadores multimídia do sistema operacional como Apple Quicktime, Windows Media Player ou VNC.

Referências sobre HTML5 e seus recursos nativos:

PDF

Mozilla Firefox, Google Chrome e Microsoft Edge atualmente incluem visualizadores nativos de documentos PDF. Isso dispensa o plug-in integrando o Adobe Acrobat Reader. O Chrome oferece também recurso nativo para Salvar como PDF páginas web, ao invés de imprimir.

A Adobe alega que o Acrobat Reader garante melhor experiência do usuário e garante total compatibilidade com o formato PDF, evitando erros e problemas na utilização de recursos avançados. Vários navegadores, mesmo possuindo visualizador nativo, oferecem alternativa de configurar o Adobe Acrobat Reader para abrir documentos PDF. Veja também Change in support for Acrobat and Reader plug-ins in modern web browsers, na base de conhecimento de Ajuda da Adobe.

Extensões ou complementos nativos do navegador

O modelo de extensões ou complementos específicos para os principais navegadores, disponibilizadas para baixar em repositórios ou “lojas” (Mozilla Add-ons, Google Chrome Web Store etc.), permite incorporar novas funcionalidades e comportamentos específicos aos navegadores como componentes adicionais nativos.

A era dos dispositivos móveis

E veio a era dos dispositivos móveis (smartphones e tablets), memória RAM e telas menores que os desktops, interação fortemente baseada em toque direto na tela, e em sua maioria com sistemas operacionais Google Android ou Apple iOS.

Com as diferenças e limitações de hardware, sistema operacional e software dos dispositivos móveis, em geral os aplicativos para estes dispositivos são mais enxutos e especializados. A consequência é que os navegadores internet para smartphones e celulares em geral não suportam mecanismos de plugin.

Depois da versão 11.1 do Adobe Flash Player em set/2013, a Adobe deixou de publicar Flash Player para browser em dispositivos móveis Android. No iOS, em meio a alegações controversas desde uma declaração Thoughts on Flash de Steve Jobs em abr/2010, o Flash nunca foi suportado nos dispositivos móveis da Apple. No Android, o Flash Player deixou de ser disponibilizado no Google Play Store; em Android 4 e inferior, ele só pode ser instalado manualmente diretamente a partir do repositório arquivado da Adobe.

Referências:

A extinção do NPAPI

Microsoft

O Microsoft Internet Explorer 5.5 SP2, em ago/2001, já havia descontinuado o suporte ao protocolo NPAPI, deixando de suportar os plug-ins no estilo Netscape em favor da integração via tecnologia ActiveX, introduzida desde o Internet Explorer 3, conforme artigo #30341 da base de conhecimento de suporte Microsoft.

O novo navegador Microsoft Edge introduzido no Windows 10, por sua vez, descontinuou também o suporte à tecnologia ActiveX. Veja A break from the past, part 2: Saying goodbye to ActiveX, VBScript, attachEvent…, 2015-05-06, por Microsoft Edge Team, em Windows Blog.

Google

Em setembro de 2013, Justin Schuh, Engenheiro de Segurança e Planejador de Obsolescência de Plug-in da Google, publicou no Chromium Blog que a arquitetura anos-90 do NPAPI se tornara causa frequente de travamentos, falhas, incidentes de segurança e complexidade de código; por causa disso, Chrome iria gradualmente reduzir o suporte a NPAPI a partir do ano seguinte.

Como evidência de que a web estava pronta para essa transição, Schuh apresentou dados baseados nos dados anônimos de uso coletados pelo Chrome indicando que à época apenas seis plug-ins haviam sido usados por mais de 5% dos usuários no mês anterior: Silverlight (15%), Unity (9,1%), Google Earth (9,1%), Java (8,9%), Google Talk (8,7%) e Facebook Video (6%).

Em artigo de atualização de novembro de 2014, com os dados indicando que o uso de NPAPI continua em queda, a Google apresentou a contagem regressiva para o NPAPI, com todos os plugins passando a ser bloqueados por padrão em jan/2015, depois o suporte a NPAPI desabilitado por padrão em abr/2015 (o que efetivamente ocorreu no Chrome 42) e, por fim, o suporte a NPAPI sendo permanentemente removido do Chrome em set/2015 (Chrome versão 45). Assim ocorreu.

Mozilla

Em 8 de outubro de 2015, Benjamin Smedberg, gerente de engenharia de qualidade do Firefox na Mozilla, publicou um anúncio sobre plugins NPAPI no Firefox: a Mozilla pretende remover o suporte a plugins NPAPI no Firefox até o fim de 2016. Apenas o suporte a Adobe Flash deve ser mantido em caráter excepcional. Novas plataformas como o Firefox 64-bits para Windows já nascem sem suporte a plugins.

Similar à Google, Smedberg também justifica que com a evolução dos browsers e da Web, muitos recursos que antes requeriam plugins estão agora disponíveis nativamente. E que com a velha NPAPI, plug-ins são fonte de problemas, travamentos e incidentes de segurança para os usuários.

Firefox começou este processo vários atrás, com o mecanismo de ativação manual de plugins, permitindo que usuários ativem um plugin apenas quando necessário. Smedberg cita que a decisão da Mozilla espelha a de outros navegadores modernos, como Google Chrome e Microsoft Edge, que também removeram suporte a plugins legados.

Os remanescentes e os novos movimentos

Quatro plug-ins para incorporação de aplicações dinâmicas avançadas ainda merecem destaque: O Adobe Flash Player, o Java Plug-in, o Microsoft Silverlight e o Unity 3D. Vamos avaliar a situação e tendência para cada um deles.

Flash

O Adobe Flash é a única tecnologia complementar que ainda persiste, praticamente unânime, largamente utilizada para vídeos em fluxo (streaming), jogos e animações em sites web, com forte intenção de continuidade de suporte pelos principais navegadores.

A Google trabalhou em conjunto com a Adobe para integrar Flash Player built-in no Google Chrome, inclusive com atualizações automáticas, sem a necessidade do usuário baixar manualmente. O Flash Player embutido no Chrome utiliza Pepper Plugin API (PPAPI), um sistema mais novo e seguro de integração de plug-ins desenvolvido pela Google a partir de 2009.

O Internet Explorer 5.5 em diante passou a integrar o Flash Player via ActiveX (a instalação da Adobe fornecia um plug-in ActiveX especialmente para o IE) e, com o dessuporte do ActiveX no novo navegador Microsoft Edge, este passa a integrar o Flash Player nativamente, similar ao Chrome.

No artigo NPAPI Plugins in Firefox, de out/2015, a Mozilla informa que com a descontinuidade do NPAPI em 2016, o suporte a Flash será mantido como uma exceção, sem ainda revelar detalhes técnicos, mas anuncia que Mozilla e Adobe vão colaborar para melhorar a experiência do Flash no Firefox, incluindo estabilidade, desempenho e segurança.

Java

O uso de applets Java integradas ao navegador tem tido um universo mais especializado de aplicações. Tirando proveito do poder e abrangência de aplicações Java capazes de lidar com todo tipo de recurso no computador, no Brasil posso citar pelo menos dois grandes exemplos:

O plug-in Guardião de Segurança antifraudes durante as transações on-line (internet banking), desenvolvido pela GAS Tecnologia e utilizado por Banco do Brasil, Caixa Econômica Federal, Itaú e Santander, recorreu a applet Java para seus propósitos.

No Poder Judiciário, as aplicações web de processo eletrônico, como o Processo Judicial Eletrônico (PJe) instituído nacionalmente pelo Conselho Nacional de Justiça (CNJ), tem usado intensamente applet Java para acessar o certificado digital de pessoa no computador do usuário, para assinar digitalmente documentos eletrônicos e/ou para autenticação segura.

Com o fim do suporte a NPAPI já ocorrido no Chrome 45 (set/2015) e iminente no Firefox (dez/2016), que era o mecanimo de integração do Java plug-in nestes navegadores, a Oracle recomenda, no curto prazo, os usuários migrarem para Internet Explorer (Windows, que integra o Java plug-in via ActiveX) ou Safari (MacOS X, que ainda suporta NPAPI) para acessar aplicações Java através do navegador. E de forma mais definitiva, orienta os desenvolvedores a migrar as applets Java para aplicações Java Web Start, que podem ser disparadas através do navegador via protocolo Java Network Launching Protocol (JNLP), mas executam como aplicações desktop independentes no Rumtime Java SE e não interagem com o navegador depois de iniciadas.

Microsoft Silverlight

O Silverlight é uma tecnologia da Microsoft baseada em .NET Framework, que nasceu em 2007 aparentemente para concorrer com o Flash da Adobe, e que já teve sua descontinuidade anunciada na versão 5 com o fim do suporte pela Microsoft em 2021. Nesse meio tempo, um grande adepto do Silverlight foi o serviço Netflix de filmes e séries pela internet, que tirou proveito do controle de conteúdo protegido por direitos autorais (DRM) do Silverlight para reproduzir os vídeos em desktop Windows e MacOS. O Silverlight plug-in se integra ao navegador via NPAPI ou, no Internet Explorer, ActiveX. Como o Edge não suporta nenhuma das duas tecnologias de plug-in, o Silverlight não é compatível com o novo navegador da Microsoft.

Com a descontinuidade do Silverlight em 2021, a Netflix anunciou desde 2013 que pretende migrar para vídeo HTML5 com Premium Video Extensions nos computadores desktop. Em dispositivos móveis, smart TVs e consoles de jogos, a Netflix já possui seu próprio aplicativo dedicado e não depende de navegador.

Unity 3D

https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/

“As part of our plugin strategy, Mozilla and Unity are proud to jointly announce a close collaboration and an aligned roadmap that will enable Unity-based content to be experienced directly in the browser without plugins. As this technology continues to evolve, Unity has announced an updated roadmap for its Web Player technology.”

Conclusão

Com a popularização de marcos tecnológicos como Ajax, HTML5 e dispositivos móveis, o uso de plug-ins nos navegadores web perdeu fortemente o sentido. Acrescente-se a isso a extinção do suporte à velha arquitetura de plug-ins NPAPI por dois dos navegadores mais utilizados (Chrome e Firefox, além do IE e Edge) até 2016.

Somente o Adobe Flash, por sua grande popularidade em conteúdos web e experiência de usuários, tem sido tratado de forma excepcional pelos fornecedores de navegadores com estratégias para manter sua compatibilidade.

Desenvolvedores de aplicações internet e provedores de conteúdo devem repensar profundamente suas estratégias de integrar conteúdo e aplicações às páginas web mais adequadas aos tempos atuais, deixando para trás a era dos plug-ins.

Os bancos bresileiros perderam com fraudes financeiras perto de R$ 3 bilhões em 2012, segundo o blog de Fernando Nogueira da Costa, e R$ 2,3 bi em 2013, segundo o jornal Valor Econômico. A cada 14,8 segundos no país, ocorre uma tentativa de fraude, segundo indicador da Serasa Experian.

Como o crime vai atrás do dinheiro onde quer que ele transite, grande parte das fraudes envolvem a Internet, onde há o Internet Banking e as compras on-line. Atualmente, o cliente bancário pode fazer todo tipo de consultas, pagamentos, transferências e investimentos pela Internet, e ir a um caixa eletrônico apenas se precisar sacar dinheiro. Também o cartão de crédito é um dos meios de pagamento mais aceitos e utilizados nas compras pela Internet.

O crime bancário na Internet em geral envolve um meio do malfeitor obter os dados de conta ou cartão bancários (número, senha, códigos de acesso) de usuários de computador. Dois vetores comuns são programas maliciosos espiões (spyware, keylogger) instalados no computador para monitorar os dados digitados no acesso aos sites legítimos de banco, ou páginas falsas que imitam os sites legítimos de instituições financeiras e solicitam ao usuário preencher seus dados.

Já mostrei aqui no blog vários exemplos: Fraude “Bradesco” – cara de pau passo a passo, Anatomia de uma fraude: CitiBank, Anatomia de mais uma fraude: Santander. Mantenho também um grande conjunto de exemplos de fraudes coletados entre 2004 e 2010.

Uma boa ferramenta de Internet Security, constantemente atualizada, pode evitar a maior parte destes ataques, com um antivírus que detecte programas maliciosos quando tentam entrar no computador e um monitor de URLs web que detecte tentativas de acesso a endereços fraudulentos.

O Kaspersky Internet Security, além de antivírus e monitor de URLs, oferece desde 2013 um recurso específico chamado Safe Money que cria nos navegadores web (Chrome, Firefox, Internet Explorer) um ambiente protegido para distinguir e proteger o acesso a sites financeiros legítimos.

Ainda assim, quando uma fraude é muito recente, a ferramenta de Internet Security pode ainda não “conhecer” a assinatura do programa malicioso ou o endereço URL falso. E muitos usuários ainda não tem nenhum antivírus, ou usam antivírus antigos, desatualizados ou pouco eficazes.

Diante de um rombo de fraude da ordem dos bilhões anuais, os bancos investem em suas próprias soluções de prevenção a fraudes. No caso da Internet, a solução antifraude para e-Banking G-Buster, da empresa GAS Tecnologia é utilizada por quatro dos cinco maiores bancos de varejo, Banco do Brasil, Caixa Econômica Federal, Itaú e Santander, além de Banco Mercantil do Brasil, Banco da Amazônia, Banestes, Tecnocred/Unicred.

Os bancos em geral denominam a ferramenta G-Buster como Guardião. A exigência de instalação do Guardião por parte dos bancos para que se acesse o seu Internet Banking na web — o que dependendo da versão tem exigido requisitos como execução de um programa de diagnóstico e instalação, Java ativado, instalar um serviço no Windows e uma extensão ativada no navegador web — tem sido uma contramão no conceito de mobilidade de uso do banco, pois muitos computadores de acesso público à Internet não permitem esse tipo de instalação, por restrição de segurança.

Veja a seguir um exemplo do Firefox com as extensões dos guardiões de vários bancos instalados. Esta janela do Firefox está no ambiente protegido pelo recurso Safe Money do Kaspersky Internet Security, onde se pode ver também as extensões Consultor de URLs e Safe Money da Kaspersy.

Extensões do Firefox: Guardiões de bancos e ferramentas de proteção da Kaspersky.

Além disso, o Guardião do banco tenta monitorar todos os acessos web no navegador e sabe-se lá mais o que no computador, o que é uma questionável invasão da privacidade do usuário. E com frequência, tem sido recentemente apontado como causa de lentidão no acesso a sites. Eu mesmo já vi várias vezes o navegador “travado” e na linha de status a mensagem “Aguardando extensão Guardião …”.

Nos smartphones e tablets Android e iOS a história é um pouco diferente, pois os bancos disponibilizam aplicativos próprios para instalação, ao invés do acesso por um navegador web comum. Talvez essa seja a alternativa mais viável atualmente para efetiva mobilidade no acesso aos serviços bancários.

Ilustração do Heartbleed Bug do OpenSSL

Fazia tempo que não se ouvia falar tanto de uma vulnerabilidade de segurança tão séria e de tão grande impacto na Internet.

O Projeto OpenSSL mantém o software livre que implementa os protocolos Secure Sockets Layer (SSL v2/v3) e Transport Layer Security (TLS v1), incluindo biblioteca de criptografia forte, utilizado por aproximadamente dois terços de todos os sites seguros da Internet, aqueles com endereço iniciado por “https:” e com o famoso cadeado exibido nos navegadores web. Inclusive, em 2007 o OpenSSL foi homologado como padrão de segurança pelo governo dos Estados Unidos, FIPS PUB 140-2.

Um bug no recurso denominado Heartbeat (em português literal, Batimento Cardíaco) do protocolo TLS implementado no OpenSSL, apelidado “Heartbleed” Bug (Falha do “Sangramento no Coração”), pode revelar até 64 Kbytes da memória do servidor web para um cibercriminoso. A falha é muito grave porque, além de afetar boa parte dos sites seguros na internet rodando uma versão vulnerável do OpenSSL, é um bug fácil de explorar e não deixa rastros (ou seja, não há uma maneira garantida de saber se um servidor foi atacado através dessa falha nem que dados podem ter vazado).

O bug foi comunicado ao time de segurança da OpenSSL por Neel Mehta da Google Security, em 1º de abril (e não é mentira!). Afeta OpenSSL releases 1.0.1 até 1.0.1f e 1.0.2-beta1. Usuários (em geral, administradores de sites) da biblioteca OpenSSL afetados devem atualizar para a versão 1.0.1g, lançada em 7 de abril, ou recompilar OpenSSL com a opção -DOPENSSL_NO_HEARTBEATS. A série 1.0.2 está sendo corrigida no release 1.0.2-beta2. A versão 1.0.1 foi lançada em março de 2012, o que significa que sites e produtos que tenham adotado OpenSSL 1.0.1 com a extensão Heartbeat ativada podem ter estado vulneráveis nos últimos dois anos.

Entre os grandes sites de serviço afetados está Yahoo (incluindo serviços populares como Yahoo Mail, Flickr e Tumblr). A recomendação a todo usuário do Yahoo é alterar a senha da sua conta.

Os mais desconfiados recomendam que os usuários alterem também a senha de sua conta em outros sites, como Google, Facebook e Dropbox. Em nota no seu blog oficial, a LastPass divulgou que embora seu site tenha estado afetado pelo bug, os dados nas contas de seus usuários estão seguros porque são criptografados no computador cliente, antes de transitar na rede via SSL/TLS, com uma chave secreta do usuário que os servidores da LastPass nunca recebem.

Como uma das informações que pode ter vazado pelo Bug Heartbleed é a chave secreta do próprio certificado digital SSL do site https afetado, a recomendação dos especialistas para os administradores destes sites é que revoguem o certificado utilizado no site até o dia em que corrigirem a vulnerabilidade, e emitam um novo certificado. De fato, um levantamento do SANS Institute no InfoSec Handlers Diary Blog mostra que entre os dias 7 e 12 de abril, houve um crescimento substancial de certificados SSL revogados em 16 grandes autoridades certificadoras (CAs / ACs).

Grandes empresas fornecedoras de produtos para Internet, como F5 Networks e Cisco, também divulgaram alertas de seguranças em seus produtos que utilizam OpenSSL.

O blog do fornecedor de antivírus e produtos de segurança Kaspersky indica uma ferramenta simples que testa on-line se um servidor web https tem a vulnerabilidade Heartbleed ou não, basta digitar o endereço do site:
https://filippo.io/Heartbleed/ – Test your server for Heartbleed (CVE-2014-0160).
A LastPass também lançou um serviço de verificação:
https://lastpass.com/heartbleed/ – LastPass Heartbleed checker

O blog Fox-it ainda indica uma extensão para o navegador Google Chrome que exibe uma alerta se você acessar um site afetado pelo bug Heartbleed:
Chrome Web Store – Chromebleed

Referências:

Depois de adotar de vez o Google Chrome como meu navegador principal, venho atualizando o artigo Extensões para os navegadores Firefox e Chrome à medida que vou descobrindo e testando extensões úteis.

Atualmente, a listagem de aproximadamente 50 extensões para Mozilla Firefox e/ou Google Chrome, organizadas por temas nas seções de Uso geral e de Ferramentas técnicas, está em formato tabular conciso. O artigo foi atualizado hoje com algumas novas extensões e atualizações/correções de links.

Ainda há algumas extensões disponíveis para Firefox para as quais sinto falta de equivalente no Chrome, especialmente a integração com um programa gerenciador de download (Flashgot no Firefox) e opções avançadas de configuração e personalização de aparência e comportamento de abas (Tab Mix Plus no Firefox).

Logomarca do Google Chrome Cansado da eterna lentidão do Firefox ao iniciar, com a qual eu vinha convivendo há muito tempo, eu já tinha instalado e usava eventualmente o Google Chrome toda vez que eu estava com pressa (ou seja, com frequência).

Com o tempo, me familiarizei e gostei do Chrome, que inicializa rápido, instala e desinstala extensões sem precisar reiniciar o navegador, e é perfeitamente compatível com quase todos os sites. Além disso, o Chrome já vem com muitas ferramentas nativas poderosas voltadas para o desenvolvedor web.

Ideologicamente, o Mozilla Firefox é um software livre, enquanto o Google Chrome é um software proprietário gratuito mantido e distribuído pela empresa Google, embora baseado no projeto de software livre Chromium. Deixando ideologias de lado, desisti da lentidão do Firefox e agora tornei o Chrome meu navegador padrão.

Nem tudo é perfeito

O Chrome ainda tem sutis detalhes que me incomodam. Por exemplo, eu gostava da comodidade que consegui, por meio da extensão do Firefox Tab Mix Plus, de poder abrir páginas de favoritos ou histórico sempre em uma nova aba, clicando normalmente com o botão principal do mouse. No Chrome, para abrir em nova aba, só com o mecanismo padrão que é pressionar a tecla Ctrl ao clicar com o botão principal, ou utilizar o botão do meio no mouse (se houver). Não encontrei nenhuma extensão que permitisse o comportamento alternativo que eu desejava.

A impressão de página, embora ofereça a bem-vinda opção nativa de salvar em PDF, só recentemente passou a permitir imprimir plano de fundo (cores e imagens do background), configurar margens e inclusão de cabeçalho e rodapé. Mas ainda não permite configurar zoom nem as informações em cada parte do cabeçalho e rodapé. E para imprimir apenas um intervalo de páginas ou seleção, só pela caixa de diálogo imprimir do sistema, sem passar pelo Print Preview.

Além disso, ainda existem uns poucos sites que não funcionam perfeitamente no Chrome. Eu sei que em geral a culpa é de uso recursos errados ou fora do padrão HTML, CSS ou JavaScript do próprio site, mas ainda assim é um transtorno. No fundo, ainda existem também raros sites (em geral em ASP ou ASPX) que não funcionam bem nem no Chrome e nem no Firefox, só no Internet Explorer. Acho que é por coisas como essa que existem os que praguejam contra a Microsoft…

Espero que versões futuras do Chrome melhorem as deficiências remanescentes que apontei aqui.

Extensões

Navegador mudado, o próximo passo foi personalizá-lo com extensões. Como resultado disso, fiz uma profunda atualização na página que mantenho sobre extensões de navegador, antes uma lista só para Firefox, agora se tornou uma tabela com opções para Firefox e para Chrome.

Muitas extensões que eu indico estão disponíveis tanto para Firefox quanto para Chrome. Em outros casos, existem extensões distintas mas com funcionalidade e recursos equivalentes ou similares. Mas existem as que não encontrei até o momento correspondente no outro navegador.

Histórico de uso de navegadores web por StatCounter

Enfim

Com navegador e extensões, eu agora aumento a estatística de uso que já tornou o Google Chrome o navegador mais usado no mundo. Mas o Firefox continua instalado, agora como meu navegador secundário.

O Google Chrome é um navegador rápido e eficiente, cada vez mais completo e , segundo StatCounter, mês passado se tornou o navegador mais utilizado no mundo.

Porém, pelo menos um recurso dele me incomodava: o visualizador nativo de PDF. Ele não é tão robusto e compatível como o Adobe Reader, algumas vezes a visualização falhava, e em geral eu não conseguia salvar uma cópia do arquivo localmente.

Mas acabo de descobrir que é possível desativar o visualizador nativo de PDF do Chrome e, com isso, ele passa a utilizar o plugin do Adobe Reader que estiver instalado no computador. São dois passos simples:

  1. Digite about:plugins na barra de endereço do Google Chrome, e tecle Enter.
  2. Selecione Desativar embaixo da entrada “Chrome PDF Viewer”.

Pronto.

Agora, quero aprender como configurar o Chrome para abrir novas abas automaticamente (sem ter que pressionar Ctrl) em determinadas situações, por exemplo ao abrir um Favorito e ao fazer uma nova pesquisa no Google, similar ao que a extensão Tab Mix Plus permite no Firefox. Alguém sabe?

Enquanto eu atualizava as versões de software no artigo PDF Livre com (ou sem) o Ghostscript (revisão 21), descobri dois problemas de compatibilidade.

Por sorte, ambos são contornáveis, conforme explico a seguir.

Aceleração por hardware no Firefox 4

Um comentário sobre o anúncio do PDFCreator 1.2.1, no Blog da PDFForge, explica um problema na aceleração por hardware do navegador web Mozilla Firefox 4 que afeta as impressoras virtuais PDF.

Sintomas facilmente perceptíveis são que o arquivo PDF gerado fica bem maior e o texto não fica editável.

De fato, este problema está confirmado no site de suporte do Mozilla Firefox. Eu também o constatei, no Firefox 4.0.1 com as impressoras virtuais PDF (doPDF, PDFCreator, FreePDF etc.).

Para solucionar o problema, desative a aceleração por hardware no Firefox 4, que vem ativada por padrão:

  1. Menu Firefox > Opções.
  2. Painel “Avançado”.
  3. Aba “Geral”.
  4. No grupo “Navegação”, desmarque a opção “Quando disponível, usar aceleração por hardware”.
  5. Dê “OK”.
  6. Reinicie o Firefox.

Este problema foi documentado em um novo tópico 4.1 do artigo.

Detecção do Ghostscript 64 bits no FreePDF

Esta revisão 21 do artigo também foi atualizada com um novo tópico 3.1 sobre a detecção e configuração do executável coreto do Ghostscript 64 bits no FreePDF.

Em meu computador com apenas o Ghostscript 9.02 64-bits instalado, o FreePDF detectou incorretamente a DLL C:\Program Files\gs\gs9.02\bin\gsdll64c.dll, ao invés do executável C:\Program Files\gs\gs9.02\bin\gswin64c.exe. Tive que configurar manualmente o executável correto, nas opções do programa.

Para verificar e corrigir o caminho do Ghostscript, siga os seguintes passos:

  1. Execute o programa FreePDF, pelo menu iniciar do Windows.
  2. Escolha o menu Editar & Opções.
  3. Escolha a opção (em forma de link) “Run Admin Config”.
  4. Em “Localização das pastas”, verifique o que está preenchido em “Caminho do Ghostscript”.
  5. Para Ghostscript 64 bits versão 9.02, o caminho do executável correto deve ser
    C:\Program Files\gs\gs9.02\bin\gswin64c.exe. Para o Ghostscript
    32 bits, o executável deve ser gswin32c.exe.
  6. Acione o botão “Salvar” e, em seguida, feche a janela de opções e o programa.

Este problema de detecção não ocorreu com o Ghostscript 32 bits, com o qual o FreePDF detecta corretamente o executável gswin32c.exe.

Por fim, a revisão do artigo contempla o lançamento do Ghostscript 9.02, doPDF 7.2.367 e PDFCreator 1.2.1, atualizando os links de download do Ghostscript e numeração, datas de lançamento e tamanhos das novas versões de impressora PDF.

Recentemente recebi divulgação do novo ambiente de desenvolvimento MyEclipse G, uma lançamento da Genuitec (produtora do MyEclipse) e Skyway Software que reúne ferramentas de desenvolvimento essenciais para as plataformas, frameworks e serviços de aplicações da Google.

MyEclipse G - Recursos

Fonte: MyEclipse G.

Observando a descrição do produto, pude refletir sobre a imensidão da abrangência de tecnologias que o Google tem disponibilizado, em pelo menos três grandes frentes:

  • Desenvolvimento de aplicações web: Frameworks como o Google Web Toolkit (GWT) (a home-page em português parece desatualizada, falando do GWT 1.7, enquanto a em inglês já destaca o GWT 2.3 mais recente) e Google Guice. O projeto GWT, além de ampla documentação, oferece para download: GWT SDK, com as bibliotecas essenciais e compilador que você precisa para escrever aplicações web; o Google Plugin for Eclipse que inclui no IDE Eclipse suporte para projetos GWT e GAE, além de uma versão simplificada do GWT Designer; Speed Tracer, uma extensão para o navegador Google Chrome que permite pontuar problemas de desempenho em aplicações web; e o GWT Designer standalone (full), um ambiente de desenho de Java GUI poderoso e bidirecional para criação visual de interfaces de usuário, assisência de layout e geração automática de código GWT.
     
  • Infraestrutura para execução de aplicações web: Google App Engine (GAE) permite que você execute seus aplicativos da web na infraestrutura do Google.
     
  • Plataforma para dispositivos móveis: Android: camada de software para celulares e tablets que inclui um sistema operacional, middleware e aplicações. O Android SDK, disponível no portal Android Developers, provê ferramentas e APIs necessárias para se iniciar o desenvolvimento de aplicações para a plataforma Android usando a linguagem de programação Java. Há também o Android Development Tools (ADT) Plugin for Eclipse IDE. As muitas milhares de aplicações disponíveis para Android, boa parte delas gratuitas, ficam disponíveis no Android Market (assim como o iPhone tem o Apple Store).

Isso fora o navegador web Google Chrome (dica: para obter o instaldor offline standalone, acrescente o parâmetro &standalone=1 na página de download) e o sistema operacional Google Chrome OS, baseado no sistema operacional Linux e totalmente voltado para Internet (Já ouviu falar no Chromebook?). Ambos são desenvolvidos através do projeto de software livre Chromium.

Todas as ferramentas oferecem ampla documentação. O Google ainda aproveita seus canais de mídia para divulgar informação, como os blogs no Blogger — GWT blog, GAE blog, Google Mobile blog, Official Google Blog, blog oficial Google Brasil — e o canal Google Developers de vídeos no Youtube. E ainda realiza o grande evento anual Google I/O.

Mesmo com a Microsoft tendo comprando a Skype em seu maior acordo de aquisição, por US$ 8,5 bi em maio último, estou achando que agora é a vez da Google “dominar o mundo” do software na era da Internet.

O instituto Gartner atualizou recentemente seu relatório “MarketScope for Ajax Technologies and RIA Platforms”. Aproveito para apresentar o resumo dessas tendências e alguns diagramas explicativos e estatísticas sobre Ajax e RIA.

Introdução

A técnica de interação e troca de dados assíncrona entre o cliente e o servidor web, identificada pelo acrônimo Ajax — Asynchronous Javascript And XML –, termo introduzido pela Adaptive Path em 2005, se populariza cada vez mais nas aplicações web e tem contribuído significativamente para melhorar a interatividade e experiência do usuário, oferecendo respostas imediatas à interação do usuário.

Vão se multiplicando as alternativas de bibliotecas e frameworks para desenvolvimento de aplicações web com suporte a Ajax, visando tornar o uso da técnica mais fácil, organizado e produtivo na construção de aplicações, de forma cada vez mais transparente, integrada e sistematizada.

Também têm se popularizado o uso de plataformas tecnológicas para web visando RIA — Rich Internet Applications –, termo introduzido pela Macromedia (Adobe) em 2002, que significa uma interface com usuário web mais rica — em componentes e comportamentos — e responsiva (resposta imediata, sensível ao contexto), similar a aplicações desktop.

As plataformas RIA podem ter como base um runtime específico, incorporado ao navegador web cliente através de plug-ins, ou se beneficiar do avanço da sofisticação das técnicas e componentes nativos baseados em Ajax.

O diagrama de blocos a seguir correlaciona esquematicamente RIA, Ajax e DHTML.


Créditos: Márcio d’Ávila, 2008-2011.

RIA

Enquanto as aplicações gráficas Cliente/Servidor trouxeram riqueza à experiência de usuário que não havia no ambiente mainframe, plataformas RIA fazem o mesmo em relação às aplicações web primitivas.


Créditos: Uday M. Shankar, Adobe Flex – an introduction, mar/2008 (em Slideshare).

Segundo estatísticas do site Stat Owl, levando em consideração os diversos sistemas operacionais e navegadores web existentes, em setembro de 2008 o suporte runtime instalado para Adobe Flash já era 97,48% (verdadeiro padrão de facto), Java 81,37% e Microsoft Silverlight apenas 17,64%. Em abril de 2011, estas mesmas plataformas evoluiram para percentuais de penetração 95,65%, 77,31% e 63,92% respectivamente.

Percebe-se, portanto, uma notável expansão do suporte à tecnologia RIA da Microsoft no período medido, enquanto o pequeno decréscimo de Flash pode ser explicado pela ausência de suporte ainda existente em alguns ambientes operacionais de dispositivos móveis que vem se popularizando, como Apple iOS (iPhone e iPad).


Fonte: Stat Owl, Rich Internet Application Market Share – RIA Market Penetration and Global Usage comparing Adobe Flash, Microsoft SilverLight and Java, set/2008 a abr/2011.

2009

Em 2009, o mercado ainda estava incipiente e muitos produtos foram considerados pelo Gartner em tecnologias Ajax e plataformas RIA, dez deles classificados com tendência positiva ou muito positiva.

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe Plataforma Flash RIA ($/L)
Backbase Ajax framework Ajax ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Ext JS JavaScript, Ext GWT Ajax ($/L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartCli, GWT Ajax/RIA (L/$)
JackBe Ajax framework Ajax ($)
jQuery JavaScript Ajax Ajax (L)
Magic Software uniPaaS RIA ($)
MB Tech Bindows Ajax ($)
Microsoft Silverlight, WPF RIA ($)
Nexaweb E.Web Suite Ajax/RIA ($)
Oracle ASF Faces JSF Ajax ($)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sun Microsystems JavaFX RIA (L/$)
Telerik para .NET Ajax ($)
Tibco Software GI Ajax (L)
Yahoo YUI toolkit Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2009-12-31, reproduzido por Adobe (PDF).

2011

Atualizando a pesquisa em 2011, o mercado ainda se mostra em evolução, com oito produtos apontados como tendência positiva ou muito positiva.

Comparando com 2009, Adobe Flash e Microsoft Silverlight tiveram sua tendência refreada (Positivo), enquanto a versátil biblioteca livre JavaScript jQuery obteve maior evidêcia (Muito Positivo).

Saíram da lista Magic Software uniPaaS e MB Tech Bindows; Ext JS se tornou Sencha, enquanto Sun foi incorporada à Oracle; e entram agora Canoo Engineering RIA Suite (UltraLightClient framework baseado em Java EE) e Vaadin (framework RIA Java baseado em GWT widgets e extensa coleção de componentes UI).

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe ⇓ Plataforma Flash RIA ($/L)
Backbase ⇓ Portal Ajax ($)
Canoo Engineering UltraLightClient RIA ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartClient, GWT Ajax/RIA (L/$)
jQuery jQuery JS lib Ajax (L)
Microsoft ⇓ Silverlight, WPF RIA ($)
Oracle ASF Faces JSF, JavaFX Ajax/RIA (L/$)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sencha Ext JS, Ext GWT Ajax ($/L)
Telerik ASP.NET Ajax Ajax ($)
Tibco Software General Interface Ajax (L)
Vaadin Vaadin RIA RIA (L)
Yahoo YUI Library Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2011-03-31, reproduzido por Microsoft.

Conclusão

Tecnologias RIA e Ajax têm se tornado cada vez mais difundidas e maduras.

Podemos inferir, pela evolução do Gartner MarketScope, que plataformas RIA com componentes ricos nativos (Ajax e DHTML) — boa parte delas baseadas em frameworks livres e Java server/EE) — tem ganhado força, em detrimento daquelas baseadas em runtime próprio.

É provável que o emergente padrão HTML 5, quando se estabelecer, reforce ainda mais esse movimento.

Para saber mais:

Próxima Página »