Greasemonkey: No se puede analizar el patrón de coincidencia por la noche

Creado en 12 feb. 2017  ·  11Comentarios  ·  Fuente: greasemonkey/greasemonkey

el siguiente script falla con el siguiente error: 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==

Funciona en FF estable. Sospecho que pronto rompería muchos guiones.

Comentario más útil

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

Primero malo: Firefox 54.0a1 (2017-02-10)
Construido a partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

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

El error # 1337629 es el sospechoso.

__Pasos para reproducir:__
1) Bloc de notas abierto
2) Menú: "Entorno-Navegador"
3) Inserte el 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) Ejecutar
5) El resultado:

__Firefox 54.0a1 (09/02/2017) __

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

__Firefox 54.0a1 (10 de febrero de 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 comentarios

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

Primero malo: Firefox 54.0a1 (2017-02-10)
Construido a partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

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

El error # 1337629 es el sospechoso.

__Pasos para reproducir:__
1) Bloc de notas abierto
2) Menú: "Entorno-Navegador"
3) Inserte el 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) Ejecutar
5) El resultado:

__Firefox 54.0a1 (09/02/2017) __

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

__Firefox 54.0a1 (10 de febrero de 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]

Hola, esto me parece que está abusando de URI. ¿Existe una razón específica por la que está creando un URI usando ese patrón? ¿Cómo coincide un URI real con un URI de patrón?
Comprender esto ayudaría a decidir si anular el error 1337629 o no.

@valenting está usando el URI para extraer de forma segura las distintas partes del URI (esquema, host, ruta) antes de aplicar expresiones regulares a las partes individuales. Supongo que la idea era evitar la implementación de un analizador de URI personalizado para patrones de coincidencia.

MatchPattern.jsm

También tenga en cuenta que para mí esto tuvo el efecto de eliminar silenciosamente o no cargar un script ya instalado. Esto fue bastante sorprendente y no sé si hubiera podido recuperarse de eso, es decir, si el script no se hubiera ido hasta que se reinstaló.

La rama de pruebas:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_matchPattern

Todavía no hice una solicitud de extracción (no está bien probado) ...

Tuve el mismo problema anoche con el desarrollador de Firefox. GM eliminó el script FBP debido a las dos líneas @match en su script con errores de análisis. Eliminé las 2 líneas y pude cargar el script desde el disco para reinstalarlo.
A GM también le faltaba un script deshabilitado al reiniciar desde la actualización de FF junto con el script de pureza. El eliminado desactivado se volvió a cargar desde el portapapeles sin error. Afortunadamente, ninguno de los guiones se eliminó de la carpeta gm_scripts, simplemente no se cargaba. Espero que algo de esto te ayude, aquí si me necesitas.
Analice el error en estos dos;
// @match http: // .facebook.com /
// @match https: // .facebook.com /

Beta parece estar funcionando bien.

Beta aún no se ha actualizado. Será pronto.

El 17 de febrero de 2017 a las 04:24, Dana MW Chester [email protected]
escribió:

Beta parece estar funcionando bien.

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/greasemonkey/greasemonkey/issues/2480#issuecomment-280539445 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ABYyOVjQCE0xIK_k-M2OecXJ6tXrpr0Vks5rdRL1gaJpZM4L-WHI
.

Creo que arantius / greasemonkey @ 9cb94670994ea326e81ad6df4ec083d56e595166 soluciona esto. La confirmación estaría bien.

Lo reescribí en arantius / greasemonkey @ 1531f342d512e9a0981897194bf3bf7ced09a1c7 y ahora lo estoy

No puedo confirmar en el perfil mencionado en el n. ° 2481 porque no tuve más remedio que hacerlo funcional y tuve que rasparlo y comenzar de nuevo, una completa pérdida de horas.

Sin mencionar en el proceso que encuentro, que eliminar / eliminar un script aparentemente no lo elimina / elimina, en la unidad en el perfil lo mantiene todo, lo que no tiene sentido por qué lo está haciendo, ya que eliminé estos guiones por una razón, ¿por qué los recopila?

Explica los errores que surgen cuando una nueva secuencia de comandos tiene el mismo nombre que una antigua (eliminada pero en realidad no desapareció) que no eliminó y causa problemas. Esto realmente debería estudiarse, aunque no esté directamente relacionado con el problema que se aborda aquí.

¿Fue útil esta página
0 / 5 - 0 calificaciones