Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№1252606-04-2018 07:42:04

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 59
UA: Firefox 58.0

Re: Custom Buttons

Т. е. FF60 - последняя верия, где CB пашет. А на 60 ESR он будет работать?

Отредактировано Garalf (06-04-2018 08:45:02)

Отсутствует

 

№1252706-04-2018 09:42:41

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4239
UA: Firefox 56.0

Re: Custom Buttons

Dumby пишет:

Всё. Custom Buttons мёртв.
В смысле мёртв как оверлейное расширение.

Никогда еще код для падения браузера не был таким коротким:

Выделить код

Код:

document.loadOverlay("about:crashes", () => 0);

Вообще, как-то что-то глобально переписывать ради еще пары месяцев – весьма обидное и неблагодарное дело.
Не помню, кому, когда и где я писал, но не суть важно. Когда-то давно у меня была идея переделать запуск кода в кнопках: завести для каждой секции отдельный файл и дергать его через loadSubScript("…/.js?lastModified=12345"). И кэширование будет, и теоретически медленный разбор XML уйдет, и быстрее, чем new Function(), и внешнее редактирование удобнее. Но тут нужна уверенность, что поделие, на доводку которого уйдет пара лет, хоть сколько-то проживет (особенно при условии, что на старых версиях и так работает уже написанное расширение).


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1252806-04-2018 15:13:53

Small_Z
Участник
 
Группа: Members
Зарегистрирован: 18-02-2011
Сообщений: 11
UA: Chrome 50.0

Re: Custom Buttons

По мне, главное, что б готовый CB работал на 60 ESR, а там не очень важно, выпилят в 61 или 63, раз уж мозилла-менеджеры удумали такое...

Отсутствует

 

№1252906-04-2018 18:32:16

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 831
UA: Firefox 52.0

Re: Custom Buttons

Infocatcher пишет:

Вообще, как-то что-то глобально переписывать ради еще пары месяцев – весьма обидное и неблагодарное дело.

Да, теперь вынужден пользоваться своим кривым-косым вариантом CB
(только Firefox, true-bootstrap, но не restartless).
Ну, чтобы совсем без ничего на шиз-десят-первой не остаться.

Позволь поделиться (насмешить) не глобально переписанным.
Картинка для открытия через 7-Zip и извлечения xpi-файла.

Если попробуешь поставить, то просто скажи, работает или нет.

Отредактировано Dumby (23-04-2018 18:43:02)

Отсутствует

 

№1253010-04-2018 22:18:29

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 831
UA: Firefox 52.0

Re: Custom Buttons

Опять допекают. Remove nsIDOMSerializer.
Изменил в CustomButtonsService.js

скрытый текст

Выделить код

Код:

/*
    saveOverlayToProfile: function () {
        var serializer = Components. classes ["@mozilla.org/xmlextras/xmlserializer;1"]. createInstance (Components. interfaces. nsIDOMSerializer);
        var data = serializer. serializeToString (this. overlayDocument);
*/
    serializeToString: function (doc) {
        if ("nsIDOMSerializer" in Components. interfaces)
            var serializer = Components. classes ["@mozilla.org/xmlextras/xmlserializer;1"].
                createInstance (Components. interfaces. nsIDOMSerializer);
        else {
            Cu. importGlobalProperties (["XMLSerializer"]);
            var serializer = new XMLSerializer ();
        }
        return (Object. getPrototypeOf (this). serializeToString = function (doc) {
            return serializer. serializeToString (doc);
        }) (doc);
    },

    saveOverlayToProfile: function () {
        var data = this. serializeToString (this. overlayDocument);

Отсутствует

 

№1253111-04-2018 00:38:47

Lerd
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 9
UA: Firefox 52.0

Re: Custom Buttons

Здравствуйте!
Нужна помощь!
Искал как сделать свою кнопку в Мозиле. Так узнал про CB. Установил CB в Мозилу, но сам не программист, не знаю как с CB работать.
Научите, как с помощью CB сделать кнопку со следующим функционалом, по нажатию кнопки делается:
-запрос значения параметра Мозилы network.proxy.type
-если это значение не равно 2, то установить его в 2, иначе установить в 5. Все.
Мозила 52.7.3 esr 32бита
Помогите, пожалуйста!

Отсутствует

 

№1253211-04-2018 04:30:27

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 566
UA: Firefox 58.0

Re: Custom Buttons

Lerd пишет:

-если это значение не равно 2, то установить его в 2, иначе установить в 5. Все.

Если не секрет, то зачем такие сложности? И не проще ли использовать готовую кнопку "proxy"?

Отсутствует

 

№1253311-04-2018 15:57:38

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: unknown 0.0

Re: Custom Buttons

Или добавить в "Quick toggle for about:config preferences", тоже кнопка.

Отсутствует

 

№1253412-04-2018 00:13:40

Lerd
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 9
UA: Firefox 52.0

Re: Custom Buttons

Ultima2m пишет:

Если не секрет, то зачем такие сложности? И не проще ли использовать готовую кнопку "proxy"?

Gladius333 пишет:

Или добавить в "Quick toggle for about:config preferences", тоже кнопка.

Я не представляю, о чем вы!
Если знаете как реализовать то, что я хочу, дайте плиз пошаговую инструкцию?
Надоело каждый раз чтоб залезть на рутрекер лезть в настройки и переключать настройки прокси. Предположил что можно сделать кнопку.

Отсутствует

 

№1253512-04-2018 04:21:05

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 566
UA: Firefox 58.0

Re: Custom Buttons

Lerd пишет:

Я не представляю, о чем вы!

На форуме в готовых кнопках выбери, что нужно и пользуйся.

Отсутствует

 

№1253612-04-2018 12:12:47

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 120
UA: Firefox 47.0

Re: Custom Buttons

Lerd пишет:

Надоело каждый раз чтоб залезть на рутрекер лезть в настройки и переключать настройки прокси. Предположил что можно сделать кнопку.

Попробуйте эту кнопку, может подойдёт:

Выделить код

Код:

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%3EProxy%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/ico%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAZAAAAAAIAACLQAAEq2kAAaBfAABkKAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAZAEAAHACAABwAgAAcAMAAGQAAABkJAASxrQAS+L8AIXv/gBz7P8ALNftAASsewAAAAsAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAABkAAAAAAMAEsa7AE/k/wB07P0Au/f9AMz5/gBr6v4AMNn/AAKjZwAAAAAAAAAAAABkAQAAAAAABKsTAAm6LwAJuTEACbknAA7CXgAl1P8AQeD8AGzr/gCG7/8Ap/X/AGXp+wA+3v8AHc/GAABwAAAAZAMAAIsbAAAADwAt2H4A9P7/AMz5/ADP+v8Acez/ACLS/gBA3/8Afu7/AJHx/wC29/8Aee3+AD/f/wAs1+0AA6cdAAAAAAAAZAEAAAABAACDEQB07LYAr/b2AMD4/wBv6/4AMNn/AETh/wCJ8P8A1Pr/AJPy/wBr6v4APN7/ACPT7AADpxwABrMmAELgmQBF4aIAQN+cAEThnwB27eAApvT/AIHu/gBI4v8Ab+v/ALn3/wDM+f8Au/f/AG7r+gA/3/8AIdG7AACHAAAq1n4A/v//APv+/AD+//8A/v//AP7//wD+//8A/v//AInw/wB57f8AzPn/ANT6/wCw9v4Af+7/AFrm/AAHtD8AAAAAACrWfwDG+P8AN9z4ADbc+wA+3vwAQ+D+AEbh/wBL4v8AP9//AD/f/wBz7P8Am/P+AIrw/wBQ5OUACrtFAAAAAAAAZAIALNd/AL73/wAazfwAGs3/ACLS/wAo1v8ALdj/AC3Y/wAt2P8AKNX/ACTT/wAi0vsAmPL/ADDZiAAAAAAAAH4GAAAAAAAs14AAwfj/ACnW/AAs1/8AONz/AEDf/wBF4f8ARuH/AELg/wA93v8ANtz/ACnW+wC19v8AOd2JAAAAAAAAeAQAAAAAACzXgADB+P8AMdn8ADXb/wBE4f8AUeT/AFrm/wBg6P8AYuj/AF/o/wBc5/8ASOL7ALD2/wA23IgAAAAAAAB4BAAAAAAALNeAAMH4/wA+3vwAS+L/AGDo/wB27f8Ahe//AI3w/wCL8P8Ag+//AH3u/wBg6PsAsvb/ADbciAAAAAAAAHgEAAAAAAAs138AwPj/AF7n/AB57f8AjvH/AKL0/wCy9v8Atvf/ALP2/wCq9f8ApvT/AIHu+wCz9v8ANduHAAAAAAAAeAQAAAAAACzXfwC+9/8AX+j5AHbt/ACC7/wAj/H8AJny/ACd8/wAm/P8AJby/ACV8vwAdOz4ALL2/wA23IkAAAAAAAB4BAAAAAAAJtR3APH9/wDB+PwAxvj/AMz5/wDR+v8A1Pr/ANH6/wDM+f8Ayfn/AMH4/wC29/sA9P7/ADDZfwAAAAAAAHgEAAAAAAADqRoAJtR6AC3YgQAt2IAALtiAAC7YgAAv2YAAL9mAAC7YgAAu2IAALdiAACzXgAAp1oAABK0eAAAAAAAAZAEAAAAA//+AAP/3gAD/vYAA/2WAAPSFgAD9BYAA/QWAAKALgAC8F4AAoBeAAKAXgACgF4AAoBeAAKAXgAC/94AAoBeAAP//gAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20Proxy.%20..........%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%0A%20%20%20this.onmouseup%20%3De%3D%3E%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%20%20%20%20%20%20%20%20clearTimeout%28self.timer%29%3B%0A%0A%20%20%20%20%20%20%20%20switch%28%20cbu.getPrefs%28%22network.proxy.type%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20case%200%3A%20%20var%20data%20%3D%202%3B%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20case%201%3A%20%20var%20data%20%3D%200%3B%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20default%3A%20var%20data%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22network.proxy.type%22%2C%20data%29%3B%0A%20%20%20%7D%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0434%u043B%u0438%u043D%u043D%u044B%u0439%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%7B%0A%20%20%20%20%20%20%20%20%20%20%20self.onmouseup%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20openConnections%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%0A%0A%20%20%20this.onclick%20%3De%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0440%u0430%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%7D%0A%0A%7D%3B%0Aself.onclick%20%3De%3D%3E%20e.preventDefault%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20this.tooltipText%20%3D%20%22Proxy%20%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0440%u043E%u043A%u0441%u0438%20%5Cn%u0414%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%0A%7D%3B%0A%0A%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u0432%20%u043E%u043A%u043D%u0435%20..........%0Afunction%20openConnections%28%29%20%7B%0A%20%20%20for%20%28%20var%20win%2C%20nm%20%3D%20Services.wm.getEnumerator%28null%29%3B%20win%20%3D%20nm.getNext%28%29%3B%20%29%0A%20%20%20%20%20%20%20%20%20if%20%28%20win.name%20%3D%3D%20%27Proxy%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20win.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20var%20win%20%3D%20openDialog%28%22chrome%3A//browser/content/preferences/connection.xul%22%2C%20%22Proxy%22%2C%20%22centerscreen%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0438%u0432%u0430%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u0432%20%27about%3Aconfig%27%20..........%0Avar%20s%20%3D%20%22network.proxy.type%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20switch%28%20cbu.getPrefs%28s%29%20%29%20%7B%0A%20%20%20%20%20%20case%200%3A%20icon.src%20%3D%20self.image%3B%20break%3B%0A%20%20%20%20%20%20case%202%3A%20icon.src%20%3D%20%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAA4GQAAnFmkAHQ5fAAQAKAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAEBAQECAgICAgICAgICAgMBAQEAAAQBJBFQOLQ+nX38ecev/mu6of8gfFvtAyUXewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMLUza7PKd//3S7oP2849X9zuvh/mW4mf4XiV7/AB4QZwAAAAAAAAAAAQEBAQAAAAAZGhgTKSwnLyYqJDErKCUnID8vXgaAUP9BlnH8b7ea/ojHrv+q2sf/a7CT+zGWbf8PakXGAAIAAAEBAQMHBwcbAAAAD2BiXn76/ff/4ebg/Onm4f+DtZ7/A31L/j2Wb/+Fwaj/ls23/7rh0v9+vaT+M5du/xKGWO0DIxIdAAAAAAEBAQEAAAABBgYFEaSmorbP08z239vX/4OwnP4ail3/RJlz/5HHsP/T7+X/ms64/3K2mP40k2r/D3tM7AUiExwhIx8meXt1mXt+eKJ3eXSce353n6esouDMysf/o7eq/kOdeP92uZv/vuPT/9Hs4P/C4tT/eLWa+juWbv8bcEq7AAYBAF1gWn7//////f39/P//////////////////////////lcKx/3i9pf/K7OD/2O/l/7ndzf6Fw6n/VK+I/AsxHj8AAAAAXF5bf+Ln2P+AnU/4fZ1N+4WiV/yKp13+jKlh/5CsZf+GpFj/Zpxh/4C5nf+i0L7+k8ex/1udf+UTOCZFAAAAAAEBAQJfYF5/3uXR/16IIPxciiH/Z5Iv/26YOP9ymz3/cpw+/3OcPf9wlzb/YI80/1mKNPu707X/YmZjiAAAAAAEBAQGAAAAAF9gXoDg5tT/cJU6/HGaPf9/pE3/hqtX/4uvXf+NsF7/iKxZ/4KoU/9+o0r/cpY6+9zjyf9ubm2JAAAAAAMEAwQAAAAAX2BegODm1P94nEX8e6JJ/4quXP+Vt2n/nb1z/6LBef+jwXz/ob96/527d/+NrGP71+HG/2praogAAAAABAQDBAAAAABfYF2A4ObU/4WlVvyPsmP/osB7/7HMj/+81J3/wdik/8DXo/+60pz/tc6X/6G6ffvY4sf/amtqiAAAAAAEBAMEAAAAAF9gXn/e5dL/n7l7/LLMk//B16X/zuG2/9jpwv/b68b/2enE/9Pkvv/Q4bv/uMud+9jhyP9qa2mHAAAAAAQEAwQAAAAAX2Bef97k0v+gt335sceT/LrNnfzC1Kj8ydmx/MzatfzK2bP8xtav/MbVr/ywwpL41+HH/2tsaokAAAAABAQDBAAAAABZW1Z3+fz1/+Dm1Pzj6db/5u3b/+nv3v/r8eD/6vDe/+ft2//k69j/4efT/9ngzPv7//b/ZGdhfwAAAAADBAMEAAAAABcZFRpZW1Z6YGFfgWBiYIBhYmGAYmJhgGJjYoBiY2KAYmJhgGFiYYBgYWCAX2BegF1fWoAbHRkeAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%27%3B%20break%3B%0A%20%20%20%20%20%20default%3Aicon.src%20%3D%20self.image%3B%0A%20%20%20%7D%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u043D%u0430%20%u0440%u0435%u0436%u0438%u043C%20%27%u0411%u0435%u0437%20%u043F%u0440%u043E%u043A%u0441%u0438%27%20%u043F%u0440%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0438%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043E%20%u0432%20%27about%3Aconfig%27%20..........%0Avar%20switchOffProxy%20%3D%20%7B%0A%20%20%20%20observe%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20if%20%28%20data%20%3D%3D%20%22shutdown%22%20%29%20cbu.setPrefs%28%22network.proxy.type%22%2C%200%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0AServices.obs.addObserver%28switchOffProxy%2C%20%22quit-application%22%2C%20false%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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

Отсутствует

 

№1253712-04-2018 20:36:05

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 831
UA: Firefox 52.0

Re: Custom Buttons

Щиплют nsIDOMEvent{Listener, Target}
Перезалил. Заодно переделал чуть ближе к manifest'ской инструкции style,
а то у меня не отображались иконки кнопки Cookies Permissions.

Infocatcher
Кстати, а что, на первый взгляд, могло бы быть
в Firefox 61 при клике на пункт «Показать cookies…»?

Типа показывать «Управление куками и данными сайтов»
(chrome://browser/content/preferences/siteDataSettings.xul),
или что-то другое, или, может, совсем скрыть этот пункт.

Отсутствует

 

№1253812-04-2018 21:11:25

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: unknown 0.0

Re: Custom Buttons

Lerd пишет:

Я не представляю, о чем в...

Вот готовая кнопка, но я его под себя не доделал, накидал много кодов внутрь так и валяется :)

Выделить код

Код:

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%3EQuick%20toggle%20for%20about%3Aconfig%20preferences%20%5BFix%21%5D%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0411%u044B%u0441%u0442%u0440%u043E%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20about%3Aconfig%20%u043E%u0442%2024.07.2016%0Athis._handleClick%3D%28%29%3D%3EmenuPopup.openPopup%28this%2C%22after_start%22%29%3Bvar%20menuPopup%3Dself.appendChild%28document.createElement%28%22menupopup%22%29%29%3BmenuPopup.id%3D%27quick-aboutconfig-menupopup%27%3B%0A%0A//%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043F%u0440%u0438%20%u043D%u0435%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0438%u0435%20%u043B%u044E%u0431%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u0435%u043B%u044C%u0441%u043A%u043E%u043C%u0443%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0442%u0435%u043D%u0438%u044E%20%28%u0441%u043C.%20%u043D%u0438%u0436%u0435%29%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u0438%u0438%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043B%u0438%u0431%u043E%20%u043F%u043E%u0441%u043B%u0435%20%u0435%u0433%u043E%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u044F.%0Avar%20s%3D%27CB.hasNotUserChoice%27%3Bfunction%20toggleImage%28%29%7Bvar%20val%3Dcustombuttons.getPrefs%28s%29%3Bself.image%3Dval%0A%3F%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%27%0A%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII%3D%27%3B%7D%3B%0AtoggleImage%28%29%3BServices.prefs.addObserver%28s%2CtoggleImage%2Cfalse%29%3BaddDestructor%28%28%29%3D%3EServices.prefs.removeObserver%28s%2CtoggleImage%29%29%3B%0A%0A//%20nodeName%3A%20menuitem%20-%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%20menu%20-%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29.%20menuseparator%20-%20%u0434%u043B%u044F%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044F.%0A//%20pref%20-%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20about%3Aconfig.%0A//%20%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0438%u043C%u0435%u044E%u0449%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u043E%u0442%u043B%u0438%u0447%u043D%u044B%u0435%20%u043E%u0442%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0445%20-%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u044B%20%u0436%u0438%u0440%u043D%u044B%u043C%20%u0441%u0442%u0438%u043B%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430.%0A//%20restart%20%28%u0437%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0441%20%u043F%u0443%u0441%u0442%u044B%u043C%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%u043C.%20%u0442.%u0435.%2C%20restart%3A%20%22%22%29%20-%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u043A%u0430%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//%20%28%u0441%20%u043F%u043E%u0434%u0442%u0432%u0435%u0440%u0436%u0434%u0435%u043D%u0438%u0435%u043C%20%u0432%20%u0434%u0438%u0430%u043B%u043E%u0433%u043E%u0432%u043E%u043C%20%u043E%u043A%u043D%u0435%29%20%u043F%u043E%u0441%u043B%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20key%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20accesskey%20-%20%u043A%u043B%u0430%u0432%u0438%u0448%u0438%20%u0434%u043B%u044F%20%u0431%u044B%u0441%u0442%u0440%u043E%u0439%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%20%u043F%u043E%20%u043C%u0435%u043D%u044E.%0A//%20userChoice%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0438%u0442%u0430%u0435%u043C%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0438%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0441%20%u043D%u0438%u043C%20%u043D%u0435%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%2C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E/%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u043E%u043C%u0435%u0447%u0430%u044E%u0442%u0441%u044F%20%u043A%u0440%u0430%u0441%u043D%u044B%u043C%20%u0446%u0432%u0435%u0442%u043E%u043C.%0A//%20%u0422%u0430%u043A%u0436%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0442%u0430%u043A%u0438%u0445%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432.%20%u0421%u043C.%20%u0441%u0442%u0438%u043B%u044C%20%u0432%20%u043F%u043E%u0441%u0442%u0435%20%u043A%u043A%u043D%u043E%u043F%u043A%u0438.%0A//%20%u0410%20%u0442%u0430%u043A%u0436%u0435%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0438%u043A%u043E%u043D%u043A%u0430%20%u0441%u0430%u043C%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%28%u0441%u043C.%20%u0432%u044B%u0448%u0435%29.%0A//%20strValues%20-%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0438%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u043C%u043E%u0435%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F.%20%u0417%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u0417%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u0432%u0438%u0434%u0435%3A%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%2C%2C%2Caccesskey%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04352%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04352%2C%2C%2Caccesskey2%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04353%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04353%20%u0438%20%u0442.%u0434.%20%28accesskey%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u043E%u043F%u0446%u0438%u043E%u043D%u0430%u043B%u044C%u043D%u043E%29%0A//%20%u041F%u043E%u043B%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%u0445%2C%20%u043F%u0440%u0438%20%u043D%u0430%u0432%u0435%u0434%u0435%u043D%u0438%u0438%20%u043D%u0430%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E/%u043F%u0443%u043D%u043A%u0442%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E.%0A//%20%u0414%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20-%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0441%u0440%u0430%u0437%u0443%20%u043F%u043E%u0441%u043B%u0435%20%u0441%u0430%u043C%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%28%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20true%20-%20%u0442%u0430%u043A%u0436%u0435%20%u0441%u0442%u0430%u0432%u0438%u0442%20%u0433%u0430%u043B%u043E%u0447%u043A%u0443%20%u0434%u043B%u044F%20%u043D%u0435%u0433%u043E%29.%0A//%20%u041B%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20-%20%u043F%u0435%u0440%u043A%u043B%u044E%u0447%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%0A//%20%u043B%u044E%u0431%u0430%u044F%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u0432%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u044D%u0442%u043E%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u041F%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044E%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0441%u0431%u0440%u0430%u0441%u044B%u0432%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435.%0A//%20%u041A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%3A%20Enter%20-%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20%u0421%u043F%u0435%u0446%u043A%u043B%u0430%u0432%u0438%u0448%u0430%20%u0432%u044B%u0437%u043E%u0432%u0430%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20/%20Shift+Enter%20-%20%u0441%u0431%u0440%u043E%u0441%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435.%0A//%20Alt%20+%20M%20-%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438.%20%28%u0421%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0441%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%20%u0441%u0432%u043E%u0435.%20%u0421%u043C.%20%u0432%20%u043A%u043E%u043D%u0446%u0435%20%u043A%u043E%u0434%u0430%29%0A%5B//%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u041E%u0442%u043A%u043B.%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u044D%u0448%u0430%22%2C%20pref%3A%22browser.cache.disk.enable%22%2C%20userChoice%3A%22false%22%7D%2C%0A//%20%20%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u041E%u0442%u043A%u043B.%20%u043A%u044D%u0448%u0430%20%u0432%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u043E%u0439%20%u043F%u0430%u043C%u044F%u0442%u0438%22%2C%20pref%3A%22browser.cache.memory.enable%22%2C%20userChoice%3A%22false%22%7D%2C%0A%20%20%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20%20%20%20%20//%7BnodeName%3A%22menu%22%2C%20name%3A%22Back-story-cash%20%5BTessssttt%5D%22%2C%20pref%3A%22browser.sessionhistory.max_total_viewers%22%2C%20strValues%3A%220%2C%2C%2C0%22%7D%2C%0A%20%20%20%20//%7BnodeName%3A%22menu%22%2C%20pref%3A%22image.animation_mode%22%2C%20key%3A%27i%27%2C%20userChoice%3A%22none%22%2C%20strValues%3A%22normal%2C%2C%2C%u0410%u043D%u0438%u043C%u0430%u0446%u0438%u044F%20%u043A%u0430%u0440%u0442%u0438%u043D%u043E%u043A%20%u0432%u043A%u043B.%2C%2C%2C%7C%7C%7Cnone%2C%2C%2C%u0410%u043D%u0438%u043C%u0430%u0446%u0438%u044F%20%u043A%u0430%u0440%u0442%u0438%u043D%u043E%u043A%20%u0432%u044B%u043A%u043B.%2C%2C%2C%22%7D%2C%0A%20%20%20//%7BnodeName%3A%22menu%22%2C%20pref%3A%22network.cookie.cookieBehavior%22%2C%20key%3A%27k%27%2C%20userChoice%3A%221%22%2C%20strValues%3A%222%2C%2C%2C%u041D%u0435%20%u043F%u0440%u0438%u043D%u0438%u043C%u0430%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0441%20%u0441%u0430%u0439%u0442%u043E%u0432%2C%2C%2C%7C%7C%7C0%2C%2C%2C%u041F%u0440%u0438%u043D%u0438%u043C%u0430%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0441%u043E%20%u0441%u0442%u043E%u0440%u043E%u043D%u043D%u0438%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0432%u0441%u0435%u0433%u0434%u0430%2C%2C%2C%7C%7C%7C3%2C%2C%2C%u041F%u0440%u0438%u043D%u0438%u043C%u0430%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0441%u043E%20%u0441%u0442%u043E%u0440%u043E%u043D%u043D%u0438%u0445%20%u043F%u043E%u0441%u0435%u0449%u0451%u043D%u043D%u044B%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%2C%2C%2C%7C%7C%7C1%2C%2C%2C%u041F%u0440%u0438%u043D%u0438%u043C%u0430%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0441%u043E%20%u0441%u0442%u043E%u0440%u043E%u043D%u043D%u0438%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u043D%u0438%u043A%u043E%u0433%u0434%u0430%2C%2C%2C%22%7D%2C%0A%20%20//%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20//%20%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u041E%u0442%u043A%u043B.%20%u043B%u043E%u043A%u0430%u043B%u044C%u043D%u043E%u0433%u043E%20%u0445%u0440%u0430%u043D%u0438%u043B%u0438%u0449%u0430%20DB%22%2C%20pref%3A%22dom.indexedDB.enabled%22%2C%20key%3A%27d%27%7D%2C%0A//%20%20%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u041E%u0442%u043A%u043B.%20%u043B%u043E%u043A%u0430%u043B%u044C%u043D%u043E%u0433%u043E%20%u0445%u0440%u0430%u043D%u0438%u043B%u0438%u0449%u0430%22%2C%20pref%3A%22dom.storage.enabled%22%2C%20key%3A%27s%27%7D%2C%0A%20%20%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20%20%20//%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u041E%u0442%u043A%u043B.%20%u0438%u043D%u0444%u0443%20%u043D%u0430%u0447%u0430%u043B%u043E/%u043A%u043E%u043D%u0435%u0446%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u0441%u0442%u0440%22%2C%20pref%3A%22dom.enable_performance%22%2C%20userChoice%3A%22false%22%7D%2C%0A%20%20//%7BnodeName%3A%22menu%22%2C%20name%3A%22%u0412%u043A%u043B/%u0412%u044B%u043A%u043B%20Referer%22%2C%20pref%3A%22network.http.sendRefererHeader%22%2C%20strValues%3A%220%2C%2C%2C0%22%7D%2C%0A%20//%20%7BnodeName%3A%22menuitem%22%2C%20name%3A%22%u0412%20%u043A%u0430%u0447%u0435%u0441%u0442%u0432%u0435%20%u0440%u0435%u0444%u0435%u0440%u0435%u0440%u0430%20%u043A%u043E%u0440%u0435%u043D%u044C%20%u0441%u0430%u0439%u0442%u0430%22%2C%20pref%3A%22network.http.referer.spoofSource%22%2C%20userChoice%3A%22true%22%7D%2C%0A//%20%20%7BnodeName%3A%22menu%22%2C%20name%3A%22referer.trimmingPolicy%22%2C%20pref%3A%22network.http.referer.trimmingPolicy%22%2C%20strValues%3A%222%2C%2C%2C2%22%7D%2C%0A%20%20%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20%20%7BnodeName%3A%22menuitem%22%2C%20name%3A%22On/Off%20javascript%22%2C%20pref%3A%22javascript.enabled%22%2C%20key%3A%27j%27%2C%20userChoice%3A%22true%22%7D%2C%0A%20%20%7BnodeName%3A%22menu%22%2C%20name%3A%22Configure%20Proxies%22%2C%20pref%3A%22network.proxy.type%22%2C%20strValues%3A%222%2C%2C%2CAutomaticP%2C%2C%2C%7C%7C%7C5%2C%2C%2CUse%20systemP%2C%2C%2C%22%7D%2C%0A%20%20%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20%20%20//%7BnodeName%3A%22menuitem%22%2C%20pref%3A%22dom.workers.enabled%22%2C%20key%3A%27w%27%2C%20userChoice%3A%22false%22%7D%2C%0A%20%20//%20%7BnodeName%3A%22menuitem%22%2C%20pref%3A%22media.autoplay.enabled%22%2C%20key%3A%27m%27%2C%20userChoice%3A%22false%22%7D%2C%0A//%20%7BnodeName%3A%22menuitem%22%2C%20pref%3A%22xpinstall.signatures.required%22%7D%2C%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//Check%20is%20compatibility%0A//%7BnodeName%3A%22menuitem%22%2C%20pref%3A%22browser.bookmarks.autoExportHTML%22%7D%2C%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%20%20%20%20%20%20%20%20%20%20%20%20//BookmarksHtml%20%5Bfalse%3Dplaces.sqlite%5D%0A//%20%20%7BnodeName%3A%22menuitem%22%2C%20pref%3A%22media.peerconnection.enabled%22%7D%2C%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//WebRTC%20false%3Doff%21%0A%20%20%7BnodeName%3A%22menuseparator%22%7D%2C%0A%20%20%7BnodeName%3A%22menu%22%2C%20name%3A%22User%20Agent%22%2C%20pref%3A%22general.useragent.override%22%2C%20key%3A%27u%27%2C%20userChoice%3A%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%22%2C%20strValues%3A%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%2C%2C%2CFirefox48/Linux%7C%7C%7CMozilla/5.0%20%28X11%3B%20Linux%20x86_64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/57.0.2987.133%20Safari/537.36%2C%2C%2CChrome%2057/Linux%7C%7C%7CMozilla/5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_11_6%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/57.0.2987.133%20Safari/537.36%2C%2C%2CChrome%2057/MacOSX%7C%7C%7CMozilla/5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_12_4%29%20AppleWebKit/603.1.30%20%28KHTML%2C%20like%20Gecko%29%20Version/10.1%20Safari/603.1.30%2C%2C%2CSafari%20Generic/MacOSX%7C%7C%7CMozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/57.0.2987.133%20Safari/537.36%2C%2C%2CChrome57/W7%7C%7C%7COpera/9.80%20%28Windows%20NT%206.2%3B%20Win64%3B%20x64%29%20Presto/2.12%20Version/12.16%2C%2C%2COpera12/W8%7C%7C%7CMozilla/5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/61.0.3163.98%20Safari/537.36%2C%2C%2CChrome61/W10%7C%7C%7CMozilla/5.0%20%28Linux%3B%20Android%207.0%3B%20PLUS%20Build/NRD90M%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/61.0.3163.98%20Mobile%20Safari/537.36%2C%2C%2CChrome61/Android7%7C%7C%7CMozilla/5.0%20%28compatible%3B%20Googlebot/2.1%3B%20+http%3A//www.google.com/bot.html%29%2C%2C%2CGoogleBot%7C%7C%7CMozilla/5.0%20%28compatible%3B%20YandexBot/3.0%3B%20+http%3A//yandex.com/bots%29%2C%2C%2CYandexBot%7C%7C%7CMozilla/5.0%20%28compatible%3B%20Yahoo%21%20Slurp%3B%20http%3A//help.yahoo.com/help/us/ysearch/slurp%29%2C%2C%2CYahooBot%7C%7C%7CMozilla/5.0%20%28compatible%3B%20bingbot/2.0%3B%20+http%3A//www.bing.com/bingbot.htm%29%2C%2C%2CBingBot%7C%7C%7CDuckDuck%20bot/1.0%3B%20%28+http%3A//duckduckgo.com/duckduckbot.html%29%2C%2C%2CDuckDuckBot%7C%7C%7CMozilla/5.0%20%28compatible%3B%20Baiduspider/2.0%3B%20+http%3A//www.baidu.com/search/spider.html%29%2C%2C%2CBaiduspiderBot%7C%7C%7Cia_archiver%20%28+http%3A//www.alexa.com/site/help/webmasters%3B%20crawler@alexa.com%29%2C%2C%2CAlexaCrawlerBot%7C%7C%7CMozilla/5.0%20%28Linux%3B%20Android%205.1.1%3B%20SM-G928X%20Build/LMY47X%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/47.0.2526.83%20Mobile%20Safari/537.36%2C%2C%2CSamsung%20Galaxy%20S6%20Edge%20Plus%7C%7C%7CMozilla/5.0%20%28Windows%20Phone%2010.0%3B%20Android%204.2.1%3B%20Microsoft%3B%20Lumia%20950%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/46.0.2486.0%20Mobile%20Safari/537.36%20Edge/13.10586%2C%2C%2CMicrosoft%20Lumia%20950%7C%7C%7CMozilla/5.0%20%28Windows%20Phone%2010.0%3B%20Android%204.2.1%3B%20Xbox%3B%20Xbox%20One%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/46.0.2486.0%20Mobile%20Safari/537.36%20Edge/13.10586%2C%2C%2CXbox%20One%7C%7C%7CMozilla/5.0%20%28PlayStation%204%203.11%29%20AppleWebKit/537.73%20%28KHTML%2C%20like%20Gecko%29%2C%2C%2CPlaystation%204%7C%7C%7C%2C%2C%2C%u041F%u0443%u0441%u0442%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%22%7D%2C%0A//%7BnodeName%3A%22menu%22%2C%20pref%3A%22general.useragent.locale%22%2C%20key%3A%27l%27%2C%20restart%3A%22%22%2C%20strValues%3A%22en-US%2C%2C%2CEnglish%2C%2C%2Ce%7C%7C%7Cru%2C%2C%2C%u0420%u0443%u0441%u0441%u043A%u0438%u0439%2C%2C%2Cr%22%7D%2C%0A//%20%20%7BnodeName%3A%22menu%22%2C%20name%3A%22language%22%2C%20pref%3A%22intl.accept_languages%22%2C%20strValues%3A%22en-US%2C%20en%3Bq%3D0.5%2C%2C%2Cen-US%2C%20en%3Bq%3D0.5%2C%2C%2Ce%7C%7C%7Cen-US%2C%20en%2C%20ru-RU%2C%20ru%2C%2C%2Cen-US%2C%20en%2C%20ru-RU%2C%20ru%2C%2C%2Cr%22%7D%2C%0A//%20%20%7BnodeName%3A%22menu%22%2C%20name%3A%22Platform%20Win32/Win64%22%2C%20pref%3A%22general.platform.override%22%2C%20strValues%3A%22Win32%2C%2C%2CWin32%2C%2C%2C%7C%7C%7CWin64%2C%2C%2CWin64%2C%2C%2C%22%7D%2C%0A//%7BnodeName%3A%22menu%22%2C%20pref%3A%22browser.display.document_color_use%22%2C%20key%3A%27c%27%2C%20userChoice%3A%220%22%2C%20strValues%3A%220%2C%2C%2CAutomatic%2C%2C%2C0%7C%7C%7C1%2C%2C%2CAlways%2C%2C%2C1%7C%7C%7C2%2C%2C%2CNever%2C%2C%2C2%22%7D%2C%0A//%7BnodeName%3A%22menu%22%2C%20pref%3A%22CB.TEST%22%2C%20key%3A%27t%27%2C%20userChoice%3A%22C%3A%5C%5CDownloads%5C%5CTEST1%22%2C%20strValues%3A%22C%3A%5C%5CDownloads%5C%5CTEST1%2C%2C%2CTEST1%2C%2C%2C1%7C%7C%7CC%3A%5C%5CDownloads%5C%5CTEST2%2C%2C%2CTEST2%2C%2C%2C2%22%7D%0A%5D.forEach%28function%28m%29%7Bvar%20mItem%3Ddocument.createElement%28m.nodeName%29%3Bvar%20browserRestart%3D%27%27%3B%0Aif%20%28%22restart%22%20in%20m%29%20browserRestart%3D%27%20if%20%28custombuttons.confirmBox%28null%2C%20%22Restart%3F%22%2C%20%22Yes%22%2C%20%22Cancel%22%29%29%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%27%3B%0Aif%20%28%22name%22%20in%20m%29%20mItem.setAttribute%28%27name%27%2Cm.name%29%3Bif%20%28%22pref%22%20in%20m%29%20%7BmItem.setAttribute%28%27closemenu%27%2C%27none%27%29%3B%0AmItem.setAttribute%28%27oncontextmenu%27%2C%27event.preventDefault%28%29%3Bcustombuttons.clearPrefs%28%22%27+m.pref+%27%22%29%3B%27+browserRestart%29%3B%7D%0Aif%20%28%22key%22%20in%20m%29%20mItem.setAttribute%28%27accesskey%27%2C%20m.key%29%3Bif%20%28m.nodeName%3D%3D%3D%22menuitem%22%29%20%7BmItem.setAttribute%28%27type%27%2C%27checkbox%27%29%3B%0AmItem.setAttribute%28%27oncommand%27%2C%27custombuttons.setPrefs%28%22%27+m.pref+%27%22%2C%21custombuttons.getPrefs%28%22%27+m.pref+%27%22%29%29%3Bif%20%28event.shiftKey%20%26%26%20event.keyCode%3D%3Devent.DOM_VK_RETURN%29%7Bevent.preventDefault%28%29%3Bcustombuttons.clearPrefs%28%22%27+m.pref+%27%22%29%7D%3B%27+browserRestart%29%3B%7D%0Aif%20%28m.nodeName%3D%3D%3D%22menu%22%29%7BmItem.setAttribute%28%27class%27%2C%27menu-iconic%27%29%3B%0A%0Avar%20subMenu%3DmItem.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0Afor%20%28var%20value%20of%20m.strValues.split%28%27%7C%7C%7C%27%29%29%7Bvar%20submItem%3Ddocument.createElement%28%22menuitem%22%29%3Bvar%20smVal%3Dvalue.split%28%27%2C%2C%2C%27%29%5B0%5D%3B%0Avar%20smValConv%3DconvertFromUnicode%28%22UTF-8%22%2CsmVal%29%3Bvar%20smName%3Dvalue.split%28%27%2C%2C%2C%27%29%5B1%5D%3Bvar%20key%3Dvalue.split%28%27%2C%2C%2C%27%29%5B2%5D%3B%0A%0Akey%20%26%26%20submItem.setAttribute%28%27accesskey%27%2Ckey%29%3BsubmItem.setAttribute%28%27type%27%2C%27radio%27%29%3BsubmItem.setAttribute%28%27label%27%2CsmName%29%3BsubmItem.setAttribute%28%27tooltiptext%27%2CsmVal%29%3BsubmItem.setAttribute%28%27closemenu%27%2C%27none%27%29%3B%0AsubmItem.setAttribute%28%27oncommand%27%2C%27try%7Bcustombuttons.setPrefs%28%22%27+m.pref+%27%22%2C%22%27+smValConv.replace%28/%5C%5C/g%2C%27%5C%5C%5C%5C%27%29+%27%22%29%7Dcatch%28e%29%7BServices.prefs.setIntPref%28%22%27+m.pref+%27%22%2C%22%27+smValConv+%27%22%29%7D%3B%27+browserRestart%29%3B%0AsubMenu.appendChild%28submItem%29%3B%7D%7D%0A%0AmenuPopup.appendChild%28mItem%29%3B%0A%0A%20%20//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%u044B%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%0A%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0443%u044E%u0449%u0438%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0438%20%u0447%u0435%u043A%u0431%u043E%u043A%u0441%u044B%20%u0434%u043B%u044F%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%20%u043C%u0435%u043D%u044E%20%u0438%20%u043A%u043B%u0438%u043A%u0430%u0445%0A%20%20for%20%28var%20type%20of%20%5B%27command%27%2C%27popupshowing%27%2C%27contextmenu%27%5D%29%7BaddEventListener%28type%2C%28e%29%3D%3E%7BsetTimeout%28%28%29%3D%3E%7Bif%20%28%22pref%22%20in%20m%29%7Bvar%20val%2Cdef%3B%0A%20%20%20def%3DServices.prefs.prefHasUserValue%28m.pref%29%3B%0A%20%20%20try%20%7Bval%3DServices.prefs.getComplexValue%28m.pref%2CCi.nsISupportsString%29.data%3B%7D%20catch%28e%29%20%7B%0A%20%20%20if%20%28Services.prefs.getPrefType%28m.pref%29%3D%3D64%29%20val%3Dcustombuttons.getPrefs%28m.pref%29.toString%28%29%3Belse%20val%3Dcustombuttons.getPrefs%28m.pref%29%3B%7D%0A%20%20%20def%20%3F%20mItem.style.setProperty%28%27font-weight%27%2C%20%27bold%27%2C%20%27important%27%29%20%3A%20mItem.style.removeProperty%28%27font-weight%27%29%3B%7D%0A%0A%20%20%20%20%20if%20%28m.nodeName%3D%3D%3D%27menuitem%27%29%7BmItem.setAttribute%28%27checked%27%2Cval%29%3BmItem.label%3D%28mItem.hasAttribute%28%27name%27%29%20%3F%20mItem.getAttribute%28%27name%27%29%20%3A%20m.pref%29+%27%20-%20%22%27+val+%27%22%27%3B%0A%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%7Btry%20%7Bvar%20usrChc%3D%28val.toString%28%29%3D%3D%3Dm.userChoice%29%7D%20catch%28e%29%20%7BusrChc%3Dfalse%7D%3B%0A%0A%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2CusrChc%29%3BusrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%27orangered%27%2C%27important%27%29%3B%7D%7D%0A%20%20%20%20%20if%20%28subMenu%29%7Bfor%20%28var%20smitem%20of%20subMenu.getElementsByTagName%28%27menuitem%27%29%29%20%7Bvar%20smval%3Dsmitem.getAttribute%28%27tooltiptext%27%29%3Bsmitem.setAttribute%28%27checked%27%2C%28val%3D%3D%3Dsmval%29%20%3F%20true%20%3A%20false%29%3B%7D%7D%0A%20%20%20%20%20if%20%28m.nodeName%3D%3D%3D%22menu%22%29%20%7Bvar%20vname%3B%0A%20%20%20%20%20try%20%7Bvname%3DsubMenu.getElementsByAttribute%28%27checked%27%2C%27true%27%29%5B0%5D.getAttribute%28%27label%27%29%3B%7D%20catch%28e%29%20%7Bif%20%28%21Services.prefs.prefHasUserValue%28m.pref%29%29%20vname%3D%27Default%27%3Belse%20vname%3D%27Other%27%3B%7D%0A%0A%20%20%20%20%20mItem.setAttribute%28%27label%27%2C%28mItem.hasAttribute%28%27name%27%29%20%3F%20mItem.getAttribute%28%27name%27%29%20%3A%20m.pref%29+%27%20-%20%22%27+vname+%27%22%27%29%3B%0A%20%20%20%20%20mItem.setAttribute%28%27tooltiptext%27%2Cval%20%7C%7C%20%27This%20preferences%20has%20null%20value%20or%20does%20not%20exist.%27%29%3B%0A%0A%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7Bvar%20smUsrChc%3D%28val%3D%3D%3Dm.userChoice.toString%28%29%29%3BmItem.setAttribute%28%27user-choice%27%2CsmUsrChc%29%3B%0A%20%20%20%20%20smUsrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%27orangered%27%2C%27important%27%29%3B%7D%7D%0A%0A%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7Bvar%20hasNotUserChoice%3DmenuPopup.getElementsByAttribute%28%27user-choice%27%2C%27false%27%29%5B0%5D%3Bcustombuttons.setPrefs%28s%2ChasNotUserChoice%20%3F%20true%20%3A%20false%29%3B%7D%7D%2C%200%29%7D%2Cfalse%2CmenuPopup%29%7D%7D%29%3B%0A%0A//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%20%u043F%u043E%u0437%u0432%u043E%u043B%u044F%u044E%u0449%u0438%u0439%20%u0441%u0431%u0440%u043E%u0441%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0441%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20%u043F%u043E%20Shift%20+%20Enter%0A//%20%u0417%u0430%20%u043A%u043E%u0434%20%u0441%u043F%u0430%u0441%u0438%u0431%u043E%20Dumby%0AaddEventListener%28%22popupshown%22%2C%7BhandleEvent%3A%20function%28e%29%7Bthis%5Be.type%5D%28e%29%3B%7D%2C%0Apopupshown%3A%20function%28e%29%20%7Bif%20%28e.target%21%3DmenuPopup%29%20return%3BmenuPopup.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3Bwindow.addEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%7D%2C%0Apopuphidden%3A%20function%28e%29%20%7Bif%20%28e.target%21%3DmenuPopup%29%20return%3BmenuPopup.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3Bwindow.removeEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%7D%2C%0Apopupshowing%3A%20function%28e%29%20%7Be.target.parentNode.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3Be.preventDefault%28%29%3B%7D%2Cget%20old%28%29%20%7Bdelete%20this.old%3B%0Athis.e%20%3D%20new%20MouseEvent%28%22contextmenu%22%2C%20%7B%7D%29%3Breturn%20this.old%3DparseInt%28Services.appinfo.platformVersion%29%20%3C%2025%3B%7D%2Cget%20prop%28%29%20%7Bdelete%20this.prop%3B%0Aif%20%28%22key%22%20in%20KeyboardEvent.prototype%29%20this.prop%20%3D%20%22key%22%2C%20this.val%3D%22Enter%22%3Belse%20this.prop%20%3D%20%22keyCode%22%2C%20this.val%3DKeyboardEvent.DOM_VK_RETURN%3Breturn%20this.prop%3B%7D%2C%0Akeydown%3A%20function%28e%29%20%7Bif%20%28%21e.shiftKey%20%7C%7C%20e.ctrlKey%20%7C%7C%20e.altKey%20%7C%7C%20e%5Bthis.prop%5D%20%21%3D%20this.val%29%20return%3Bvar%20target%3DmenuPopup.querySelector%28%22menu%5B_moz-menuactive%5D%3Anot%28%5Bopen%5D%29%22%29%3B%0Aif%20%28%21target%29%20return%3Bthis.old%20%3F%20target.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%20%3A%20e.stopPropagation%28%29%3Btarget.dispatchEvent%28this.e%29%3BmenuPopup.dispatchEvent%28this.e%29%3B%7D%7D%2C%20false%2C%20menuPopup%29%3B%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u043E%20%u0441%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u044E%20%u043A%u043B%u0430%u0432%u0438%u0448%20Alt%20+%20M%20%28%u043D%u0435%20%u0437%u0430%u0432%u0438%u0441%u0438%u0442%20%u043E%u0442%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0440%u0430%u0441%u043A%u043B%u0430%u0434%u043A%u0438%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u044B%29%0A//%20%u041F%u043E%u0441%u043C%u043E%u0442%u0440%u0435%u0442%u044C%20%u043A%u043E%u0434%u044B%20%u043A%u043B%u0430%u0432%u0438%u0448%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0434%u0435%u0441%u044C%3A%20https%3A//developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode%23Constants_for_keyCode_value%0AaddEventListener%28%27keyup%27%2C%28e%29%3D%3E%7Bif%20%28e.altKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.keyCode%3D%3D77%29%7Be.preventDefault%28%29%3Be.stopPropagation%28%29%3B%0AmenuPopup.showPopup%28this%2C-1%2C-1%2C%22popup%22%2C%22bottomleft%22%2C%22topleft%22%29%3B%7D%7D%2Cfalse%2Cwindow%29%3B%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2Cstr%29%20%7Bvar%20converter%3DCc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0Aconverter.charset%3Dcharset%3Bstr%3Dconverter.ConvertFromUnicode%28str%29%3Breturn%20str+converter.Finish%28%29%3B%7D%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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

unter_officer пишет:

Попробуйте эту кнопку, м...

Не пашет на 59, проверил.

Upd: Даже если подходит, я не сторонник иметь 10 кнопок. Когда можно обойтись одним, и вам советую. :)
А так каждый решает сам+если надумать переходить на 59 париться меньше.

Еще раз Upd, реально что как тролли? ну не заметил, ято тестил на своем.
Может еще раз поправите, кто некст? Я вам дал элегантное решение, сам ему вписал туда код, а вы набросились.
Когда я просил раньше помощь мало кто помогал, зато как поправить так все тут:)

Отредактировано Gladius333 (12-04-2018 23:30:32)

Отсутствует

 

№1253912-04-2018 21:25:45

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 120
UA: Firefox 47.0

Re: Custom Buttons

Gladius333 пишет:

Не пашет на 59, проверил.

На 59 версии не проверял. На 58.0.2 работает.
А у Lerd'а, если верить UserAgent, 52 версия. Так что моя кнопка вполне может подойти. ;)

Отсутствует

 

№1254012-04-2018 21:44:41

sandro79
Участник
 
Группа: Members
Откуда: Гиперборея
Зарегистрирован: 15-11-2017
Сообщений: 426
UA: Firefox 58.0

Re: Custom Buttons

Gladius333 пишет:

Не пашет на 59, проверил.

Lerd пишет:

Мозила 52.7.3 esr 32бита

№12531

Отсутствует

 

№1254113-04-2018 00:36:28

Lerd
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 9
UA: Firefox 52.0

Re: Custom Buttons

unter_officer пишет:

Попробуйте эту кнопку, может подойдёт:
Выделить код
Код:
custombutton:///...

То что нужно! Работает! Спасибо! Заработало только с

bunda1 пишет:

установить от сюда подписаную версию Custom Buttons: Custom Buttons • View topic - [Signed fixed extension attached] CB broken on Firefox 48+

Отсутствует

 

№1254215-04-2018 03:57:21

Small_Z
Участник
 
Группа: Members
Зарегистрирован: 18-02-2011
Сообщений: 11
UA: Chrome 50.0

Re: Custom Buttons

Garalf пишет:

Т. е. FF60 - последняя верия, где CB пашет.

Ай ай почти что-то не пашет - контент отвалился! (если мультипроцесс по умолчанию - включён)
Нет ли способов восстановить взаимодействие с content?

О нашёл, походу типа как тут, наверное https://forum.mozilla-russia.org/viewto … 22#p720922

Отредактировано Small_Z (15-04-2018 07:08:24)

Отсутствует

 

№1254315-04-2018 10:36:13

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: unknown 0.0

Re: Custom Buttons

Кто знает, как сделать так чтобы при "ПКМ" открывалось только "preferences", без панели CB.
С "default" он не пашет, как я понял он отвечал за это раньше... Кстати "СКМ" это клик средней кнопки?
Upd-Настройка функций кликов мыши для кнопки

Выделить код

Код:

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%3ESettings%20%5BFix%21%5D%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%20data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaUlEQVQ4y6WTW0sCQRiG/SEpVBDUVVfphbAEhWAlqYhrLWUlER2IIgrqYkEp6SBmudWiFf0SiSCwpAI7bJnprq6H/sTbGhJiEyt28fAN7zfz8DHDaABo/oPqBpovX7j4T1gOS6dNCcYiZbhOSrCHi2hugqNCwskVYNmXbxoSuPkCN3NWhCdahLLGKCfDcSBjOJiHeTeHPr8EyifCwGb9RMF0RIaHl+E+zoMJ5+AM5WALSBjaEWHayqLXm4GR/YB+Iw2iYIKTMB6WwIRE0EER9r0s+r1pGNZT6F55ReeigPb5F7TOPpMFTDCDkUAGA753GFYFdC08QedJEvkR2DbfzuntFBz+1K2ZFdCz9Ii2qQfo3Pck2MoZpVI/AqtXQAXjchIdk3fQMok/Ib6CaS0Z1c8pdlc8pqXjUOF7AqVSxDvQOq7RKERBi/UKdbDVnK3vkQWWS9Si1vstGIyxCqiBquZUXc429BfU+AL9Tqy8Q2Za8AAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%0Athis.onclick%20%3De%3D%3E%20%7Bif%28e.button%3D%3D0%29BrowserOpenAddonsMgr%28%29%3B//%u041B%u041A%u041C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28e.button%3D%3D1%29gShowPopup%28this%29%3B%20%20%20%20%20%20//%u0421%u041A%u041C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28e.button%3D%3D2%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%29%7B//%u041F%u041A%u041C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%7Bdocument.getElementById%28%22custombuttons-contextpopup%22%29.hidePopup%28%29%3B%7D%2C0%29%3BopenPreferences%28%29%3B%7D%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.tooltipText%3D%22%u041B%3A%20Addons%5Cn%u0421%3A%20CBMenu%5Cn%u041F%3A%20Preferences%22%3B%0A//data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABuwAAAbsBOuzj4gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMJSURBVDiNdVPNa1N5FD2/30uMeX1IPjFmE3BKERdhRKqgwyBqibsuZqGYRRf2H3Ax0J28je22XcRCwwhNKh0ki24GSn20iE3TNMKjONKkHyYUokmbMR++F/Oa966baUkVL9zNvfdc7jmHy4gIP4uFhcUFABgejgz/dIiITjKZTF3JZtXKzEziPgC+tbV3tLW1dwSAz8wk7mezaiWZTF3pxZxaEI2O3mk2NSoWy918/kO73e5Qu92hQuFDu1gsd5tNjaLR0Tu9GEZEiMdf/Orz+Ry6rndu3rz21u/3ciLCp08VAEAgcB6MMRwc1KzV1exVURQdh4eHndHRhyoDwBYXX38Mhy+f17S26fW6hHR6HUtLKzBNEwAgCAKGhm7hxo3rqNXqZl+fU9jcfF+JRH6/wImIEolZeX+/bElSn5DLqUins0TUKXBuRDk3okSdQjqdpVxOhST1Cfv7ZSuRmJXpRAiAK0pGL5UqNDUVt2T5ab6XJxFBlp/mp6biVqlUIUVZ0wFwIgKfnIwnl5fXW8FgwKlpOiRJZB6PW/7eLY/HLUuSyDRNRzB4wbm8vN6anIwnbaq6yTWtaw+FfoHLJcHn8+PsWdsPdnu9XkiSG3t7H1Gvf0GptGvf3n7PTyiMj0+35uaWqFAoWoqy8gMFRVnJFwpFa35eofHx6dYxBRsAxGKz94jsgig6oOsGGxi41K+qm3nLIhkAOGdPBgYu9TcaGjt3ToTH4xZisdl7AP7hjDFWLldjLpfHqesNq15v4etXg4dCF/sDgeBcIBCcC4Uu9h8ddXmzqUHXm5bf73dWq7UYY4zZiIgikeEHq6uvXA6Hvf748Z9vOh2XcHBQ46LoAGMMnz/XuWmaMIwv5vPnz34zDMNltzvqRESs95mmp/+6Ojh4faPR+K9rWQaFw+EzjDG8e/evYbefYW63z5bJpAcfPRp5e4zhvUpnMmlbLpepplJ/jwwN3XXu7u5oOzvb2u3bt5wvX86PbGysVTOZtVMWnboAABhjjP4vTkxMpABgbGzsj+97x/ENhTvQG3f/6bsAAAAASUVORK5CYII%3D%0A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D704725%23p704725%0A//openWebPanel%28%22Downloads%22%2C%22about%3Adownloads%22%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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

И еще хотел спросить можно эту кнопку подружить с 59? на 58 вроде работал, и действовал даже на "my_userChrome.css". Если можете, если нет то ладно.
Кнопку от "Dumby" не предлагать. Там он вроде пашет только на userChrome.css...
Reload user{Chrome, Content}.css

Выделить код

Код:

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%3EReload%20user%7BChrome%2C%20Content%7D.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAIpwAACKcBMsYCAwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMwSURBVEiJ5dbNb5RVFMfxz3mmrYgYE0IN4IaKb4n4UqOwMCYu2JCoQVDiwoUrQ4j0xao7ExITQxRoodEFK1cmRkSE8AeYYKpEFF0YY4SiUSMRQW0sLe0818U8nekwHe3U7vhtnnNOzj3f89znPvderjVFK8npaSWrPSjpElahQzhvyrF4y++t1GqbF7DHOvQLj6Ozrt2EDutYRHAasMK0vXgWWZO0SX/7DlJf6Skp3UWcFeVRV4zG235tCZx6rDPtKLqqAN4XPhROm3DJEiG3LA6aKkZ14jUSKaOd1Gsco6Qz8vRiDDvTFJz63S13AjdVAg7JvBxDzs2RfrE2MP9ijolZijvJXo/h8pmmb5z6LZf7qICWJQNxwP5mM1OnzNdy03V1U0oi2x77y+/Wp16t3CDWgvDKvKGIQZepfO+iWBIpKG9s7HGW0k7dKgsJjsSQffOF1or4srAuS04U9jOp14amYGGgiF2Re6llaEWnMSbPNyl5DtNFQzvnBKdd2oRNhXt4ZvW1rCwfkbInY9jHMeiscBiEJ9Lz2mfSaovgovXC8sI7siAoYsgnMy8JkmPYhhtdbwOV6a9NdVhT69qphYIblPl0FuO2WrimVVVrcu7dZkFqd75q525uBCelqj0tXzRwvSYbwWZ1doOVi4Yad0vVDj81gjPfV+2y9YsGLnlgFrj6p9TA405irPAemwmn/raNqc/D/wO9uXj+bMhXDeDihDledLYt9VmTektb5flxebYgcOpx+yzw0aic3vXgSqY9hdUuOUx6T+WWcX/LUELYh3ZMyqq1G8FxwCl8ULjdVFd6d6tgPQbMfLIwHIPONgVXWs1OFm3Mjt6Rdlg2X2bq0yfsLtzP/OHVq3PqzuPUm/Vj9xz9ZDrcg5F/Bb6gS8mbkq1F6EdlW+IdE03Baae1pEeJb1SuO0vrMvPsPvKRArDaChf8qWRal/BQccBsxnXFiBFTtjS7czW93qYdVurQJZW6SLeK+DaGyofSLh0uGUNHk6F/SfZI3ojh2k41b3DThnrdS+1/nAnjcxzR5mDsdeG/6szrXl2nJX4w4RFJJ3LhF7lzMey3lmtdU/oHaoj4Y/PDRWgAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28obj%20%3D%3E%20%7B%0A%09this.onclick%20%3D%20obj.click.bind%28obj%29%3B%0A%09this.oncontextmenu%20%3D%20obj.contextmenu.bind%28obj%29%3B%0A%09this.tooltipText%20%3D%20%22L%3A%20Reload%20userChrome.css%5CnM%3A%20CB%20Menu%5CnR%3A%20Reload%20userContent.css%22%3B%0A%7D%29%28%7B%0A%09click%28e%29%20%7B%0A%09%09if%20%28e.button%20%3D%3D%201%29%20return%20gShowPopup%28self%29%3B%0A%09%09if%20%28e.button%20%7C%7C%20%21this.chromeSheet%29%20return%3B%0A%09%09this.reload%28this.chromeSheet%29%3B%0A%09%09this.restyle%280%29%3B%0A%09%7D%2C%0A%09async%20contextmenu%28e%29%20%7B%0A%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.detail%20%21%3D%201%20%7C%7C%20%21this.contentSheetURL%29%20return%3B%0A%09%09e.preventDefault%28%29%3B%0A%0A%09%09var%20count%20%3D%20Services.ppmm.childCount%2C%20one%20%3D%20count%20%3D%3D%201%3B%0A%09%09var%20data%20%3D%20await%20this.reloadTab%28%22about%3Aconfig%22%2C%20one%20%3F%20false%20%3A%20%7B%7D%29%3B%0A%09%09if%20%28one%29%20this.reloadTab%28%29%3B%0A%09%09else%20if%20%28data%29%20%7B%0A%09%09%09var%20url%20%3D%20%22data%3A%2C%22%20+%20encodeURIComponent%28%0A%09%09%09%09self.Help%20+%20this.contentSheetURL%20+%20%27%22%2C%20%27%20+%20JSON.stringify%28data%29%20+%20%22%29%3B%22%0A%09%09%09%29%3B%0A%09%09%09var%20types%20%3D%20%5B%22web%22%2C%20%22file%22%2C%20%22extension%22%5D%3B%0A%09%09%09for%28var%20ind%20%3D%200%3B%20ind%20%3C%20count%3B%20ind++%29%20%7B%0A%09%09%09%09var%20child%20%3D%20Services.ppmm.getChildAt%28ind%29%3B%0A%09%09%09%09types.includes%28child.remoteType%29%20%26%26%20child.loadProcessScript%28url%2C%20false%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09this.restyle%28250%29%3B%0A%09%7D%2C%0A%09reload%28sheet%2C%20obj%29%20%7B%0A%09%09var%20style%20%3D%20Cu.readURI%28Services.io.newURI%28sheet.href%29%29%3B%0A%09%09this.inIDOMUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09if%20%28obj%29%20obj%5Bsheet.href%5D%20%3D%20style%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20this.reload%28rule.styleSheet%2C%20obj%29%3B%0A%09%09%7D%0A%09%09return%20obj%3B%0A%09%7D%2C%0A%09reloadTab%28url%2C%20obj%29%20%7B%0A%09%09var%20tab%20%3D%20gBrowser.addTab%28url%29%3B%0A%09%09return%20new%20Promise%28resolve%20%3D%3E%20%7B%0A%09%09%09var%20result%2C%20stop%2C%20destroy%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09%09%09if%20%28%21stop%29%20resolve%28result%29%2C%20gBrowser.removeTab%28tab%29%2C%20stop%20%3D%20true%3B%0A%09%09%09%7D%0A%09%09%09setTimeout%28destroy%2C%20500%29%3B%0A%09%09%09try%20%7B%0A%09%09%09%09gBrowser.hideTab%28tab%29%3B%0A%09%09%09%09tab.linkedBrowser.addEventListener%28%22DOMContentLoaded%22%2C%20e%20%3D%3E%20%7B%0A%09%09%09%09%09var%20sheet%20%3D%20this.getSheet%28e.target%2C%20this.contentSheetURL%29%3B%0A%09%09%09%09%09if%20%28sheet%29%20result%20%3D%20this.reload%28sheet%2C%20obj%29%3B%0A%09%09%09%09%09destroy%28%29%3B%0A%09%09%09%09%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%09%09%09%7D%20catch%28ex%29%20%7B%0A%09%09%09%09destroy%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%2C%0A%09getSheet%28doc%2C%20href%29%20%7B%0A%09%09var%20sheets%20%3D%20this.inIDOMUtils.getAllStyleSheets%28doc%29%3B%0A%09%09return%20sheets.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09%7D%2C%0A%09get%20contentSheetURL%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userContent.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%09%09delete%20this.contentSheetURL%3B%0A%09%09return%20this.contentSheetURL%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%7D%2C%0A%09get%20inIDOMUtils%28%29%20%7B%0A%09%09delete%20this.inIDOMUtils%3B%0A%09%09return%20this.inIDOMUtils%20%3D%20Cc%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D.getService%28Ci.inIDOMUtils%29%3B%0A%09%7D%2C%0A%09get%20restyle%28%29%20%7B%0A%09%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%09%09var%20uri%20%3D%20Services.io.newURI%28%22data%3Atext/css%2C%3Aroot%7B%7D%22%29%2C%20type%20%3D%20sss.USER_SHEET%3B%0A%09%09delete%20this.restyle%3B%20return%20this.restyle%20%3D%20delay%20%3D%3E%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sss.loadAndRegisterSheet%28uri%2C%20type%29%3B%0A%09%09%09sss.unregisterSheet%28uri%2C%20type%29%3B%0A%09%09%7D%2C%20delay%29%3B%0A%09%7D%2C%0A%09get%20chromeSheet%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userChrome.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%0A%09%09var%20href%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%09var%20sheet%20%3D%20this.getSheet%28document%2C%20href%29%3B%0A%09%09if%20%28%21sheet%29%20return%20null%3B%0A%0A%09%09delete%20this.chromeSheet%3B%20return%20this.chromeSheet%20%3D%20sheet%3B%0A%09%7D%0A%7D%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%28%28href%2C%20data%29%20%3D%3E%20%7B%0A%09var%20en%20%3D%20Services.ww.getWindowEnumerator%28null%29%3B%0A%09if%20%28%21en.hasMoreElements%28%29%29%20return%3B%0A%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%0A%09var%20du%20%3D%20Components.classes%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D%0A%09%09.getService%28Components.interfaces.inIDOMUtils%29%3B%0A%09var%20reload%20%3D%20sheet%20%3D%3E%20%7B%0A%09%09var%20style%20%3D%20data%5Bsheet.href%5D%3B%20if%20%28%21style%29%20return%3B%0A%0A%09%09du.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20reload%28rule.styleSheet%29%3B%0A%09%09%7D%0A%09%7D%0A%09var%20sheet%20%3D%20du.getAllStyleSheets%28doc%29.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09if%20%28sheet%29%20reload%28sheet%29%3B%0A%7D%29%28%22%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

О Small_Z привет)

Отредактировано Gladius333 (16-04-2018 07:47:20)

Отсутствует

 

№1254415-04-2018 12:17:57

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 120
UA: Firefox 47.0

Re: Custom Buttons

Gladius333 пишет:

Кто знает, как сделать так чтобы при "ПКМ" открывалось только "preferences", без панели CB

Попробуйте так:

Выделить код

Код:

//Настройка функций кликов мыши для кнопки. ..........
this.onclick =e=> {
  if(e.button==0) BrowserOpenAddonsMgr(); //ЛКМ
  if(e.button==1) gShowPopup(this);       //СКМ
  if(e.button==2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {  //ПКМ
    setTimeout(function() {
      document.getElementById("custombuttons-contextpopup").hidePopup();
    }, 0)
      openPreferences();
  }
};
this.tooltipText="Л: Addons\nС: CBMenu\nП: Preferences";

Отсутствует

 

№1254515-04-2018 13:11:42

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: unknown 0.0

Re: Custom Buttons

unter_officer Спасибо, то что надо, выше код обновил если кому надо. Убрал хоткей, осталось от старой версий.

Отредактировано Gladius333 (16-04-2018 07:49:10)

Отсутствует

 

№1254621-04-2018 23:18:10

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 831
UA: Firefox 52.0

Re: Custom Buttons

Какая жесть!
Совсем не то же самое, что menulist в CB-редакторе испортить.
Снова перезалил.

Infocatcher
Теперь получается, что если в кнопке используется
экземпляр DOMParser'а, то надо проверять есть ли в нём
метод forceEnableXULXBL и, если есть, то вызывать его.
Много правок :(.

Заодно, раз зашёл, то насчёт Private Tab.
Сам не проверял, но раз, два —> три.

Отсутствует

 

№1254722-04-2018 00:30:57

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4239
UA: Firefox 56.0

Re: Custom Buttons

Dumby
(честно сохранил уже третью итерацию исправлений)
Экий зиккурат из костылей. о_О

Dumby пишет:

Теперь получается, что если в кнопке используется
экземпляр DOMParser'а, то надо проверять есть ли в нём
метод forceEnableXULXBL и, если есть, то вызывать его.

Может, подменить window.DOMParser – и пусть автоматически вызывает (раньше же всегда включена была поддержка XUL/XBL)? Или на крайний случай еще стек вызова смотреть, вызывать forceEnableXULXBL() только для кнопок.

Dumby пишет:

насчёт Private Tab

Спасибо, обновил: https://github.com/Infocatcher/Private_ … ae0711b607
Нескучные переименования. :(


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1254822-04-2018 01:02:31

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 59
UA: Firefox 60.0

Re: Custom Buttons

Dumby
Может быть найдется у вас время посмотреть кнопки, которые поотваливались в 59-60 релизах, н-р Autocopy3+?

Отредактировано Garalf (22-04-2018 01:03:24)

Отсутствует

 

№1254922-04-2018 08:26:09

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 831
UA: Firefox 52.0

Re: Custom Buttons

Infocatcher
Ой, ещё ведь и CBKeyMapComponent.js пострадал.
Затолкал кое-как обратно, надеюсь.

А насчёт парсера, я тут подумал, обычно же пишется new DOMParser()
Тогда может добавить свой, но как один из аргументов функции,
которая исполняется в кнопке, типа как addDestructor

Вот, на пробу, изменил так, вроде работает

скрытый текст
contextBuilder.js

Выделить код

Код:

if ("custombuttonsUtils" in window) {
    if ("forceEnableXULXBL" in window. DOMParser. prototype)
        this. DOMParser = custombuttonsUtils. xulDOMParser;

overlay.js

Выделить код

Код:

var custombuttonsUtils = {
    get xulDOMParser() {
        delete this. xulDOMParser;
        return this. xulDOMParser = "forceEnableXULXBL" in DOMParser. prototype ? eval (
            "(class xulDOMParser extends DOMParser{constructor(){super();this.forceEnableXULXBL();}})"
        ) : DOMParser;
    },


Но если полагаешь, что этого недостаточно, то подскажи, пожалуйста,
как лучше записать подмену оконного DOMParser'а

Garalf
Ну, для контентских дел должны же быть соответствующие WebExtensions.
Или там в кнопке есть что-то для тебя совершенно незаменимое?
Тогда скажи что именно, возможно посмотрю, но обещать не могу.

Отредактировано Dumby (22-04-2018 09:28:45)

Отсутствует

 

№1255022-04-2018 11:57:10

ARG
Лисолюб
 
Группа: Members
Зарегистрирован: 22-06-2005
Сообщений: 345
UA: Firefox 59.0

Re: Custom Buttons

Подскажите, как поставить СВ с предыдущей страницы  в FF59? Пишет "несовместимо".

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]