Greasemonkey: Nightly não consegue analisar o padrão de correspondência

Criado em 12 fev. 2017  ·  11Comentários  ·  Fonte: greasemonkey/greasemonkey

o script abaixo falha com o seguinte erro: Error: <strong i="5">@match</strong> could not parse pattern

// ==UserScript==
// <strong i="8">@name</strong>        match test
// <strong i="9">@namespace</strong>   https://github.com/an-electric-sheep/
// <strong i="10">@version</strong>     1
// <strong i="11">@match</strong>       *://*.twitter.com/*
// <strong i="12">@grant</strong>       none
// ==/UserScript==

Ele funciona no FF estável. Suspeito que isso quebraria muitos scripts em breve.

Comentários muito úteis

Última boa: Firefox 54.0a1 (09/02/2017)
Construído a partir de https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Primeira má: Firefox 54.0a1 (10/02/2017)
Construído a partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

Pushlog
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

Bug # 1337629 é o suspeito.

__Passos para reproduzir:__
1) Abra o Scratchpad
2) Menu: "Ambiente-Navegador"
3) Insira o código:

var url = "http://*.twitter.com/*";
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
    .getService(Components.interfaces.nsIIOService);
alert(ioService.newURI(url, null, null));

4) Corra
5) O resultado:

__Firefox 54.0a1 (09-02-2017) __

alerta: http://*.twitter.com/*

__Firefox 54.0a1 (10/02/2017) __

Exception: [Exception... "Component returned failure code: 0x804b000a
(NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]"  nsresult: "0x804b000a
(NS_ERROR_MALFORMED_URI)"
location: "JS frame :: Scratchpad/1 :: <TOP_LEVEL> :: line 15"  data: no]

Todos 11 comentários

Última boa: Firefox 54.0a1 (09/02/2017)
Construído a partir de https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Primeira má: Firefox 54.0a1 (10/02/2017)
Construído a partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

Pushlog
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

Bug # 1337629 é o suspeito.

__Passos para reproduzir:__
1) Abra o Scratchpad
2) Menu: "Ambiente-Navegador"
3) Insira o código:

var url = "http://*.twitter.com/*";
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
    .getService(Components.interfaces.nsIIOService);
alert(ioService.newURI(url, null, null));

4) Corra
5) O resultado:

__Firefox 54.0a1 (09-02-2017) __

alerta: http://*.twitter.com/*

__Firefox 54.0a1 (10/02/2017) __

Exception: [Exception... "Component returned failure code: 0x804b000a
(NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]"  nsresult: "0x804b000a
(NS_ERROR_MALFORMED_URI)"
location: "JS frame :: Scratchpad/1 :: <TOP_LEVEL> :: line 15"  data: no]

Olá, parece que está abusando de URIs. Existe um motivo específico para a criação de um URI usando esse padrão? Como ele está combinando um URI real com um URI padrão.
Entender isso ajudaria na decisão de restaurar o bug 1337629 ou não.

@valenting está usando o URI para extrair com segurança as várias partes do URI (esquema, host, caminho) antes de aplicar expressões regulares às partes individuais. Presumo que a ideia era evitar a implementação de um analisador de URI customizado para padrões de correspondência.

MatchPattern.jsm

Observe também que, para mim, isso teve o efeito de remover silenciosamente ou não carregar um script já instalado. Isso foi bastante surpreendente e não sei se ele teria sido capaz de se recuperar disso, ou seja, se o script não tivesse simplesmente ido embora até ser reinstalado.

O ramo de teste:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_matchPattern

Eu não fiz uma solicitação de pull ainda (não foi bem testado) ...

Tive o mesmo problema ontem à noite com o desenvolvedor Firefox. GM removeu o script FBP devido às duas linhas @match em seu script com erros de análise. Removi as 2 linhas e consegui carregar o script do disco para reinstalá-lo.
GM também não tinha um script desativado ao reiniciar a partir da atualização do FF junto com o script de pureza. O removido desabilitou o recarregado da área de transferência sem erros. Nenhum dos scripts foi removido da pasta gm_scripts, felizmente, apenas não carregava. Espero que isso ajude, aqui se precisar de mim.
Erro de análise nestes dois;
// @match http: // .facebook.com /
// @match https: // .facebook.com /

Beta parece estar funcionando bem.

Beta ainda não foi atualizado. Será em breve.

Em 17 de fevereiro de 2017 às 04:24, Dana MW Chester [email protected]
escreveu:

Beta parece estar funcionando bem.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/greasemonkey/greasemonkey/issues/2480#issuecomment-280539445 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABYyOVjQCE0xIK_k-M2OecXJ6tXrpr0Vks5rdRL1gaJpZM4L-WHI
.

Acho que arantius / greasemonkey @ 9cb94670994ea326e81ad6df4ec083d56e595166 corrige isso. A confirmação seria bom.

Reescrevi isso para arantius / greasemonkey @ 1531f342d512e9a0981897194bf3bf7ced09a1c7 e estou

Não posso confirmar no perfil mencionado no # 2481 porque não tive escolha a não ser colocá-lo em funcionamento e tive que riscá-lo e reiniciá-lo, uma completa perda de horas.

Sem mencionar no processo que eu acho, que excluir / remover um script aparentemente não o remove / exclui, na unidade do perfil ele mantém tudo, o que não faz sentido porque está fazendo isso - já que eu excluí estes scripts por uma razão, por que você os está coletando?

Explica os erros que surgem quando um novo script tem o mesmo nome de um antigo (excluído, mas não foi realmente removido) que você não removeu e causa problemas. Isso realmente deve ser analisado, embora não esteja diretamente relacionado ao problema que está sendo tratado aqui.

Esta página foi útil?
0 / 5 - 0 avaliações