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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№1435128-02-2020 08:22:31

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

Re: Custom Buttons

Andrey_Krropotkin пишет

это был не огрызок кода

Предоставленный код неполон, концовка обрезана, а значит огрызок.

Andrey_Krropotkin пишет

Мне бы пример как добавить кнопку в диалог  из СВ.

Пример есть: CB_Editor_Toggle_on_Top (watcher — ловец окон).
Если хочешь что-нибудь похуже, но попроще, тогда, например,
можно попробовать как-то так

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

Выделить код

Код:

((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy(true));
    if (g[id]) return;
    var topics = ["widget-first-paint", "quit-application-granted"], {nsIFile} = Ci;
    var {obs, wm, dirsvc} = Services, uct = "unknownContentType", ends = `/${uct}.xhtml`;
    (g[id] = {
        init() {
            for(var topic of topics) obs.addObserver(g[id], topic, false);
            this.wins();
        },
        destroy(wins) {
            delete g[id];
            for(var topic of topics) obs.removeObserver(this, topic);
            wins && this.wins("removeBtn");
        },
        btn(win, method = "addBtn") {
            win.location.href.endsWith(ends) && this[method](win.document);
        },
        wins(method) {
            for(var win of wm.getEnumerator(null)) this.btn(win, method);
        },
        observe(win, topic) {
            topic[0] == "q" ? this.destroy() : this.btn(win);
        },
        get data() {
            var o = g.Object, d = key => dirsvc.get(key, nsIFile).path;
            delete this.data;
            return this.data = o.assign(o.create(null), {

                "Рабочий стол": d("Desk"),
                "chrome": d("UChrm"),
                "chrome\\CSS": d("UChrm") + "\\CSS",
                "C:": "C:\\",
                "E:": "E:\\",
                "F:": "F:\\",
                "G:": "G:\\",
            });
        },
        addBtn(doc) {
            var df = doc.createDocumentFragment();
            var btn = doc.cbSaveToButton = df.appendChild(doc.createXULElement("button"));
            btn.label = "Сохранить в";
            btn.className = "dialog-button";

            var popup = btn.appendChild(doc.createXULElement("menupopup"));
            popup.setAttribute("oncommand", "handleCommand(event.target)");
            popup.handleCommand = this.cmd;

            for(var lab in this.data) {
                var menuitem = popup.appendChild(doc.createXULElement("menuitem"));
                menuitem.label = lab;
                menuitem.dir = this.data[lab];
                menuitem.className = "menuitem-iconic";
                menuitem.image = "moz-icon:file:///" + menuitem.dir;
            }
            doc.getElementById(uct).getButton("cancel").before(df);
            btn.type = "menu";
        },
        removeBtn(doc) {
            if (doc.cbSaveToButton) doc.cbSaveToButton.remove(), delete doc.cbSaveToButton;
        },
        cmd(trg) {
            var file = g.Components.Constructor(
                "@mozilla.org/file/local;1", nsIFile, "initWithPath"
            )(trg.dir);
            var win = trg.ownerGlobal;
            file.append(win.document.getElementById("location").getAttribute("realname"));
            win.dialog.mLauncher.saveToDisk(file, 1);
            win.dialog.onCancel = function() {};
            win.close();
        }
    }).init();
})("CBUnknownContentTypeSaveToButtonizer", Cu.getGlobalForObject(Cu));

solombala пишет

А зауниверсалить можно? Типа, из abot:config параметр ? media.autoplay.default , или типа этого...Короче , на выходе обратно встало, как по умолчанию...

Ну, я дописал обратно-вставлялку, и, вроде, сбрасывается.

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

Выделить код

Код:

((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy());
    if (g[id]) return;
    var {obs, xulStore, prefs} = Services;
    var topic = "quit-application", doc = document.documentURI;
    obs.addObserver(g[id] = {
        observe(s, t, data) {
            this.destroy();
            if (data != "shutdown") return;
            xulStore.setValue(
                doc, "PersonalToolbar", "collapsed", "true"
            );
            for(var pref of [
                "media.autoplay.default",
                "extensions.long_left_click.timeContent",
            ])
                prefs.clearUserPref(pref);
        },
        destroy() {
            delete g[id];
            obs.removeObserver(this, topic);
        }
    }, topic, false);
})(
    "CBQuitApplicationPersonalToolbarCollapser", Cu.getGlobalForObject(Cu)
);

Отредактировано Dumby (28-02-2020 08:27:15)

Отсутствует

 

№1435228-02-2020 11:06:38

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Dumby
Тонкий ход , но с этим network.proxy.type пришлось в greprefs.js рихтануть 5 на 2 ...По умолчанию 5  , т.е. системные , а нужно чтобы автопрокси всегда (2)...
Да, и еще, не ставьте Ublock выше  uBlock Origin v1.24.4 !!! , DNS - выпасает, зараза...

Отсутствует

 

№1435328-02-2020 11:34:18

ds(ds)
Участник
 
Группа: Members
Зарегистрирован: 21-01-2010
Сообщений: 83
UA: Seamonkey 2.53

Re: Custom Buttons

обновилась версия seamonkey на 2.53.1
custom buttons (0.0.5.8.9.3) пережил апгрейд версии, но появился глюк
в меню custom buttons - у вас нет установленных пользовательских кнопок, хотя кнопки есть и они работают

Отсутствует

 

№1435428-02-2020 13:59:54

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1739
UA: Firefox 52.0

Re: Custom Buttons

xrun1 пишет

Перестала у меня работать кнопка Google русский-английский. Это у меня личное или можешь поправить?

Эта https://forum.mozilla-russia.org/viewto … 41#p777541  работает в [firefox] 73


Win7

Отсутствует

 

№1435528-02-2020 14:37:06

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1224
UA: Firefox 73.0

Re: Custom Buttons

kokoss
Спасибо. Редко пользуюсь, но должен быть порядок в кнопках! ;)

Отсутствует

 

№1435628-02-2020 15:40:30

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 56.0

Re: Custom Buttons

Как можно изменить надпись о количестве совпадений на Findbar-е?
Скажем вместо 30-е из 50 совпадений я хочу чтоб показывало просто 30/50

Можно это сделать?

Отсутствует

 

№1435728-02-2020 17:02:28

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Dumby
Нельзя ли редактор СВ рихтануть? Ну, как в AkelPad - "Вид" - перенос по словам ...А , то это заманало без переноса..

скрытый текст
: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAR

Иде слева на право  до упора.. Здесь codeeditor.css только шрифт , на большее не потянул.

Отсутствует

 

№1435828-02-2020 17:56:51

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1739
UA: Firefox 52.0

Re: Custom Buttons

toxa пишет

Как можно изменить надпись о количестве совпадений на Findbar-е?
Скажем вместо 30-е из 50 совпадений я хочу чтоб показывало просто 30/50

Попробуйте эту... https://forum.mozilla-russia.org/viewto … 50#p759450


Win7

Отсутствует

 

№1435928-02-2020 18:12:46

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Кто знает. Как на код , на код , не на INI /ToggleImage - задать?

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

Выделить код

Код:

var id = "{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}";
AddonManager.getAddonByID(id).then(
    addon => addon[
        addon.userDisabled ? "enable" : "disable"
       
    ]({allowSystemAddons: true}),
    Cu.reportError
);

Отредактировано solombala (28-02-2020 18:13:44)

Отсутствует

 

№1436028-02-2020 21:28:40

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 56.0

Re: Custom Buttons

kokoss пишет
toxa пишет

Как можно изменить надпись о количестве совпадений на Findbar-е?
Скажем вместо 30-е из 50 совпадений я хочу чтоб показывало просто 30/50

Попробуйте эту... https://forum.mozilla-russia.org/viewto … 50#p759450

Я раньше пользовался той кнопкой. В основном потому что с ней показывало кол-во совпадений. Но сейчас и родной Findbar это умеет. Родной меня устраивает, только я хотел бы, чтобы надпись о количестве совпадений покороче была.

Я могу получить этот label который показывает результат. И с помощью replace сделать в нем текст как мне надо, но ведь с каждым поиском текст меняется. И как отследить это я не знаю.

Отсутствует

 

№1436128-02-2020 21:56:22

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1739
UA: Firefox 52.0

Re: Custom Buttons

toxa пишет

только я хотел бы, чтобы надпись о количестве совпадений покороче была.

Куда короче то, как вы и хотели, без текста:

скрин
1d50d2059ec0.png

или  я вас не правильно понял, тогда FindBar Tweak вам в помощь!


Win7

Отсутствует

 

№1436228-02-2020 22:48:02

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 73.0

Re: Custom Buttons

kokoss пишет

Куда короче то, как вы и хотели, без текста:

Тоже так хочу, интересно для [firefox] 73 есть рабочая, в смысле только надписи сократить?

Отредактировано voqabuhe (28-02-2020 22:48:24)

Отсутствует

 

№1436328-02-2020 22:48:23

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 504
UA: unknown 0.0

Re: Custom Buttons

solombala пишет

Как на код , на код , не на INI /ToggleImage - задать?

а какая разница где ?!
у мя так:

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

Выделить код

Код:

......... выше switch() на кнопки мыша и по СКМ вызывается ф-ция sbOnOFF(), ВКЛ\ВЫКЛ расширение ............
 function sbOnOFF() {
  AddonManager.getAddonByID('SilentBlock@schuzak.jp', function (addon) {
     if ( addon.isActive ) { addon.userDisabled = true; } else { addon.userDisabled = false; }
       toggleImage();
       }); 
    };

// иконка красиццо: если расш-е ВЫКЛючено, то иконка серая, ВКЛ - норм.
 function toggleImage() {
   AddonManager.getAddonByID('SilentBlock@schuzak.jp', function (addon) {
     addon.isActive ? self.style.filter = 'none' : self.style.filter = 'sepia(1)'; });
     };

даже наверное так:

Выделить код

Код:

function sbOnOFF() {
  AddonManager.getAddonByID('SilentBlock@schuzak.jp', function (addon) {
     if ( addon.isActive ) { addon.userDisabled = true;  toggleImage("of");} else { addon.userDisabled = false; toggleImage("on"); }
       }); 
    };

// иконка красиццо: если расш-е ВЫКЛючено, то иконка серая, ВКЛ - норм.
 function toggleImage(q) {
  if(!q) {
     AddonManager.getAddonByID('SilentBlock@schuzak.jp', function (addon) { addon.isActive ? self.style.filter = 'none' : self.style.filter = 'sepia(1)'; }); 
   } else {
   switch(q) {
     case "on": self.style.filter = 'none'; break;
     case "of": self.style.filter = 'sepia(1)'; break;
     }
   }
 };

можна отдельно вызывать при старте бравзера, для проверки состояния расш-я. и при вкл\выкл не будет два раза getAddons() дергаться.


... только, КМК, это не очень. надоб наверно observer на расширение заводить..? но хз. как.

Отредактировано mokujin (28-02-2020 23:18:33)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1436428-02-2020 23:08:59

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1739
UA: Firefox 52.0

Re: Custom Buttons

voqabuhe пишет

Тоже так хочу, интересно для [firefox] 73 есть рабочая, в смысле только надписи сократить?

В виде кнопки не попадалась, про этот вариант;


вы наверняка в курсе


Win7

Отсутствует

 

№1436529-02-2020 00:28:08

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

Re: Custom Buttons

solombala пишет

заманало без переноса

На такой случай предусмотрен переключатель (для каждой вкладки отдельно).
Открываешь CB-редактор, ставишь фокус в область кода и жмёшь Ctrl+W

Если в настойках CB не отмечен чекбокс
«Сохранять размеры и позицию окон редактора отдельно для каждой кнопки»,
тогда применяется ко всем кнопкам, иначе, соответственно, отдельно для каждой кнопки.

Стилем тоже можно (нужен «агент Шифт»),
но тогда перестанет из консоли открываться правильная строка.

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

Выделить код

Код:

cbeditor *|textarea *|div {
    white-space: pre-wrap !important;
}

Отсутствует

 

№1436629-02-2020 01:26:43

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 73.0

Re: Custom Buttons

kokoss пишет

про этот вариант;
скрытый текст
https://forum.mozilla-russia.org/viewto … 93#p775193

вы наверняка в курсе

Ну да, его и использую, но он переносит FindBar вверх, надпись то не сокращает.

Отредактировано voqabuhe (29-02-2020 01:27:05)

Отсутствует

 

№1436729-02-2020 07:03:08

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: unknown 0.0

Re: Custom Buttons

Dumby насчёт переноса слов, а может можно  добавить кнопку или чебокс для разового переключения  где нибудь в окне редактора, например в конце строки, там где вкладки? Если использовать Custom Buttons: Source Editor, то CTRL+W не работает.

Отредактировано Andrey_Krropotkin (29-02-2020 09:15:31)

Отсутствует

 

№1436829-02-2020 09:00:37

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Dumby

Dumby пишет

Стилем тоже можно (нужен «агент Шифт»),
но тогда перестанет из консоли открываться правильная строка.

Конкретнее.  Куда код?  Еще этот удалено   агент...Да, черт с ним CTRL+W - норм.
Вот код , как смену иконки присобачить? А, то тут такое фуфло советуют ...Ну на клик то запросто , но сути это не отражает , конкретно надо ...

скрытый текст
var id = "{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}";
AddonManager.getAddonByID(id).then(
    addon => addon[
        addon.userDisabled ? "enable" : "disable"
       
    ]({allowSystemAddons: true}),
    Cu.reportError
);

Замечание п. 3.3
Sergeys

Отсутствует

 

№1436929-02-2020 12:25:49

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Есть еще креативные юзеры?  toggleImage на этот код?
/*CODE*/
var id = "{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}";
AddonManager.getAddonByID(id).then(
    addon => addon[
        addon.userDisabled ? "enable" : "disable"
       
    ]({allowSystemAddons: true}),
    Cu.reportError
);

Да, и есть ли здесь лажа? "Включить аддон после выхода"

скрытый текст
((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy());
    if (g[id]) return;
    var topic = "quit-application-granted", {obs} = Services;
    obs.addObserver(g[id] = {
        ids: [
           
            "{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}",
        ],
        filter(addon) {
            if (
                this.ids.includes(addon.id) && !addon.userEnabled
                && addon.type.endsWith("extension")
                && addon.location.name != "app-builtin"
            ) {
                addon.active = addon.location.get(addon.id).enabled = true;
                return addon.userEnabled = true;
            }
        },
        observe() {
            this.destroy();
            if (g.XPIDatabase.getAddons().filter(this.filter, this).length)
                g.XPIDatabase.saveChanges(), g.XPIStates.save();
        },
        destroy() {
            delete g[id];
            obs.removeObserver(this, topic);
        }
    }, topic, false);
})(
    "CBQuitApplicationExtensionsDisabler",
    Cu.import("resource://gre/modules/addons/XPIDatabase.jsm", {})
);

Отредактировано solombala (29-02-2020 14:08:43)

Отсутствует

 

№1437029-02-2020 18:07:37

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

Re: Custom Buttons

solombala пишет

как смену иконки присобачить? А, то тут такое фуфло советуют ...Ну на клик то запросто , но сути это не отражает , конкретно надо ...

Что-то я неуверен. Есть какое-то расхождение между
about:addons и аддон-менеджером. Страница запоминает
операцию удаления и не сбрасывает, если при этом аддон установить.
Но так-то, вроде должно работать, в основном.

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

Выделить код

Код:

(async id => {
    var data = {
        Enabled: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AMgA/wDIAP8AyAD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==",
        Disabled: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==",
        Installing: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==",
        Uninstalled: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==",
        Uninstalling: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="
    };
    data.Installed = data.OperationCancelled = null;
    var toggleImage = (key, addon) => {
        if (addon && addon.id != id) return;
        if (!key || data[key] == null) {
            if (!addon) key = "Uninstalled";
            else if (addon.pendingOperations & AddonManager.PENDING_UNINSTALL) key = "Uninstalling"
            else if (addon.pendingOperations & AddonManager.PENDING_INSTALL) key = "Installing";
            else key = addon.isActive ? "Enabled" : "Disabled";
        }
        this.icon.src = data[key];
    }
    var listener = {};
    for(var key of Object.keys(data))
        listener["on" + key] = toggleImage.bind(null, key)

    AddonManager.addAddonListener(listener);
    addDestructor(() => AddonManager.removeAddonListener(listener));

    toggleImage(null, await AddonManager.getAddonByID(id));

})("{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}");

Отсутствует

 

№1437129-02-2020 18:51:35

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Dumby
Пока шикардос . Подставлю код на "Вкл" после выхода , проверю.  Код то не лажовый ? См.выше. И еще :
this.tooltipText =  ???? Не могу понять  , как какое действие?
this.tooltipText = (key, addon) ? '???????' : '???????';   Черт знает как и куда?
Да, мой код -лажа, работает но некорректно... Может, наоборот? Запуск с вкл. аддон ? А это - не того...

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

Выделить код

Код:

((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy());
    if (g[id]) return;
    var topic = "quit-application-granted", {obs} = Services;
    obs.addObserver(g[id] = {
        ids: [
           
            "{6acd0f4d-ab79-4b79-9b28-8bde65ae355c}",
        ],
        filter(addon) {
            if (
                this.ids.includes(addon.id) && !addon.userEnabled
                && addon.type.endsWith("extension")
                && addon.location.name != "app-builtin"
            ) {
                addon.active = addon.location.get(addon.id).enabled = true;
                return addon.userEnabled = true;
            }
        },
        observe() {
            this.destroy();
            if (g.XPIDatabase.getAddons().filter(this.filter, this).length)
                g.XPIDatabase.saveChanges(), g.XPIStates.save();
        },
        destroy() {
            delete g[id];
            obs.removeObserver(this, topic);
        }
    }, topic, false);
})(
    "CBQuitApplicationExtensionsDisabler",
    Cu.import("resource://gre/modules/addons/XPIDatabase.jsm", {})
);

Отредактировано solombala (02-03-2020 10:00:51)

Отсутствует

 

№1437203-03-2020 00:44:44

dezhnev
Участник
 
Группа: Members
Зарегистрирован: 21-04-2016
Сообщений: 72
UA: Firefox 73.0

Re: Custom Buttons

Приветствую стойкие :D, помогите в 73+ избавиться от прокрутки (scrollbar,scrollbox) в :
chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
chrome://browser/content/places/bookmarksSidebar.xhtml
chrome://browser/content/places/historySidebar.xhtml
т.е. для Закачек, Букмарков, Истории

Через css не решается, точнее решалось в далеком 63-64:
https://forum.mozilla-russia.org/viewtopic.php?pid=764923#p764923

и даже в после 64го я ему вешал листенер на аттрибут disabled:true и работало вроде,
сейчас не выходит каменный цветок, место жрет, а мелкий scrollbar если поставить не видно на сайтах

Отсутствует

 

№1437303-03-2020 08:06:11

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

Re: Custom Buttons

solombala пишет

this.tooltipText =  ???? Не могу понять  , как какое действие?

Здесь тебе проще всего сделать так:
создай рядом с объектом data точно такой же объект tooltips
только вместо иконок там пропиши тексты тултипов.

И, далее, рядом с this.icon.src = data[key];
добавь this.tooltipText = tooltips[key];

solombala пишет

А это - не того

Потому что нет такого — addon.userEnabled

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

Выделить код

Код:

filter(addon) {
            if (
                this.ids.includes(addon.id) && addon.userDisabled
                && addon.type.endsWith("extension")
                && addon.location.name != "app-builtin"
            ) {
                addon.userDisabled = false;
                return addon.active = addon.location.get(addon.id).enabled = true;
            }
        },

dezhnev пишет

Через css не решается

Ну незнаю, я попробовал для этих адресов, и никаких скроллбаров не вижу.
Возможно стоит обратно заглянуть, может что-нибудь лучше подскажут.

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

Выделить код

Код:

@-moz-document
url(chrome://browser/content/places/historySidebar.xhtml),
url(chrome://browser/content/places/bookmarksSidebar.xhtml) {
    scrollbar {
        display: none !important;
    }
}
@-moz-document url(chrome://browser/content/downloads/contentAreaDownloadsView.xhtml) {
    #downloadsRichListBox {
        scrollbar-width: none !important;
    }
}

Отсутствует

 

№1437403-03-2020 10:30:11

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 73.0

Re: Custom Buttons

Dumby

Dumby пишет

Потому что нет такого — addon.userEnabled

С Tooltips все как надо ...А вот кодом , короче он бьет по другим - на выкл. аддоны.

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

Выделить код

Код:

((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy());
    if (g[id]) return;
    var topic = "quit-application-granted", {obs} = Services;
    obs.addObserver(g[id] = {
        ids: [
            "@hoxx-vpn",
            "vkomforte-we@vkomforte",
            
        ],
        filter(addon) {
            if (
                this.ids.includes(addon.id) && !addon.userDisabled
                && addon.type.endsWith("extension")
                && addon.location.name != "app-builtin"
            ) {
                addon.active = addon.location.get(addon.id).enabled = false;
                return addon.userDisabled = true;
            }
        },
        observe() {
            this.destroy();
            if (g.XPIDatabase.getAddons().filter(this.filter, this).length)
                g.XPIDatabase.saveChanges(), g.XPIStates.save();
        },
        destroy() {
            delete g[id];
            obs.removeObserver(this, topic);
        }
    }, topic, false);
})(
    "CBQuitApplicationExtensionsDisabler",
    Cu.import("resource://gre/modules/addons/XPIDatabase.jsm", {})
);

Отсутствует

 

№1437503-03-2020 12:22:17

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

Re: Custom Buttons

solombala
Давай может лучше вместо тех — другой, единый,
и там уже прописать, какие выключать, а какие включать.

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

Выделить код

Код:

((id, g) => {
    addDestructor(r => r[5] == "e" && id in g && g[id].destroy());
    if (g[id]) return;
    var topic = "quit-application-granted", {obs} = Services;
    obs.addObserver(g[id] = {
        // true - disable, false - enable
        states: {
            "addon_to@disable": true,
            "{ae3cc3e4-1091-48d0-91e0-446601bc2e22}": true,

            "addon_to@enable": false,
            "@hoxx-vpn": false,
            "vkomforte-we@vkomforte": false,
        },
        filter(addon) {
            var state = this.states[addon.id];
            if (
                state !== undefined && addon.userDisabled != state
                && addon.type.endsWith("extension")
                && addon.location.name != "app-builtin"
            ) {
                addon.active = addon.location.get(addon.id).enabled
                    = !(addon.userDisabled = state);
                return true;
            }
        },
        observe() {
            this.destroy();
            if (g.XPIDatabase.getAddons().filter(this.filter, this).length)
                g.XPIDatabase.saveChanges(), g.XPIStates.save();
        },
        destroy() {
            delete g[id];
            obs.removeObserver(this, topic);
        }
    }, topic, false);
})(
    "CBQuitApplicationExtensionsSwitcher",
    Cu.import("resource://gre/modules/addons/XPIDatabase.jsm", {})
);

Отсутствует

 

Board footer

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