Remonta à é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.
- Saying Goodbye to Our Old Friend NPAPI, 2013-09-23, por Justin Schuh, Engenheiro de Software do Projeto Chromium (software livre que é base para o Google Chrome), em Chromium Blog.
- Update on NPAPI Deprecation, 2014-05-27, por Justin Schuh, em Chromium Blog.
- The Final Countdown for NPAPI, 2014-11-24, por Justin Schuh, em Chromium Blog.
- NPAPI deprecation: developer guide, em The Chromium Projects > For Developers.
- Conteúdo baseado em plug-in não funciona no Google Chrome, em Ajuda do Google Chrome (em português).
- Java e o Browser Google Chrome, em Java.com FAQ (em português).
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
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.