Поскольку никакой другой движок браузера не позаботился о его поддержке, в Firefox некоторое время была открытая ошибка для удаления возможности изменения контекстного меню, на которую полагается часть полифилла registerMenuCommand.
Похоже, что кто-то сейчас заинтересован в "исправлении" (т.е. удалении поддержки), поэтому, вероятно, было бы неплохо пересмотреть GM4, не предоставляя для этого собственную поддержку.
Я достаточно интенсивно использую его для таких вещей, как запуск моих пользовательских интерфейсов конфигурации, и, если не будет предоставлена подходящая замена, мне просто придется отказаться от поддержки GreaseMonkey и проинструктировать пользователей, что по техническим причинам я могу поддерживать только ViolentMoney и TamperMonkey, потому что Я не считаю приемлемым UX загромождать сайт такими кнопками пользовательского интерфейса конфигурации «установи один раз и почти никогда не меняй».
+1
Мне очень нравятся контекстные меню HTML 5, но если / когда они исчезнут, я тоже надеюсь, что GM.registerMenuCommand вернется. Я не вижу себя поддерживающим другое самодельное решение для многосайтовых пользовательских скриптов.
Любые предложения по UI / API, которые все еще будут существовать, которые вы хотели бы использовать?
Полагаю, нас заставят регистрировать вещи в обезьяньем меню?
Так поступают TamperMonkey и ViolentMonkey.
Я полагаю, что другим вариантом было бы изучить возможность аппроксимации того, что делает полифилл, используя browser.menus.create
чтобы поместить все элементы меню, зарегистрированные в пользовательском скрипте, в подменю контекстного меню ... хотя это было бы под- оптимально без какого-либо способа привязать их к контексту, поскольку люди обычно ожидают, что контекстное меню будет контекстным.
(И, в идеале, все равно было бы хорошо иметь способ поместить записи «Настроить этот пользовательский скрипт» в меню обезьяны, а не в контекстное меню, подобно тому, как работает менеджер надстроек Firefox.)
Последний вариант действительно является «исследованием осуществимости». Я так давно не изучал API WebExtensions, что не могу вспомнить его ограничений в этом отношении. (Я пишу пользовательские скрипты, потому что они более переносимы и протестуют против обязательной подписи расширений.)
Вот более старая ветка:
https://github.com/greasemonkey/greasemonkey/issues/2714
@arantius
Полагаю, нас заставят регистрировать вещи в обезьяньем меню?
Даже если контекстное меню не было исключено из спецификации, его использование вместо GM_registerMenuCommand имеет следующие недостатки:
В ствол Firefox только что был добавлен патч, отключающий доступ к <menuitem>
с целевым этапом выпуска Firefox 85.
https://bugzilla.mozilla.org/show_bug.cgi?id=1680596#c11
(В частности, он помещает его за преф dom.menuitem.enabled
который по умолчанию имеет значение false.)
@arantius Реализация GM.registerMenuCommand () стала актуальной проблемой.
Этот API был реализован как в Violemntmonkey, так и в Tampermonkey, а также в Greasemonkey 3.x. Как уже упоминалось выше, он не подлежит замене каким-либо другим способом и важен для совместимости.
Я рассмотрел все предыдущие опасения по поводу реализации в обновлении https://github.com/greasemonkey/greasemonkey/pull/2770 . Почему это нельзя объединить?