Jetpack расш-е для PM : Javascript beautify and syntax highlight

Обсуждения на русском языке
User avatar
jars_
Lunatic
Lunatic
Posts: 398
Joined: 2016-12-27, 00:12

Jetpack расш-е для PM : Javascript beautify and syntax highlight

Unread post by jars_ » 2017-11-26, 23:45

Оригинал плугина тут Javascript View
Получилось завести этот jetpack плугин для PM. Ничего необычного, инструкция есть.. но.
Автор зачем-то обозвал файл package.json именем harness-options.json и вначале я этого незаметил. Поправил install.rdf ,как делал много раз, но установить неполучалось, PM отказывал.
Поковырял-посравнивал с другими jetpack расширениями работающими у меня, нашел это вот отличие. Поправил имя, поиском нашел в каких файлах это имя исп-ся(оказалось еще в двух) и поправил их.

В итоге все завелось! Яхз. можно ли это считать багой в PM-jepack-прокладки. Но КМК похоже: если имя не package.json - то в установке отказано.
Делюсь рабочим файлом. Ничего другого не менял, не мой уровень, хехе.. ;)
Javascript View(fixed for PaleMoon)

JustOff

Re: Jetpack расш-е для PM : Javascript beautify and syntax highlight

Unread post by JustOff » 2017-11-27, 12:45

jars_ wrote:Автор зачем-то обозвал файл package.json именем harness-options.json
Наличие этого файла говорит о том, что расширение создано с использованием старой версии Jetpack (cfx) и требует миграции.
Яхз. можно ли это считать багой в PM-jepack-прокладки.
Pale Moon 27.x поддерживает только Jetpack-расширения созданные с помощью jpm, в документации к PMkit обо всем этом написано.
Делюсь рабочим файлом. Ничего другого не менял, не мой уровень, хехе.. ;)
Не надо скромничать, удалось же решить проблему? 8-) А вот ссылки на xpi-файлы на форуме категорически не приветствуются, может прийти злой модератор и настучать по одному месту. Может пришло время сделать следующий шаг и научиться работать с GitHub?

JustOff

Re: Jetpack расш-е для PM : Javascript beautify and syntax highlight

Unread post by JustOff » 2017-11-27, 15:07

jars_ wrote:Делюсь рабочим файлом.
Появилось время заглянуть вовнутрь - у вас получился какой-то гибрид cfx и jpm :shock: К установке не рекомендуется, могут быть проблемы с утечками памяти. Надо нормальную миграцию в jpm сделать, это совсем не сложно - один раз только разобраться.

User avatar
jars_
Lunatic
Lunatic
Posts: 398
Joined: 2016-12-27, 00:12

Re: Jetpack расш-е для PM : Javascript beautify and syntax highlight

Unread post by jars_ » 2017-11-28, 06:34

Наличие этого файла говорит о том, что расширение создано с использованием старой версии Jetpack (cfx) и требует миграции.
ну , Мозилла должна была сдохнуть, с такими-то кол-вом изменений вводимых ими и отбрасываемых тоже ими самими. За десять лет - четыре разных формата расширений ввести, три смены морды... мдаа.
Ужеб , по логике и просто здравому смыслу, надоб было встроить аналог CustomButtons внутрь и забыть за всякие жетпаки и restartless плугины.
получился какой-то гибрид cfx и jpm :shock: К установке не рекомендуется, могут быть проблемы с утечками памяти.
яж грю, ничего не менял. Просто манифест поправил и имя одного файла. вроде робит.
Мне, чем разбираться как этовсе переводится... мозилловские мануалы читать - это пытка, с учетом слабого аглиццкого моего(попробую).
... лучше будет подтянуть CB и на него перенести этот плугин :D шучу конечно, врядли сумею. (попробую)

Благодарю, что посмотрел и вынес суждения. Пусть другие будут иметь это ввиду и будут осторожны. У себя пока проблем не заметил, да и не держу постоянно вкл. его. У мя есть кнопка давняя, еще с FF (не помню афтара) Show Scripts:

Code: Select all

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EShow%20Scripts%20-%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0441%u043A%u0440%u0438%u043F%u0442%u044B%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAn0lEQVQ4y7WTQQrCQAxFX3qKQg8geACvKt5AKHTr1sMIuikIXcu4+QM1zJTo4IdskvxPJj9jKSUyzIwoMq+r1HfACDwVE7CvKuUQBmAGkotZtQ9eSeAswhXoRbooN0YEbmo+rAbtlbt7gS64swdwBF6RHfgnrBHagV9i0YUtAdQ8AcsvLgyFsb924eREqi402/iXQ2o+Ze/CsmWjtX7nNw3V+XByuw7PAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.showScript%20%3D%20function%28%29%20%7B%0A%20%20var%20scripts%20%3D%20content.document.querySelectorAll%28%22script%5Bsrc%5D%22%29%3B%0A%20%20var%20test%20%3D%20content.document.getElementById%28%27showScripts.css%27%29%3B%0A%20%20if%28test%29%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20scripts.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20//scripts%5Bi%5D.removeEventListener%28%22click%22%2C%20scriptSrc%2C%20false%29%3B%0A%20%20%20%20%20%20while%20%28scripts%5Bi%5D.lastChild%29%20scripts%5Bi%5D.removeChild%28scripts%5Bi%5D.lastChild%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20test.parentNode.removeChild%28test%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20scripts.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20/*scripts%5Bi%5D.addEventListener%28%22click%22%2C%20scriptSrc%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20gBrowser.loadOneTab%28e.target.src%29%3B%0A%20%20%20%20%20%20%7D%2C%20false%29%3B*/%0A%20%20%20%20%20%20scripts%5Bi%5D.innerHTML%20%3D%20scripts%5Bi%5D.src%3B%0A%20%20%20%20%7D%0A%20%20%20%20var%20head%20%3D%20content.document.getElementsByTagName%28%27head%27%29%5B0%5D%3B%0A%20%20%20%20if%28%21head%29%20return%3B%0A%0A%20%20%20%20var%20css%20%3D%20%28%27%5C%0A%20%20%20%20head%20%7B%5C%0A%20%20%20%20%20%20display%3A%20block%20%21important%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20head%20*%3Anot%28script%29%20%7B%5C%0A%20%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20html%20script%5Bsrc%5D%20%7B%5C%0A%20%20%20%20%20%20cursor%3A%20pointer%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20html%20script%20%7B%5C%0A%20%20%20%20%20%20display%3A%20block%20%21important%3B%5C%0A%20%20%20%20%20%20padding%3A%201em%3B%5C%0A%20%20%20%20%20%20background-color%3A%20%23e0e0e0%3B%5C%0A%20%20%20%20%20%20border%3A%202px%20solid%20%23aaa%3B%5C%0A%20%20%20%20%20%20color%3A%20%23000%3B%5C%0A%20%20%20%20%20%20font-family%3A%20monospace%3B%5C%0A%20%20%20%20%20%20font-size%3A%2010pt%3B%5C%0A%20%20%20%20%20%20text-align%3A%20left%3B%5C%0A%20%20%20%20%20%20white-space%3A%20pre-wrap%3B%5C%0A%20%20%20%20%20%20overflow-x%3A%20auto%3B%5C%0A%20%20%20%20%20%20//position%3A%20absolute%3B%5C%0A%20%20%20%20%20%20//opacity%3A%20.1%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20html%20script%3Ahover%20%7B%5C%0A%20%20%20%20%20%20background-color%3A%20%23eee%3B%5C%0A%20%20%20%20%20%20border%3A%202px%20dashed%20%23aaa%3B%5C%0A%20%20%20%20%20%20opacity%3A%201%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20%27%29%0A%0A%20%20%20%20var%20style%20%3D%20content.document.createElement%28%27style%27%29%3B%0A%20%20%20%20style.id%20%3D%20%27showScripts.css%27%3B%0A%20%20%20%20style.type%20%3D%20%27text/css%27%3B%0A%20%20%20%20style.innerHTML%20%3D%20css%3B%0A%0A%20%20%20%20head.appendChild%28style%29%3B%0A%20%20%7D%0A%7D%0A%0Athis.getScripts%20%3D%20function%28%29%20%7B%0A%20%20var%20sArray%20%3D%20%5B%5D%3B%0A%20%20var%20scripts%20%3D%20content.document.evaluate%28%22//script%5B@src%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20content.document%2C%20null%2C%206%2C%20null%29%3B%0A%20%20if%20%28%21scripts.snapshotLength%29%20return%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20scripts.snapshotLength%3B%20i++%29%20%7B%0A%20%20%20%20sArray.push%28scripts.snapshotItem%28i%29.src%29%3B%0A%20%20%7D%0A%20%20return%20sArray%3B%0A%7D%0A%0Athis.setStatus%20%3D%20function%28aString%29%20%7B%0A%20%20document.getElementById%28%22statusbar-display%22%29.label%20%3D%20aString%3B%0A%7D%0A%0Athis.populate%20%3D%20function%28aNode%29%20%7B%0A%20%20while%20%28aNode.lastChild%29%20%7B%0A%20%20%20%20aNode.removeChild%28aNode.lastChild%29%3B%0A%20%20%7D%0A%20%20var%20s%20%3D%20this.getScripts%28%29%3B%0A%20%20if%20%28s%29%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20s.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20addMenuItem%28aNode%2C%20%28i%20+%201%29%2C%20s%5Bi%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20addDisabledMenuItem%28aNode%29%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20addDisabledMenuItem%28aNode%29%20%7B%0A%20%20var%20mi%20%3D%20aNode.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20mi.setAttribute%28%22label%22%2C%20%22No%20external%20scripts%20found%22%29%3B%0A%20%20//mi.setAttribute%28%22disabled%22%2C%20true%29%3B%0A%20%20mi.style.color%20%3D%20%22graytext%22%3B%0A%7D%0A%0Afunction%20addMenuItem%28aNode%2C%20aNum%2C%20aURL%29%20%7B%0A%20%20var%20mi%20%3D%20aNode.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20mi.setAttribute%28%22label%22%2C%20aNum%20+%20%22.%20%22%20+%20aURL%29%3B%0A%20%20mi.setAttribute%28%22url%22%2C%20aURL%29%3B%0A%20%20mi.setAttribute%28%22oncommand%22%2C%20%22gBrowser.loadOneTab%28this.getAttribute%28%27url%27%29%29%3B%22%29%3B%0A%20%20mi.setAttribute%28%22onmouseover%22%2C%20%22this.parentNode.parentNode.setStatus%28this.getAttribute%28%27label%27%29%29%3B%22%29%3B%0A%20%20mi.setAttribute%28%22onmouseout%22%2C%20%22this.parentNode.parentNode.setStatus%28%27%27%29%3B%22%29%3B%0A%20%20%0A//%20%u0421%u041A%u041C%20-%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%u0441%20%u0441%u043A%u0440%u0438%u043F%u0442%u0430%20+%20%u043A%u043E%u0441%u0442%u044B%u043B%u044C%20%u0434%u043B%u044F%20%u0434%u0435%u043A%u043E%u0434%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u044F%20%u0443%u0440%u043B%20%u0438%u0437%20pynicode%0A%20%20mi.addEventListener%28%22click%22%2C%20function%28ef%29%20%7B%0A%20%20%20%20%20%20if%20%28%20ef.button%20%21%3D%201%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20ttt%20%3D%20this.getAttribute%28%27url%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20function%20decodeURIComponentX%28%20str%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20out%20%3D%20%27%27%2C%20arr%2C%20i%20%3D%200%2C%20l%2C%20x%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arr%20%3D%20str.split%28/%28%25%28%3F%3AD0%7CD1%29%25.%7B2%7D%29/%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%28%20l%20%3D%20arr.length%3B%20i%20%3C%20l%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20decodeURIComponent%28%20arr%5Bi%5D%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20arr%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20out%20+%3D%20x%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20out%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20gClipboard.write%28decodeURIComponentX%28%20%27%22%27%20+%20ttt%20+%20%27%22%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28ef.target.image%2C%20null%2C%20%22%u0410%u0434%u0440%u0435%u0441%u0441%20%u0441%u043A%u0440%u0438%u043F%u0442%u0430%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%7D%0A%0Avar%20mPopup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AmPopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%3B%22%29%3B%0AmPopup.setAttribute%28%22onpopupshowing%22%2C%20%22this.parentNode.populate%28this%29%3B%22%29%3B%0A%0Athis.type%20%3D%20%22menu-button%22%3B%0A%0Athis.tooltipText%20%3D%20%22Show%20Scripts%3A%5Cn%5C%0A%A4%20%u041A%u043B%u0438%u043A%20%u043F%u043E%20%u043A%u043D%u043E%u043F%u043A%u0435%20-%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043C%u0435%u0441%u0442%u0430%20%u0441%u043A%u0440%u0438%u043F%u0442%u043E%u0432%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%5Cn%5C%0A%A4%20%u041A%u043B%u0438%u043A%20%u043F%u043E%20%u0444%u043B%u0430%u0436%u043A%u0443%20-%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0441%u043A%u0440%u0438%u043F%u0442%u043E%u0432%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%5Cn%5C%0A%A4%20%u0421%u041A%u041C%20%u043F%u043E%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u043A%u0440%u0438%u043F%u0442%u043E%u0432%20-%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u043A%u0440%u0438%u043F%u0442%u0430%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.showScript%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
... и вот для нее собсна и нужен был подсветчик кода. Я туда чуть добавил, действие по СКМ. Теперь еще добавлю включение этого плугина при открытии скрипта - будет весчЪ :D
Когда пишешь правила блокир. рекламы на сайтах - чтоб глянуть быстро-удобно содержимое скрипта и какие в нем адреса-имена исп-ся. подписки я не пользую.

JustOff

Re: Jetpack расш-е для PM : Javascript beautify and syntax highlight

Unread post by JustOff » 2017-11-28, 09:11

jars_ wrote:У себя пока проблем не заметил, да и не держу постоянно вкл. его.
Вот как раз в момент выключения расширения на старом Jatpack память обычно и не освобождают. И так при каждом вкл/выкл, с накоплением - поэтому-то их и прикрыли в 27.x, оставив поддержку только для нового 8-)

Locked