Greasemonkey: V4 @match se comporte différemment de V3 et TamperMonkey

Créé le 15 nov. 2017  ·  8Commentaires  ·  Source: greasemonkey/greasemonkey

Mon script a les entrées suivantes (désinfectées à celles-ci sont des adresses intranet):

// <strong i="6">@match</strong>        http://*.some-net.net/*
// <strong i="7">@match</strong>        http://*.some-net.net/*
// <strong i="8">@match</strong>        https://*.some-othernet.net/*
// <strong i="9">@match</strong>        https://*.some-othernet.net/*

Sur V3/tampermonkey, cela fonctionne pour tous les exemples d'adresses suivants (à la fois http et https)

[1] service.some-net.net
[2] service.some-othernet.net
[3] service.some-net. réseau : 1234
[4] service.some-othernet. réseau : 1234
[5] service.customer.some-net. réseau : 1234
[6] service.customer.location.some-net.net

Cependant sur V4 [3][4] et [5] ne fonctionne pas. Pour [3], le correctif consistait à ajouter ceux qui correspondaient également au port :

// <strong i="23">@match</strong>        http://*.some-net.net:*/*
// <strong i="24">@match</strong>        http://*.some-net.net:*/*
// <strong i="25">@match</strong>        https://*.some-othernet.net:*/*
// <strong i="26">@match</strong>        https://*.some-othernet.net:*/*

Quant à [5] j'ai essayé ceci, mais même cela n'aide pas

// <strong i="30">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="31">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="32">@match</strong>        https://*.*.some-othernet.net:*/*
// <strong i="33">@match</strong>        https://*.*.some-othernet.net:*/*

Et cela n'a aucun sens pour moi car [6] travaille sur le premier ensemble de règles (original) seul.

Tous les 8 commentaires

La documentation officielle est laconique et ne mentionne pas du tout les ports. Assurez-vous d'inclure un test lors de la fixation, pour éviter les régressions.

Cela dit en comparant le nouveau/ancien code :

Je ne sais pas comment c'est arrivé, ça n'a pas changé.

Eh bien, peut-être que quelque chose a changé dans la méthode utilisée pour obtenir l'URL actuelle. Tout le monde avec le nouveau Firefox a ce problème, pour les autres utilisant l'ancien FF/Chrome, cela fonctionne.
Malheureusement, lorsque j'ai voulu modifier XPI pour ajouter des impressions, j'ai constaté qu'il devait être signé....

Il y a un Bugzilla sur les correspondances et les ports. Je ne sais pas quelle était la résolution. Je vais voir si je peux le trouver.

Buzilla sur match et ports. Ici .

Ok, en 3.x jours, nous avons utilisé nsIURI , qui avait séparément host , port et hostport . Maintenant, nous devons utiliser l' URL qui a toujours quelque chose appelé host -- mais cela signifie hostport . Nous devons utiliser hostname .

Pas directement lié à la fonctionnalité du problème, mais garantit la compatibilité avec la mise en œuvre de FF. Cette API doit-elle être implémentée ?

https://bugzilla.mozilla.org/show_bug.cgi?id=1395278

Ce correctif devrait être en 4.1beta6 ; tester et confirmer cela serait très apprécié!

https://addons.mozilla.org/firefox/downloads/file/800957/greasemonkey-4.1beta6-an+fx.xpi?src=devhub

Vérifié maintenant et semble fonctionner correctement. Merci!

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