ScriptJäger - NoScripts para Chromium



  • Sobre

    Faz um tempo comecei a fazer uma extensão para mim para bloquear scripts e frames.

    No Opera Presto eu sempre usei o ScriptWeeder que era um NoScripts mais fácil e rápido de usar.

    Eu sentia falta de ter esse poder no Vivaldi para bloquear trackers e outros scripts inúteis, então resolvi criar minha própria extensão. Comecei completamente do zero, apenas usando algumas mecânicas e seguindo o estilo do ScriptWeeder.

    Então criei o ScriptJäger, uma extensão que segue o objetivo do ScriptWeeder, ser um NoScripts para bloquear e permitir somente os scripts que deseja mas com flexibilidade e facilidade de uso.

    Diferenças

    Uma diferença é que minha extensão foi criada do zero para ser ultra rápida. Antes mesmo de começar a escrever qualquer linha de código comecei com planejamento e hipóteses. Somente quando criei um design que me parecia ter flexibilidade e rapidez para gastar o mínimo de tempo para executar foi que iniciei a criar o código.

    O resultado é uma extensão que consegue usar menos RAM que a própria página de extensões do Chromium, ou metade que o uBlock Origin. O gasto de CPU é ainda menor, mal saindo de 2% e somente durante o carregamento das páginas. Usando o contador do tempo de carregamento da página disponível nas ferramentas de desenvolvedor do Chromium minha extensão reduziu o tempo em 1 segundo no vivaldi.com com as configurações padrões.

    Um dos truques da velocidade e baixo uso dos recursos é que o ScriptJäger não necessita de listas de bloqueios, ele faz tudo automático. Ele usa algoritmos rápidos para determinar se o script parece ser útil para permiti-lo (se no modo relaxado). Durante o desenvolvimento também faço benchmarking de partes do código, faço algumas versões e uso a mais rápida.

    Se o ScriptWeeder se dizia o NoScript com esteroides, então o ScriptJäger é o ScriptWeeder com esteroides.

    Observações

    Obviamente lembre-se que minha extensão não é um bloqueador de propagandas mas de scripts e frames, é claro que o resultado acaba sendo quase que idêntico já que são scripts e frames que carregam as propagandas. No caso, como já disse, eu recomendo usar um arquivo hosts para bloquear rastreadores e propagandas.

    Por enquanto só está disponível em Inglês e a página de preferências tem várias limitações.

    Quaisquer mudanças feitas durante o modo privado só duram durante o modo privado, quando a última janela privada é excluída todas as regras criadas ou modificadas no modo privado somem.

    A extensão verifica por atualizações a cada 24 horas baixando o arquivo manifest.json do GitHub, caso uma atualização apareça você será notificado.

    Uso

    O uso é quase que restrito à popup que você abre clicando no botão que aparece na barra de endereços.

    A primeira linha é o escopo, é onde a regra se aplica, são quatro opções:

    • Global
      A regra se aplica a todas as páginas e sites
    • Domínio
      A regra se aplica àquele domínio e seus sub-domínios.
      Por exemplo, se fosse neste fórum a regra se aplicaria a qualquer site sobre o domínio vivaldi.net.
    • Site
      A regra se aplica somente ao sub-domínio.
      Por exemplo, neste fórum a regra seria para forum.vivaldi.net, mas não para outro sub-domínio como www.vivaldi.net ou blogs.vivaldi.net
    • Página
      A regra se aplica somente à página atual.

    A segunda linha define a política de bloqueio.

    • Block All (Bloquear Tudo)
      Bloqueia todos os scripts externos sem exceção. Scripts inline ainda são executados. Ainda vou adicionar a opção para bloqueá-los.
    • Filtered (Filtrado)
      Somente permite scripts que vêm do mesmo domínio que a página atual e os que foram permitidos em alguma lista branca de algum escopo que afete o site.
    • Relaxed (Relaxado)
      Igual ao relaxado mas também permite scripts que seguem algumas regras na URL.
    • Allow All (Permitir Tudo)
      A extensão só permite tudo sem levar nada em consideração, é como se ela não existisse.

    Abaixo disso vem a lista de scripts bloqueados ou carregados, aqueles que estão marcados foram carregados, os outros não. Clicando sobre a linha você permite ou bloqueia o script, você precisa recarregar a página sem cache (Ctrl+F5) para ter efeito.

    O número no canto direito de cada linha é o número de scripts carregados ou bloqueados daquele site, clicando no número abre uma lista com o nome de todos os scripts, passando o mouse você pode ver todo o endereço do script e clicando você pode abrir ele em uma nova guia.

    Download



  • @An_dz

    Seria um uso muito avançado para mim. Teria eu que começar a compreendê-lo da base. Ficarei atento ao desenvolvimento das discussões neste tópico.

    Perguntas cretinas podem ser consideradas, acredito. Vai começar a chuva:

    1-Disponível para todas as plataformas?
    2-Freeware?
    3-Há uma réplica deste tópico para o fórum geral, em inglês?
    4-Algo a ver com os Rolling Stones (Jagger/Jäger) ?

    Meus parabéns, votos de ótimo êxito. Como sempre, exposição clara, bem concatenada e abrangente.



  • @An_dz Bela iniciativa, embora esteja iniciando agora em Python e, ainda fazendo programas simples (com tela preta, cálculos) me agrada ver coisas assim. Vou dar uma testada na extensão, uma dúvida qual linguagem você usou? E qual editor de textos (Sublime?)?



  • @Nlope said in ScriptJäger - NoScripts para Chromium:

    qual linguagem você usou?

    JavaScript, HTML e CSS. Que são basicamente as únicas que dá para usar para fazer uma extensão.

    E qual editor de textos (Sublime?)?

    SublimeText, claro. O Sublime é como o Vivaldi, não é open-source mas até o pessoal do Linux dá o braço a torcer :D

    @Quinca71 said in ScriptJäger - NoScripts para Chromium:

    Seria um uso muito avançado para mim. Teria eu que começar a compreendê-lo da base.

    A ideia é que o uso seja fácil. A página de configurações não funciona muito bem mas a interface da popup -- a principal -- funciona bem. A configuração padrão também é no modo relaxado que normalmente consegue bloquear o lixo sem estragar a página, às vezes precisa mexer mas é só permitir os corretos, normalmente o nome da página ou do script já dizem se é para ads ou tracker.

    1-Disponível para todas as plataformas?

    Sim, é para Chromium. Desde que rode um navegador baseado nele deve funcionar. Chrome, Vivaldi, Opera, Yandex, qualquer um.

    2-Freeware?

    Sim, licença BSD-2.

    3-Há uma réplica deste tópico para o fórum geral, em inglês?

    Ainda não.

    4-Algo a ver com os Rolling Stones (Jagger/Jäger) ?

    Não, Jäger é caçador em alemão, logo o nome é Caçador de Scripts. O símbolo da extensão é o Jägerhut (chapéu do caçador) um símbolo forte da Oktoberfest. E a pronúncia é bem diferente.



  • @An_dz Já estou utilizando a extensão e é muito leve aqui não me afetou em nada quanto a desempenho, até baixei o código-fonte para dar uma estudada :)



  • @Nlope Se quiser eu criei uma página explicando, em inglês, o formato dos objetos que contém as preferências.

    https://github.com/An-dz/ScriptJaeger/wiki/Dev:-Preferences

    Você também pode exportar elas como texto na página de preferências da extensão, assim você pode entender melhor a função saveLoadRule.

    O formato foi criado para velocidade, para ter o mínimo de iterações necessárias na média.



  • Parabéns meu querido, ganhou um fav no github! Muito bom :D



  • E qual editor de textos (Sublime?)?

    SublimeText, claro. O Sublime é como o Vivaldi, não é open-source mas até o pessoal do Linux dá o braço a torcer :D

    Sublime é muito bom se não o mais completo é um dos, o Brackets também é um ótimo editor.



  • @An_dz adiciona um botão pra desativar a extensão mais facilmente, por exemplo eu tô num determinado site e quero desativar por algum motivo para isso sempre tenho que ir no Menu Vivaldi > Extensões > Desativar ou, Clica no Botão Direito no Ícone da Extensão > Opções ou Gerenciar Extensões > Desativar, para ficar mais fácil a opção deveria ser adicionada no segundo exemplo.
    ScriptJãger



  • É sempre bom ter opção, qual a diferença técnica entre ele e o Umatrix? Umatrix é visualmente mais fácil de entender.



  • ModEdit: tópico movido.



  • @Nlope Sim, já está na lista para adicionar. Só preciso de um tempo para fazer.

    @Havokdan Não sei, não vi o código do uMatrix. Mas o que posso listar da minha extensão:

    • Mais level
    • Não usa listas de bloqueio
      A extensão "calcula" se o recurso parece útil ou não
    • Você pode ver uma lista dos elementos bloqueados
      Assim você sabe que não precisa desbloquear o site d4jdij33kf.cloudfront.net porque ele está tentando baixar o script ads.js
    • Só verifica scripts, frames e conexões websocket
      O uMatrix verifica tudo.
    • O controle é só por sites
      Ou você bloqueia ou desbloqueia o site, não há como desbloquear scripts mas permitir frames por exemplo


  • @An_dz Obrigado pela resposta.



  • @An_dz Thanks, acho que até pareceu estúpido da minha parte :P



  • @Nlope Não, é uma boa ideia, mas alguém no fórum italiano já tinha pedido antes. E também eu uso a navegação privada quando não quero que salve a regra e quero permitir tudo ou quase tudo.





  • Um dúvida, que apesar de fugir do escopo do tópico, não acho que mereça um só para isso, Vivaldi vai ter sua própria loja de extensões?



  • No momento acho desnecessário uma loja de aplicativos já que a maioria das extensões da chrome web store são compatíveis com o Vivaldi, acho que mais para frente isto pode vir a acontecer. (opinião própria)


Log in to reply
 

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.