Greasemonkey: Nightly ne peut pas analyser le modèle de correspondance

Créé le 12 févr. 2017  ·  11Commentaires  ·  Source: greasemonkey/greasemonkey

le script ci-dessous échoue avec l'erreur suivante : 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==

Cela fonctionne sur FF stable. Je soupçonne que cela casserait beaucoup de scripts bientôt.

Commentaire le plus utile

Dernier bien : Firefox 54.0a1 (2017-02-09)
Construit à partir de https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Premier mauvais : Firefox 54.0a1 (2017-02-10)
Construit à partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

Journal de poussée
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

Le bogue #1337629 est le suspect.

__Étapes à reproduire :__
1) Ouvrez Scratchpad
2) Menu : "Environnement-Navigateur"
3) Insérez le code :

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) Courir
5) Le résultat :

__Firefox 54.0a1 (2017-02-09)__

alerte : http://*.twitter.com/*

__Firefox 54.0a1 (2017-02-10)__

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]

Tous les 11 commentaires

Dernier bien : Firefox 54.0a1 (2017-02-09)
Construit à partir de https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Premier mauvais : Firefox 54.0a1 (2017-02-10)
Construit à partir de https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

Journal de poussée
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

Le bogue #1337629 est le suspect.

__Étapes à reproduire :__
1) Ouvrez Scratchpad
2) Menu : "Environnement-Navigateur"
3) Insérez le code :

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) Courir
5) Le résultat :

__Firefox 54.0a1 (2017-02-09)__

alerte : http://*.twitter.com/*

__Firefox 54.0a1 (2017-02-10)__

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]

Salut, il me semble que cela abuse des URI. Y a-t-il une raison spécifique pour laquelle il crée un URI en utilisant ce modèle ? Comment correspond-il à un URI réel par rapport à un URI de modèle.
Comprendre cela aiderait à décider s'il faut ou non annuler le bogue 1337629.

@valenting utilise l'URI pour extraire en toute sécurité les différentes parties d'URI (schéma, hôte, chemin) avant d'appliquer des expressions régulières aux parties individuelles. Je suppose que l'idée était d'éviter d'implémenter un analyseur d'URI personnalisé pour les modèles de correspondance.

MatchPattern.jsm

Notez également que pour moi, cela a eu pour effet de supprimer ou de ne pas charger en silence un script déjà installé. C'était assez surprenant et je ne sais pas s'il aurait pu s'en remettre, c'est-à-dire si le script n'avait pas disparu jusqu'à ce qu'il soit réinstallé.

La branche test :
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_matchPattern

Je n'ai pas encore fait de pull request (ce n'est pas bien testé)...

J'ai eu le même problème hier soir avec le développeur Firefox. GM a supprimé le script FBP en raison des deux lignes @match dans son script avec des erreurs d'analyse. J'ai supprimé les 2 lignes et j'ai pu charger le script à partir du disque pour le réinstaller.
GM manquait également un script désactivé lors du redémarrage de la mise à jour de FF avec le script de pureté. Le supprimé désactivé a été rechargé à partir du presse-papiers sans erreur. Aucun des deux scripts n'a été supprimé du dossier gm_scripts, heureusement, il ne se chargerait tout simplement pas. J'espère que tout cela vous aidera, ici si vous avez besoin de moi.
Erreur d'analyse sur ces deux ;
// @match http:// .facebook.com/
// @match https:// .facebook.com/

La bêta semble bien fonctionner.

La version bêta n'a pas encore été mise à jour. Ce sera bientôt.

Le 17 février 2017 à 04:24, Dana MW Chester [email protected]
a écrit:

La bêta semble bien fonctionner.

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/greasemonkey/greasemonkey/issues/2480#issuecomment-280539445 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ABYyOVjQCE0xIK_k-M2OecXJ6tXrpr0Vks5rdRL1gaJpZM4L-WHI
.

Je pense qu'arantius/ graissemonkey@9cb94670994ea326e81ad6df4ec083d56e595166 résout ce problème. Une confirmation serait sympa.

J'ai réécrit cela à arantius/ graissemonkey@1531f342d512e9a0981897194bf3bf7ced09a1c7 et je le pousse maintenant vers le canal bêta.

Je ne peux pas confirmer sur le profil mentionné dans #2481 car je n'avais pas d'autre choix que de le rendre fonctionnel et j'ai dû le gratter et recommencer, une perte totale d'heures.

Sans parler du processus que je trouve, que la suppression/suppression d'un script ne le supprime/supprime apparemment pas réellement, sur le lecteur du profil, il conserve tout, ce qui n'a aucun sens pourquoi il le fait - puisque je les ai supprimés scripts pour une raison, pourquoi les collectionnez-vous ?

Explique les erreurs qui surviennent lorsqu'un nouveau script porte le même nom qu'un ancien (supprimé mais pas vraiment disparu) que vous n'avez pas supprimé et cause des problèmes. Cela devrait vraiment être examiné, même s'il n'est pas directement lié au problème traité ici.

Cette page vous a été utile?
0 / 5 - 0 notes