Greasemonkey: Nightly не может проанализировать шаблон соответствия

Созданный на 12 февр. 2017  ·  11Комментарии  ·  Источник: greasemonkey/greasemonkey

приведенный ниже сценарий завершается неудачно со следующей ошибкой: 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==

Работает на стабильной FF. Я подозреваю, что скоро это сломает множество скриптов.

Самый полезный комментарий

Последний удачный вариант: Firefox 54.0a1 (09.02.2017).
Создано с https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Первый плохой: Firefox 54.0a1 (10.02.2017).
Создано с https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

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

Подозревается ошибка №1337629 .

__Действия по воспроизведению:__
1) Откройте Электронный блокнот
2) Меню: «Среда-Браузер»
3) Вставьте код:

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) Беги
5) Результат:

__Firefox 54.0a1 (09.02.2017) __

предупреждение: 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]

Все 11 Комментарий

Последний удачный вариант: Firefox 54.0a1 (09.02.2017).
Создано с https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8acca

Первый плохой: Firefox 54.0a1 (10.02.2017).
Создано с https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7

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

Подозревается ошибка №1337629 .

__Действия по воспроизведению:__
1) Откройте Электронный блокнот
2) Меню: «Среда-Браузер»
3) Вставьте код:

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) Беги
5) Результат:

__Firefox 54.0a1 (09.02.2017) __

предупреждение: 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]

Привет, мне кажется, что это злоупотребление URI. Есть ли конкретная причина, по которой он создает URI с использованием этого шаблона? Как он соответствует фактическому URI и шаблонному URI.
Понимание этого поможет решить, следует ли отказываться от ошибки 1337629 или нет.

@valenting он использует URI для безопасного извлечения различных частей URI (схемы, хоста, пути) перед применением регулярных выражений к отдельным частям. Я предполагаю, что идея заключалась в том, чтобы избежать реализации пользовательского парсера URI для шаблонов соответствия.

MatchPattern.jsm

Также обратите внимание, что для меня это привело к незаметному удалению или невозможности загрузки уже установленного скрипта. Это было довольно удивительно, и я не знаю, можно ли было бы восстановиться после этого, т.е. если бы скрипт просто не исчез, пока он не был переустановлен.

Ветвь тестирования:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_matchPattern

Я еще не делал пул-реквест (не очень хорошо протестирован) ...

Вчера вечером у меня была такая же проблема с разработчиком Firefox. GM удалил сценарий FBP из-за наличия в его сценарии двух строк
GM также отсутствовал отключенный скрипт при перезапуске из обновления FF вместе со скриптом чистоты. Удаленный неработающий перезагружается из буфера обмена без ошибок. К счастью, ни один из скриптов не был удален из папки gm_scripts, просто не загружался. Надеюсь, что-нибудь из этого поможет, здесь, если я вам понадоблюсь.
Ошибка синтаксического анализа этих двух;
// @ совпадение http: // .facebook.com /
// @ совпадение https: // .facebook.com /

Бета вроде работает нормально.

Бета еще не обновлена. Это будет скоро.

17 февраля 2017 г., в 04:24, Дана М.В. Честер [email protected]
написал:

Бета вроде работает нормально.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/greasemonkey/greasemonkey/issues/2480#issuecomment-280539445 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ABYyOVjQCE0xIK_k-M2OecXJ6tXrpr0Vks5rdRL1gaJpZM4L-WHI
.

Я думаю, что arantius / greasemonkey @ 9cb94670994ea326e81ad6df4ec083d56e595166 исправляет это. Подтверждение было бы неплохо.

Я переписал это на arantius / greasemonkey @ 1531f342d512e9a0981897194bf3bf7ced09a1c7 и сейчас отправляю его в бета-канал.

Я не могу подтвердить профиль, упомянутый в № 2481, потому что у меня не было другого выбора, кроме как сделать его работоспособным, и мне пришлось поцарапать его и начать все сначала, что было пустой тратой времени.

Не говоря уже о процессе, который я обнаружил, что удаление / удаление скрипта, по-видимому, фактически не удаляет / не удаляет его, на диске в профиле он хранит все это, что не имеет смысла, почему он это делает - поскольку я удалил эти скрипты не зря, зачем вы их собираете?

Объясняет ошибки, которые возникают, когда новый сценарий имеет то же имя, что и старый (удален, но не удален), который вы не удалили, и вызывает проблемы. Это действительно следует изучить, даже если оно не имеет прямого отношения к рассматриваемой здесь проблеме.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги