приведенный ниже сценарий завершается неудачно со следующей ошибкой: 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
Подозревается ошибка №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 для шаблонов соответствия.
Также обратите внимание, что для меня это привело к незаметному удалению или невозможности загрузки уже установленного скрипта. Это было довольно удивительно, и я не знаю, можно ли было бы восстановиться после этого, т.е. если бы скрипт просто не исчез, пока он не был переустановлен.
Ветвь тестирования:
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, потому что у меня не было другого выбора, кроме как сделать его работоспособным, и мне пришлось поцарапать его и начать все сначала, что было пустой тратой времени.
Не говоря уже о процессе, который я обнаружил, что удаление / удаление скрипта, по-видимому, фактически не удаляет / не удаляет его, на диске в профиле он хранит все это, что не имеет смысла, почему он это делает - поскольку я удалил эти скрипты не зря, зачем вы их собираете?
Объясняет ошибки, которые возникают, когда новый сценарий имеет то же имя, что и старый (удален, но не удален), который вы не удалили, и вызывает проблемы. Это действительно следует изучить, даже если оно не имеет прямого отношения к рассматриваемой здесь проблеме.
Самый полезный комментарий
Последний удачный вариант: 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) Вставьте код:
4) Беги
5) Результат:
__Firefox 54.0a1 (09.02.2017) __
предупреждение:
http://*.twitter.com/*
__Firefox 54.0a1 (10.02.2017) __