Muitos sites prejudicam a liberdade dos usuĂĄrios enviando programas JavaScript nĂŁo livres para o navegador do usuĂĄrio. Convidamos voluntĂĄrios para desenvolver extensĂľes de navegador livres para substituir o JavaScript enviado por sites especĂficos (veja as listas abaixo).
Nossa primeira resposta ao problema do código JS não livre foi desenvolver o LibreJS, que permite que os navegadores baseados no Firefox detectem e bloqueiem esse código. Isso nos protege de executar programas JS não livres de um site, mas não faz com que o site realmente funcione. Escrever uma extensão para ele, como propomos aqui, conseguiria isso. TambÊm evitaria o risco inerente à execução de software diretamente do site de outra pessoa.
TambĂŠm poderĂamos resolver o problema convencendo webmasters a corrigir seus sites para funcionarem sem o cĂłdigo JavaScript, mas este convencimento se mostra ser muito difĂcil, jĂĄ que a maioria deles nĂŁo entende o problema, muito menos se preocupa com ele. Talvez recomendar o uso dessas extensĂľes em seus sites os convença a prestar atenção no suporte a acesso nĂŁo JavaScript.
Portanto, convidamos voluntĂĄrios a escolher um site e escrever uma extensĂŁo de navegador para fazer esse site funcionar, supondo que o LibreJS bloqueie o JavaScript nĂŁo livre enviado pelo site. Para ter uma ideia de como fazer isso, vocĂŞ pode conferir exemplos de extensĂľes de site jĂĄ existentes.
A primeira coisa a fazer ĂŠ examinar rapidamente as licenças dos arquivos JavaScript no site. Alguns deles podem ser na verdade software livre. Se parte do cĂłdigo JS enviado pelo site for livre, vocĂŞ pode incluĂ-lo em sua extensĂŁo, alterando-o conforme necessĂĄrio.
Em seguida, verifique se o site publicou uma API. Nesse caso, ĂŠ melhor se comunicar usando a API, se isso puder fazer o trabalho. Caso contrĂĄrio, vocĂŞ precisa usar os recursos de depuração do navegador para descobrir quais dados e comandos o cĂłdigo JavaScript envia para o servidor â na verdade, sua API nĂŁo documentada.
A maneira de evitar a violação de direitos autorais no código JavaScript do próprio site Ê não estudar o código. Nenhuma parte, nem mesmo uma vez. Se você não leu o código, significa que não copiou nada. Olhe apenas para as licenças.
Essas extensĂľes devem ser honestas â elas nĂŁo devem âtrapacearâ. Se o JavaScript do site pede informaçþes ao usuĂĄrio e as envia, a extensĂŁo deve solicitar essas informaçþes ao usuĂĄrio e enviĂĄ-las. Se o site solicitar Ă pessoa (1) para marcar uma caixa para concordar com XYZ, a extensĂŁo deve solicitar a para marcar uma caixa para concordar com XYZ. A extensĂŁo deve passar fielmente todas as respostas que o usuĂĄrio inserir. Se o site enviar um cookie, a extensĂŁo deve permitir que seja tratado de acordo com as configuraçþes do navegador para cookies.
Ă impossĂvel implementar segurança real por meio do cĂłdigo JS enviado ao usuĂĄrio, mas o que quer que o site faça para tentar implementar algo semelhante Ă segurança, a extensĂŁo deve cumprir fielmente. Em particular, se o site solicitar que o usuĂĄrio responda a perguntas para provar que nĂŁo ĂŠ um robĂ´, a extensĂŁo deve mostrar as mesmas perguntas, obter as respostas e enviĂĄ-las em â permitindo que a pessoa demonstre que ĂŠ humana.
O librecaptcha de Jeff Carpenter pode ser útil se o site enviar um captcha. Começaremos um projeto para convertê-lo para JS e precisaremos de voluntårios para isso, então, por favor, escreva-me se estiver interessado em ajudar.
Enquanto isso, se o cĂłdigo JS do site coleta informaçþes clandestinamente, ĂŠ admirĂĄvel impedir essa espionagem. Uma ideia ĂŠ perguntar ao usuĂĄrio qual resposta retornar â por exemplo, âO site estĂĄ tentando descobrir sua localização. O que vocĂŞ quer dizer?â â, mas seria bom evitar perguntar ao usuĂĄrio com frequĂŞncia ou repetidamente.
Quando vocĂŞ tiver uma extensĂŁo funcionando, envie uma cĂłpia para o Projeto GNU em <js-extensions@gnu.org>. VocĂŞ tambĂŠm pode registrĂĄ-la na lista de extensĂľes do Firefox, se tiver estĂ´mago para executar o software nĂŁo livre para fazer isso.
Criamos uma lista de discussĂŁo, js-extensions-discussion, onde vocĂŞ pode conversar com outras pessoas que estĂŁo desenvolvendo extensĂľes.
Assim que as coisas estiverem acontecendo, gostarĂamos de configurar um repositĂłrio no savannah.gnu.org onde colocaremos as extensĂľes que estĂŁo funcionando. Para fazer isso, precisamos de um ou dois voluntĂĄrios para gerenciĂĄ-lo. Esperamos que essa tarefa nĂŁo seja muito trabalhosa; a razĂŁo para ter dois ĂŠ para redundância.
TambĂŠm poderĂamos ter um projeto Savannah que vocĂŞ poderia (se desejar) usar para desenvolver uma extensĂŁo; isso tambĂŠm exigiria voluntĂĄrios para cuidar dele.
Aqui estĂŁo algumas sugestĂľes de sites para os quais escrever extensĂľes. (Alguns sĂŁo comerciais e outros nĂŁo â essa distinção nĂŁo ĂŠ significativa para esta questĂŁo.) No entanto, se algum outro site lhe interessa mais, vĂĄ aonde seus interesses o levarem.
O objetivo inicial Ê lidar com o acesso anônimo. Lidar com o login e o acesso conectado Ê ir alÊm da obrigação de curto prazo.
Como exemplo, veja esta entrada para o manual do GNU Emacs. Observe na pĂĄgina o tĂtulo âFind a copy in the libraryâ. Sem executar o JavaScript privativo, o Ăşnico conteĂşdo sob esse tĂtulo ĂŠ um GIF giratĂłrio de carregamento e o texto âFinding libraries that hold this itemâŚâ As informaçþes reais de disponibilidade da biblioteca para o livro fornecido estĂŁo ausentes.