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

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

№37613-07-2022 03:55:35

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

Re: UCF - ваши кнопки, скрипты…

ez7pac
Вместо содержимого в двойных кавычках вставляете ссылку. Важно то, что данные в base64 или ссылка должны быть заключены в двойные кавычки.

Отсутствует

 

№37713-07-2022 14:04:05

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

Re: UCF - ваши кнопки, скрипты…

ez7pac
Ещё можно так:

скрытый текст
варианты:

Выделить код

Код:

#ID кнопки> .toolbarbutton-icon {
    list-style-image: url("chrome://browser/skin/history.svg");
}
Выделить код

Код:

#ID кнопки {
    list-style-image: url("./image/своя иконка.png") !important;
}

:offtopic:


Win7

Отсутствует

 

№37813-07-2022 17:51:53

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

xrun1
Спасибо за консультацию. Воткнул дефолтную иконку вместо авторской - кнопка работает, все нормально.
kokoss
Спасибо, но это для меня слишком сложно, я дуб в этих делах. Заморачиваюсь максимум раз в два, а то и три года, когда приходится переходить на более свежую версию браузера. То, что помнил после прошлого перехода, давно вылетело из головы :D
+++
Ребят, теперь еще вопрос возник. Я за эти кнопки зацепился потому, что Add Toolbars Buttons на 102-й версии работает не полноценно, а к трем кнопкам оттуда привык, не хочется их терять. Две нашел в этой теме - выпадающее меню расширений и перезапуск браузера. Осталась кнопка менеджера паролей, но тут ее не вижу. Может плохо искал? Не поможете с ней?
Или, возможно, автор таки собирается обновить расширение, так мне намного проще, честно сказать. Он, по моему, тоже в этой теме бывает. Виталий, если не ошибаюсь.
+++
ЗЫ. Еще забыл. Вот кнопка меню расширений. Как можно переназначить клавиши? Т.е. , в ней менеджер дополнений открывается СКМ, а мне было бы привычней ПКМ.

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

Выделить код

Код:

try {(() => {
    var id = "ucf-aom-button",
    label = "Дополнения",
    tooltiptext = "ЛКМ: Меню дополнений\nShift+ЛКМ: Меню дополнений + открыть менеджер\nСКМ: Открыть менеджер дополнений",
    img = "chrome://mozapps/skin/extensions/extension.svg",
    show_version = true,
    show_description = true,
    user_permissions = true,
    show_hidden = true,
    show_disabled = true,
    enabled_first = true,
    exceptions_listset = new Set([

    ]);
    exceptions_type_listset = new Set([

    ]);
    if (!("AddonManager" in this))
        ChromeUtils.defineModuleGetter(this, "AddonManager", "resource://gre/modules/AddonManager.jsm");
    if (!("GlobalManager" in this))
        XPCOMUtils.defineLazyGetter(this, "GlobalManager", () =>
    ChromeUtils.import("resource://gre/modules/ExtensionParent.jsm").ExtensionParent.GlobalManager);
    var extensionOptionsMenu = {
        get alertsService() {
            delete this.alertsService;
            return this.alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
        },
        get clipboardHelp() {
            delete this.clipboardHelp;
            return this.clipboardHelp = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
        },
        get exceptions_type_listarr() {
            delete this.exceptions_type_listarr;
            var arr = ["extension", "theme", "locale", "dictionary"];
            if (!exceptions_type_listset.size)
                return this.exceptions_type_listarr = arr;
            return this.exceptions_type_listarr = arr.filter(type => !exceptions_type_listset.has(type));
        },
        populateMenu: async function(e) {
            var popup = e.target, doc = e.view.document;
            var addons = await AddonManager.getAddonsByTypes(this.exceptions_type_listarr);
            var addonsMap = new WeakMap(),
            setAttributesMenu = (mi, addon, extension) => {
                var permissions, uuid,
                props = {
                    label: `${addon.name}${show_version ? ` ${addon.version}` : ""}`,
                    class: "menuitem-iconic",
                    tooltiptext: `${(show_description && addon.description) ? `${addon.description}\n` : ""}ID: ${addon.id}${addon.isActive && (uuid = extension?.uuid) ? `\nUUID: ${uuid}` : ""}${(user_permissions && (permissions = addon.userPermissions?.permissions)?.length) ? `\nРазрешения: ${permissions.join(", ")}` : ""}\n${addon.optionsURL ? "\nЛКМ: Настройки" : ""}\nCtrl+ЛКМ: Копировать ID${uuid ? "\nShift+ЛКМ: Копировать UUID" : ""}${addon.creator?.url ? "\nCtrl+Shift+ЛКМ: Автор" : ""}${addon.homepageURL ? "\nСКМ: Домашняя страница" : ""}${!addon.isBuiltin ? "\nCtrl+СКМ: Просмотр источника" : ""}\nShift+СКМ: Просмотр источника во вкладке\nПКМ: Включить/Отключить${(!addon.isSystem && !addon.isBuiltin) ? "\nCtrl+ПКМ: Удалить" : ""}`,
                };
                for (let p in props)
                    mi.setAttribute(p, props[p]);
                if (addon.iconURL)
                    mi.setAttribute("image", addon.iconURL);
                var cls = mi.classList;
                addon.isActive ? cls.remove("ucf-disabled") : cls.add("ucf-disabled");
                addon.optionsURL ? cls.remove("ucf-notoptions") : cls.add("ucf-notoptions");
                addon.isSystem ? cls.add("ucf-system") : cls.remove("ucf-system");
                cls.add(`ucf-type-${addon.type}`);
            };
            addons.filter(a => !(a.iconURL || "").startsWith("resource://search-extensions/")).sort((a, b) => {
                var ka = `${(enabled_first ? a.isActive ? "0" : "1" : "")}${a.type || ""}${a.name.toLowerCase()}`;
                var kb = `${(enabled_first ? b.isActive ? "0" : "1" : "")}${b.type || ""}${b.name.toLowerCase()}`;
                return (ka < kb) ? -1 : 1;
            }).forEach(addon => {
                if (!exceptions_listset.has(addon.id) &&
                    (!addon.hidden || show_hidden) &&
                    (!addon.userDisabled || show_disabled)) {
                    let extension = GlobalManager.extensionMap.get(addon.id),
                    mi = doc.createXULElement("menuitem");
                    setAttributesMenu(mi, addon, extension);
                    mi._Addon = addon;
                    mi._Extension = extension;
                    popup.append(mi);
                    addonsMap.set(addon, mi);
                }
            });
            var click = (e) => {
                this.handleClick(e);
            };
            popup.addEventListener("click", click);
            var listener = {
                onEnabled: addon => {
                    var mi = addonsMap.get(addon);
                    if (mi)
                        setAttributesMenu(mi, addon, mi._Extension);
                },
                onDisabled: addon => {
                    listener.onEnabled(addon);
                },
                onInstalled: addon => {
                    var extension = GlobalManager.extensionMap.get(addon.id),
                    mi = doc.createXULElement("menuitem");
                    setAttributesMenu(mi, addon, extension);
                    mi._Addon = addon;
                    mi._Extension = extension;
                    popup.prepend(mi);
                    addonsMap.set(addon, mi);
                },
                onUninstalled: addon => {
                    var mi = addonsMap.get(addon);
                    if (mi) {
                        mi.remove();
                        addonsMap.delete(addon);
                    }
                },
            };
            AddonManager.addAddonListener(listener);
            popup.addEventListener("popuphiding", (e) => {
                AddonManager.removeAddonListener(listener);
                popup.removeEventListener("click", click);
                addonsMap = null;
                while (popup.hasChildNodes())
                    popup.firstChild.remove();
            }, { once: true });
        },
        handleClick: function(e) {
            var win = e.view, mi = e.target;
            if (!("_Addon" in mi) || !("_Extension" in mi))
                return;
            var addon = mi._Addon, extension = mi._Extension;
            switch (e.button) {
                case 0:
                    if (e.ctrlKey && e.shiftKey) {
                        if (addon.creator?.url)
                            win.gBrowser.selectedTab = this.addTab(win, addon.creator.url);
                    } else if (e.ctrlKey) {
                        this.clipboardHelp.copyString(addon.id);
                        try {
                            this.alertsService.showAlertNotification(`${img}`, "ID в буфере обмена!", addon.id, false);
                        } catch(e) {}
                    } else if (e.shiftKey) {
                        if (extension?.uuid) {
                            this.clipboardHelp.copyString(extension.uuid);
                            try {
                                this.alertsService.showAlertNotification(`${img}`, "UUID в буфере обмена!", extension.uuid, false);
                            } catch(e) {}
                        }
                    } else if (addon.isActive && addon.optionsURL)
                        this.openAddonOptions(addon, win);
                    win.closeMenus(mi);
                    break;
                case 1:
                    if (e.ctrlKey) {
                        if (!addon.isBuiltin)
                            this.browseDir(addon);
                    } else if (e.shiftKey)
                        this.browseDir(addon, win);
                    else if (addon.homepageURL)
                        win.gBrowser.selectedTab = this.addTab(win, addon.homepageURL);
                    win.closeMenus(mi);
                    break;
                case 2:
                    if (!e.ctrlKey) {
                        let endis = addon.userDisabled ? "enable" : "disable";
                        if (addon.id == "screenshots@mozilla.org")
                            Services.prefs.setBoolPref("extensions.screenshots.disabled", !addon.userDisabled);
                        else if (addon.id == "webcompat-reporter@mozilla.org")
                            Services.prefs.setBoolPref("extensions.webcompat-reporter.enabled", addon.userDisabled);
                        addon[endis]({ allowSystemAddons: true });
                    } else if (!addon.isSystem && !addon.isBuiltin && Services.prompt.confirm(win, null, `Удалить ${addon.name}?`))
                        addon.uninstall();
                break;
            }
        },
        openAddonOptions: function(addon, win) {
            switch (addon.optionsType) {
                case 5:
                    win.BrowserOpenAddonsMgr(`addons://detail/${encodeURIComponent(addon.id)}/preferences`);
                    break;
                case 3:
                    win.switchToTabHavingURI(addon.optionsURL, true);
                    break;
            }
        },
        browseDir: function(addon, win) {
            try {
                if (!win) {
                    let file = Services.io.getProtocolHandler("file")
                    .QueryInterface(Ci.nsIFileProtocolHandler)
                    .getFileFromURLSpec(addon.getResourceURI().QueryInterface(Ci.nsIJARURI).JARFile.spec);
                    if (file.exists())
                        file.launch();
                } else
                    win.gBrowser.selectedTab = this.addTab(win, addon.getResourceURI().spec);
            } catch (e) {}
        },
        addTab: function(win, url, params = {}) {
            params.triggeringPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
            params.relatedToCurrent = true;
            return win.gBrowser.addTab(url, params);
        },
    };
    CustomizableUI.createWidget({
        id: id,
        type: "custom",
        label: label,
        tooltiptext: tooltiptext,
        localized: false,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onBuild: function(doc) {
            var btn = doc.createXULElement("toolbarbutton"), win = doc.defaultView,
            props = {
                id: id,
                label: label,
                tooltiptext: tooltiptext,
                type: "menu",
                class: "toolbarbutton-1 chromeclass-toolbar-additional",
            };
            for (let p in props)
                btn.setAttribute(p, props[p]);
            btn.addEventListener("click", (e) => {
                if (e.button == 0) {
                    if (e.shiftKey)
                        win.BrowserOpenAddonsMgr();
                } else if (e.button == 1)
                    win.BrowserOpenAddonsMgr();
            });
            var mp = doc.createXULElement("menupopup");
            mp.id = `${id}-popup`;
            mp.addEventListener("click", (e) => {
                e.preventDefault();
                e.stopPropagation();
            });
            mp.addEventListener("contextmenu", (e) => {
                e.preventDefault();
                e.stopPropagation();
            });
            mp.addEventListener("popupshowing", (e) => {
                extensionOptionsMenu.populateMenu(e);
            });
            btn.append(mp);
            var btnstyle = "data:text/css;charset=utf-8," + encodeURIComponent(`
                #${id}, #${id}-popup menuitem {
                    list-style-image: url("${img}") !important;
                }
                #${id}-popup menuitem::after {
                    display: -moz-box !important;
                    content: "" !important;
                    height: 16px !important;
                    width: 16px !important;
                    padding: 0 !important;
                    border: 1px solid rgb(0, 116, 232) !important;
                    border-radius: 0 !important;
                    background-repeat: no-repeat !important;
                    background-position: center !important;
                    background-size: 16px !important;
                    background-color: rgb(0, 116, 232) !important;
                    background-image: url("${checked}") !important;
                    opacity: 1 !important;
                }
                #${id}-popup menuitem.ucf-disabled::after {
                    border-color: currentColor !important;
                    background-color: transparent !important;
                    background-image: none !important;
                    opacity: .6 !important;
                }
                #${id}-popup menuitem.ucf-disabled > label,
                #${id}-popup menuitem.ucf-notoptions > label {
                    opacity: .6 !important;
                }
                #${id}-popup menuitem.ucf-system > label {
                    text-decoration: underline !important;
                    text-decoration-style: dotted !important;
                }
                #${id}-popup menuitem > label {
                    margin-inline-end: 0 !important;
                }
                #${id}-popup menuitem > .menu-accel-container {
                    display: -moz-box !important;
                    padding: 4px !important;
                    margin: 0 !important;
                    opacity: 1 !important;
                }
                #${id}-popup menuitem > .menu-accel-container .menu-iconic-accel {
                    display: -moz-box !important;
                    margin: 0 !important;
                    height: 8px !important;
                    width: 8px !important;
                    border-radius: 4px !important;
                    background-color: transparent !important;
                    opacity: 1 !important;
                    font-size: 0 !important;
                }
                #${id}-popup menuitem.ucf-type-dictionary > .menu-accel-container .menu-iconic-accel {
                    background-color: rgb(227, 27, 93) !important;
                }
                #${id}-popup menuitem.ucf-type-locale > .menu-accel-container .menu-iconic-accel {
                    background-color: rgb(48, 172, 55) !important;
                }
                #${id}-popup menuitem.ucf-type-theme > .menu-accel-container .menu-iconic-accel {
                    background-color: rgb(219, 106, 0) !important;
                }
            `);
            try {
                win.windowUtils.loadSheetUsingURIString(btnstyle, win.windowUtils.USER_SHEET);
            } catch (e) {}
            return btn;
        },
    });
})();} catch (e) {}

Отредактировано ez7pac (13-07-2022 17:59:29)

Отсутствует

 

№37913-07-2022 18:08:57

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

Я за эти кнопки зацепился потому, что Add Toolbars Buttons на 102-й версии работает не полноценно,

скрытый текст
Да вроде работает, просто обновите код для отключения проверки... -> https://forum.mozilla-russia.org/viewto … 59#p800159, там ещё была проблема с кнопкой "Дополнения", здесь решение -> https://forum.mozilla-russia.org/viewto … 83#p799883


Win7

Отсутствует

 

№38013-07-2022 18:12:36

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

Add Toolbars Buttons на 102-й версии работает не полноценно, а к трем кнопкам оттуда привык, не хочется их терять.

Всё работает, спасибо Dumby, №340

Отсутствует

 

№38113-07-2022 18:28:28

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss
voqabuhe
Ай, спасибо! Значит, не нашел. А из расширения перехожу на домашнюю страницу - 404.
+++
Все, разобрался, отредактировал, расширение заработало как положено.
Спасибо за помощь и консультации еще раз, парни! :beer:
+++
Опять 25
С кодом для отключения проверки не разберусь никак! Ткните носом, плиз, где он прячется.

Отредактировано ez7pac (13-07-2022 19:19:24)

Отсутствует

 

№38213-07-2022 20:55:06

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

С кодом для отключения проверки не разберусь никак! Ткните носом, плиз, где он прячется.

В папке установки [firefox], в файле config.js.


Win7

Отсутствует

 

№38313-07-2022 21:17:55

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss пишет

В папке установки , в файле config.js.

В папке браузера? И добавлял этот код - https://forum.mozilla-russia.org/viewtopic.php?pid=800159#p800159, и заменял то, что там было - пофиг

скрытый текст
screenshot2022-07-13001.1657735664.png

Отсутствует

 

№38413-07-2022 21:24:14

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

В папке браузера? И добавлял этот код - https://forum.mozilla-russia.org/viewtopic.php?pid=800159#p800159, и заменял то, что там было - пофиг

Инструкция, с описанием куда добавить: https://forum.mozilla-russia.org/viewtopic.php?id=70326


Win7

Отсутствует

 

№38513-07-2022 21:44:05

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss
Оба файла присутствуют по дефолту. Портабл родом отсюда - https://github.com/wvxwxvw/LibPortablePlus
И config.js, и config-prefs.js (код там правильный) есть и лежат на своих местах. Так дописывал код в config.js к имеющемуся, и заменял - эффекта нет - "работа дополнения не была проверена...". Хотя само расширение работает нормально. В 91-й версии никаких предупреждений нет. Вот и чешу репу - что я делаю не так...

Отсутствует

 

№38613-07-2022 22:00:25

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

Осталась кнопка менеджера паролей, но тут ее не вижу. Может плохо искал? Не поможете с ней?

ссылки в коде

Выделить код

Код:

/* https://forum.mozilla-russia.org/viewtopic.php?pid=788786#p788786
  есть для окна куков другой код, запоминает положение окна https://forum.mozilla-russia.org/viewtopic.php?pid=788799#p788799 */
try {CustomizableUI.createWidget({
	label: "ПАРОЛИ/КУКИ",
	tooltiptext: "ЛКМ: См. ПАРОЛИ\nПКМ: См. КУКИ",
	id: "ucf-logins-sitedata",
	localized: false,
	onCreated(btn) {
		btn._handleClick = btn.oncontextmenu = e => this.view(e, btn.ownerGlobal);
		btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAADo0lEQVR42pWUf0idVRzGP+d4vVfbFFeu/SErV1bUBiI6ivajUcEiiiBoaTEEo7Lsj2W1P6Q2xFiL0Qp0q/7pB2GLijZGG/aDSPuBxBbkGm3O7IJuRJmod+t6r+89p+d9b6TWhu17uefe97zn+5zn+3yfcwznCz9e7c2S5fr3i8Ec5yLCzHtq96txdGNZSoE+a8mxgRG2cx/t5uTFAd7u17GOPrbl9oDdibGjdPgrtOIlwd7TtI2aN8zCbGcBn/dJJb7LdtP2n1XP+Q8Z+a2St5bVzVPmlPInBVKHnw/Y7tdr7OE7yjhksnM2sTxrHJ/7Sr0booIbaDSDeC9pjec8EQH6TdRzgofNALddqBR/HWNU84B5n0+j533EWcYKKZwyjZyZz/BJ36XxVkrpZPDnOMUJy4xmCmOSsxDSZwPKrtylhjXwqtnvR3mGczxBwOXEbIaU+4YMLWYNSUPTcA9pt1GLFQEUFek3fBCQE6oNp204NUXvWIUfrGsmyS6mNV/bo+F6bfg0HP/gNHWsMmwaDCKLhGGtwwks5mweKcS2OawrYOJchz9Y08ExsjgxTweOm/pNhhvD3YPE+B0JPv5kh2HzcEogi0XOEQtfCcxGdKeEWRqRDfHHf7/L71hjuYSDpFVFThQvXeGpOkqaJa6YPsPXt/xqaBhWoitRWi4PmFH2oja6K3fyYLILm20hq6ljRzb6vfUZyvmS6bi2KTBk0lpaDtVbHGO9hhOf/WFoTKaEIoaiFdO6YMZhF9fyzvIBGpJ3knOHKEy8RnfFY35AJnexVn1d1FAn/81MezUklC3Bn7wSAk4JpYRpARa5nMovJBv7iKnE/ZS508RzX/B2ZYP/kRcFslXsQq3lQSeHSPrY338X5Yaoyq6eZZgVYFyAQUbtLe7lK1fP0p+2cvTuVn9SzNK05hsVWslGWNhgMqqqwB0W10fN1fLkPxo6aRjHRQydPUV31bWRgb+3ezT/ePiGbNwSm56Uo/qY4GW1bUgbeXMvo7PG3jw8KcDSqMs2ZBgaMPYm+65qkoFfV+IjODVBFlUFlkTwgrmGNi4QAkz6yHuhP0JtstYwemaV79xQBdkDcnq+UiffpYNmbuY9Y0jNOZQS0My5HJpGugTYooLziamz8EP/Wn/4oRpm4p1IAbl4QjrtNytp+n/XV/PYSpV5GaYge2RvSXHtt/JaGVsk9O6o1BKekuC7FwKbfx/++3Y5oINvdFBzGsvpN+uj07tg/AUtF37/2LRsMgAAAABJRU5ErkJggg==");
	},
	view(e, win) {
		if (e && (e.ctrlKey || e.shiftKey)) return;

		var uri = win.gBrowser.selectedBrowser.currentURI;
		try {
			var url = win.ReaderMode.getOriginalUrl(uri.spec);
			if (url) uri = Services.io.newURI(url);
		} catch {}

		try {var tld = Services.eTLD.getBaseDomain(uri);}
		catch {var tld = uri.asciiHost;}
		e ? this.viewCookies(tld, win) : this.viewPasswords(tld, uri, win);
		return false;
	},
	viewPasswords(tld, uri, win) {
		try {
			tld = Services.io.newURI(`${uri.scheme}://${tld}`).displayHost;
		} catch {}

		var params = new win.URLSearchParams({...(tld && {filter: tld})});
		var gb = win.gBrowser;
		var separator = params.toString() ? "?" : "";
		var tabToSelect, url = `about:logins${separator}${params}`;

		for (var tab of gb.visibleTabs) {
			var {spec} = tab.linkedBrowser.currentURI;
			if (!spec.startsWith("about:logins")) continue;

			if (spec != url) {
				var pending = tab.hasAttribute("pending");
				if (pending) gb.selectedTab = tab;
				tab.linkedBrowser.loadURI(
					url, {triggeringPrincipal: tab.nodePrincipal}
				);
				if (pending) return;
			}
			tabToSelect = tab;
			break;
		}
		gb.selectedTab = tabToSelect || gb.addTrustedTab(url);
	},
	async viewCookies(tld, window) {
		var notFound, wt = "Browser:SiteDataSettings";
		var url = "chrome://browser/content/preferences/dialogs/siteDataSettings.xhtml";
		var win = Services.wm.getMostRecentWindow(wt);

		if (!win) {
			notFound = true;
			await window.SiteDataManager.updateSites();
			win = window.openDialog(url, wt, "chrome,dialog=no,centerscreen,resizable");

			var e = await new Promise(resolve =>
				win.windowRoot.addEventListener("DOMContentLoaded", resolve, {once: true})
			);
			win = e.target.ownerGlobal;
		}
		var doc = win.document, de = doc.documentElement;
		de.setAttribute("persist", "screenX screenY width height");
		if (notFound) {
			de.setAttribute("windowtype", wt);
			var xs = Services.xulStore, {id} = de;

			var x = xs.getValue(url, id, "screenX");
			var y = xs.getValue(url, id, "screenY");
			x && de.setAttribute("screenX", x);
			y && de.setAttribute("screenY", y);
		}
		var sb = doc.querySelector("#searchBox");
		sb.inputField.setUserInput(tld);
		setTimeout(() => sb.editor.selection.collapseToEnd(), 50);
		notFound || win.focus();
	}
});} catch(ex) {Cu.reportError(ex);}

Добавлено 13-07-2022 22:02:50
А какие кнопки не работают в расширении и что с ним не так?
Сообщения на форуме видел, но у меня работает. Может, не теми кнопками пользуюсь, вот и прошу конкретики.:)

Отредактировано xrun1 (13-07-2022 22:03:24)

Отсутствует

 

№38713-07-2022 22:13:58

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

xrun1, спасибо.

А какие кнопки не работают в расширении и что с ним не так?

Не работало одно только выпадающее меню с расширениями, с другими кнопками все было нормально. Но теперь уже подсказали как поправить само расширение, теперь все работает без вопросов, так что коды кнопок уже не нужны. С ATB мне гораздо проще. Пользуюсь обычно четырьмя кнопками - восстановить закрытую вкладку, пароли, перезагрузка браузера и меню расширений. Иногда прокси вытаскиваю.

Отсутствует

 

№38813-07-2022 22:17:04

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

и заменял - эффекта нет

А перезапустить с очисткой кэша запуска...


Add. если проблема только в окошке с предупреждением...

скрыть

Выделить код

Код:

@-moz-document url-prefix("chrome://mozapps/content/extensions/aboutaddons.html"), url("about:addons"){
div.container {
   display: none !important;
}
}

добавить в userContent.css

Отредактировано kokoss (14-07-2022 19:50:13)


Win7

Отсутствует

 

№38913-07-2022 22:38:39

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss

А перезапустить с очисткой кэша запуска...

Само собой.

Add. если проблема только в окошке с предупреждением...

Так пропало предупреждение. Спасибо :beer:
Не то, чтобы оно сильно мешало, но на мозги немного капало :D

Отсутствует

 

№39013-07-2022 22:57:32

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

Re: UCF - ваши кнопки, скрипты…

ez7pac
Странно что у вас в [firefox] 102 появилось это окошко с предупреждением..., у меня в [firefox] 102 такого окошка с предупреждением... нет! Оно попадалось мне только в ESR ветке при использовании настроек в конфиге:

Выделить код

Код:

extensions.experiments.enabled = true
xpinstall.signatures.required = false

отключающие проверку...

Отредактировано kokoss (13-07-2022 22:58:15)


Win7

Отсутствует

 

№39113-07-2022 23:23:29

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss
У меня именно ESR и именно эти настройки в конфиге. При том, что их я не трогал точно. Обычно настраиваю только general.smoothScroll.mouseWheel.duration, мин-макс по 500 выставляю и browser.tabs.loadBookmarksInTabs - true. Все, больше ничего не трогаю.
Да и настройки эти неактивны, в смысле - я их не могу изменить. Скорее всего, автор сборки что-то там подкрутил. Ну, или она не дружит со 102-й версией. Я использовал архив для 91-й.

Отсутствует

 

№39213-07-2022 23:32:47

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

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

У меня именно ESR и именно эти настройки в конфиге.

С этого и надо было начать, тогда код для отключения... не нужен, достаточно переключить настройки в конфиге, которые я привёл выше + стиль для скрытия..., а не активны они потому что автор сборки видимо закинул их в файл config.js.


Win7

Отсутствует

 

№39314-07-2022 19:20:43

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss, дружище! Странный глюк вылез вот с этим кодом в userContent.css:

Выделить код

Код:

div.container {
   display: none !important;
}

Заметил не сразу, потому что он ломает только некоторые сайты. Вот хороший пример - http://tundra-japonamat.ru/index.html
По самому верху страницы ссылки навигации по сайту. Так вот при добавлении этого кода эти ссылки тупо пропадают. И еще счетчик от Хотлог в низу страницы. Ну, это мелочь. Перерыл все расширения и т.п., искал виновника, и вышел таки именно на этот код. Удаляю его из userContent - сайт начинает отображаться правильно, возвращаю - ломается опять...
Может там у меня со стилями что-то не то? Глянь, пожалуйста, если не в лом. Мой userContent.css без вот этого кода для скрытия предупреждений:

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

Выделить код

Код:

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("www.google.ru")
{
#newsbox span.tl>a, #newsbox span.tl>a.l {
    font-size: 13px;
    text-decoration: underline;
}
#res h3 {
    font-size: medium;
    text-decoration: underline;
}
#tads a, #tadsb a, #res a, #rhs a, #taw a {
    text-decoration: underline ;
}
div.nrg-title>a, div.irg-title>a {
    font-size: medium;
}
span.tl>a {
    font-size: 13px;
}
.rgsep, .g-blk, #extrares {
    display: none !important;
}
div#pushdown, div.pdp-psy, div.pmoabs {
    display: none !important;
}
div.rhsvw.kno-ftr {
    display: none !important;
}
#res h3 {
    font-size: medium !important;
}
.spell {
    font-size: 15px !important;
}
#_L8b {
    display: none !important;
}
div._eNq span {
    font-size: 15px !important;
    text-decoration: underline !important;
}
div.gb_g.gb_Lc.gb_Xc.gb_Wc > .gb_ha {
    display: none !important;
}
.mslg .l {
    font-size: 15px !important;
}
._dTj {
    font-size: 14px !important;
}
._vSj {
    line-height: 16px !important;
}
.xIqs0b {
    font-size: 15px !important;
}
html, body {
text-shadow: 0px 0px 0px !important;
}
}

@-moz-document domain("www.google.com")
{
#botstuff {
    display: none !important;
}
#brs {
    display: none !important;
}
div.vk_c.rhsvw.vk_rhsc.kp-blk {
    display: none !important;
}
h3.r {
    font-size: 15px;
    text-decoration: underline;
}
h3.r a {
    font-size: 15px;
}
#newsbox span.tl > a {
    font-size: 13px;
    text-decoration: underline;
}
div.nrg-title._Hb>a, div.irg-title._Hb>a, div.nrg-title._zb>a, div._qi._zb>a, a._ef.nrg-footer, a._ef.irg-footer {
    font-size: 15px ;
    text-decoration: underline;
}
span.spell.ng,a.spell b i  {
    font-size: 15px;
}
._Dk, ._wI, ._wI a {
    font-size: 15px !important;
}
#res h3 {
    font-size: medium !important;
}
.spell {
    font-size: 15px !important;
}
#_L8b {
    display: none !important;
}
div._eNq span {
    font-size: 15px !important;
    text-decoration: underline !important;
}
div.gb_g.gb_Lc.gb_Xc.gb_Wc > .gb_ha {
    display: none !important;
}
.mslg .l {
    font-size: 15px !important;
}
._dTj {
    font-size: 14px !important;
}
._vSj {
    line-height: 16px !important;
}
.xIqs0b {
    font-size: 15px !important;
}
html, body {
text-shadow: 0px 0px 0px !important;
}
}

@-moz-document domain("yandex.ru")
{
.b-advertizing-and-wizards,.b-serp-item_last_yes {
    display: none !important;
}
.b-body-items_type_main .b-serp-item:nth-child(11), .b-body-items_type_main .b-serp-item:nth-child(12), .b-body-items_type_main .b-serp-item:nth-child(13), .b-body-items_type_main .b-serp-item:nth-child(14), .b-body-items_type_main .b-serp-item:nth-child(15), .b-body-items_type_main .b-serp-item:nth-child(16), .b-body-items_type_main .b-serp-item:nth-child(17) {
    display: none !important;
}
a.b-spec-adv__direct {
    display: none !important;
}
div.b-person-results.g-gap-vertical.g-gap-horizontal {
    display: none !important;
}
div.b-related.g-gap-vertical.g-gap-horizontal {
    display: none !important;
}
div.b-spec-adv.b-spec-adv_serp-margin_yes.g-gap-vertical.b-spec-adv.b-spec-adv_type_highlighted.i-bem {
    background-color: #fff;
    font-size: 0;
    height: 0;
    margin-left: -1200px;
    padding: 0;
    width: 0;
}
div.z-audio__flash {
    display: none !important;
}
li.z-audio.b-serp-item.i-bem.z-audio_js_inited {
    display: none !important;
}
p.b-filters__intents.b-filters__intents_level_1 {
    display: none !important;
}
.logo, .b-logo {
    opacity: 0.3 !important;
}
.logo:hover {
    opacity: 1 !important;
}
.serp-item__title {
    font-size: medium !important;
    font-weight: normal !important;
    text-decoration: underline;
}

a.link.serp-item__title-link {
    font-size: 15px !important;
    text-decoration: underline !important;
}

a.link.distro__link.distro__item, div.distro__item {
    display: none !important;
}

div.distro.scroll-spy, div.z-default-search {
    display: none !important;
}

div.footer-stripe, div.footer-stripe__content {
    display: none !important;
}
}

@-moz-document domain("ya.ru")
{
.suggest2-form__input {
    background-color: #eee !important;
}
.input__control {
	color: #444 !important;
}
.button_theme_websearch  {
    background-color: #eee !important;
	color: #aaa !important;
}
}

@-moz-document domain("new-rutor.org")
{
body {
    background-image: none !important;
    padding: 0 !important;
}
#pluso-panel, #all, div#ws {
    width: 100% !important;
}
div#ws div#content {
    width: 75% !important;
}
.sideblock2 {
    display: none !important;
}
}

@-moz-document domain("bing.com")
{
h2, h3, .b_no h1 {
    font-size: medium !important;
}
}

@-moz-document domain("duckduckgo.com")
{
a.large, a.result__a  {
    font-size: medium !important;
}
.add-to-browser-badge, div.foot-home.js-foot-home, div.tag-home.tag-home--slide.no-js__hide.js-tag-home, div.results--powered  {
    display: none !important;
}
div.header-wrap--home.js-header-wrap {
    opacity: .5 !important;
}
div.logo-wrap--home, span.header__logo, img#logo {
    opacity: .3 !important;
}
div.logo-wrap--home:hover, span.header__logo:hover, img#logo:hover {
    opacity: 1 !important;
}
.logo_homepage {
    background-size: 130px 100px !important;
    height: 100px !important;
    width: 130px !important;
}

a.badge-link__wrap.js-badge-main-msg,
div.badge-link.badge-link--top.js-badge-link,
div.tag-home,
div.onboarding-bottom-bathroomguy-slide,
div.onboarding-bottom.onboarding-bottom-bathroomguy {
    display: none !important;
}
div.tag-home__wrapper,div.hide--screen-xs {
    display: none !important;
}
div.onboarding-ed__slide,div.onboarding-ed,div.badge-link {
    display: none !important;
}
}

@-moz-document domain("1tv.ru")
{
body {
    background-color: #000 !important;
}
.navbar,
.menu {
    background-color: #eee !important;
}
article.live,
.theme-main {
    background-color: #f4f4f4 !important;
}
header#page-title {
    color: #b4b4b4 !important;
}
.theme-main > .live,
.theme-main > .live > .player-wrapper {
    background-color: #000 !important;
}
.footer {
    background-color: #000 !important;
	color: #f4f4f4 !important;
}

#mainalert,
#popupContainer,
#yandex_ad,
.itv-push-suggest,
.welcome-popup,
.promo-place,
.branding_promo_place,
.header-promo-place,
.side-promo-place-right,
.footer-promo-place,
.social-buttons-compact,
.social-widgets,
.small-social-buttons,
.footer-menu,
.yashare-auto-init.b-share_theme_counter,
.links > li:nth-of-type(7) {
    display: none !important;
}
}

@-moz-document domain("ntv.ru")
{
div.intop {
    display: none !important;
}
#newplayer {
    top: 0 !important;
}
div#push_alert,
div.wrap_top_flash,
input.check_rez,
ul.likeBtm.custom,
div.outtop,
#x8831 a img {
    display: none !important;
}
}

input:not([type="submit"]):not([type="reset"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
textarea {
    background: #ffff33 !important;
}


Собирал давно, таскал из версии в версию. Вполне возможно, что там куча лишнего или даже вредного. Может из-за этого и сайты ломаются, а твой код только катализатором выступает :D ...

Отсутствует

 

№39414-07-2022 19:47:18

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

Re: UCF - ваши кнопки, скрипты…

ez7pac
Спасибо за подсказку, не подумал что может что то скрывать на сайтах. Тогда так:

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

Выделить код

Код:

@-moz-document url-prefix("chrome://mozapps/content/extensions/aboutaddons.html"), url("about:addons"){
div.container {
   display: none !important;
}
}

Отредактировано kokoss (14-07-2022 19:49:21)


Win7

Отсутствует

 

№39514-07-2022 19:57:13

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 102.0

Re: UCF - ваши кнопки, скрипты…

kokoss
Да, с этим кодом все шоколадно. Спасибо еще раз за помощь :beer:

Отсутствует

 

№39615-07-2022 00:03:10

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 91.0

Re: UCF - ваши кнопки, скрипты…

Парни, а Simple Session Manager из шапки - куда код кидать?

Отсутствует

 

№39715-07-2022 02:01:59

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 97.0

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

Парни, а Simple Session Manager из шапки - куда код кидать?

смотрите в шапке Демо-профиль, в нём множество скриптов/стилей уже подключено - файл CustomStylesScripts.jsm

Выделить код

Код:

scriptsbackground: [ // В фоне [System Principal]
	{ path: "custom_script.js", },
	{ path: "ucf_SessionManager.js", },

Отсутствует

 

№39815-07-2022 03:27:06

ez7pac
Участник
 
Группа: Members
Откуда: Кубань
Зарегистрирован: 27-12-2015
Сообщений: 200
UA: Firefox 91.0

Re: UCF - ваши кнопки, скрипты…

Dobrov, спасибо, но мне этого мало. В том смысле, что я в этих вопросах почти полный валенок. Так, вершков некоторых нахватался...
Скачал этот профиль, посмотрел, почитал - слишком много разных фишек, многие мне ни о чем не говорят, другие мне просто не нужны. Я хотел попробовать именно менеджер сессий. Сейчас юзаю Tab Session Manager, в принципе, терпимо, но убивает когда он при восстановлении сессии тусует вкладки как карточную колоду. Еще один похожий есть, с похожим интерфейсом, но там точно такая же ерунда. Вот и хотел пощупать этот, но что, куда и как - не понимаю. UserChromeFiles в наличии, а вот куда там добавить код этого менеджера - не понимаю.
Я не спец от слова совсем, подсказки на лету не поймаю, увы... Мне разжевывать надо :D

Отсутствует

 

№39915-07-2022 03:54:58

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

Re: UCF - ваши кнопки, скрипты…

ez7pac
Вроде не тасует, если стоит галка "Восстановить расположение окон Восстановить размеры и расположение окон при открытии сессии."

Отсутствует

 

№40015-07-2022 04:19:12

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 97.0

Re: UCF - ваши кнопки, скрипты…

ez7pac пишет

UserChromeFiles в наличии, а вот куда там добавить код этого менеджера - не понимаю.

повторюсь - файл CustomStylesScripts.jsm – добавить строку в секцию scriptsbackground: [ // В фоне [System Principal]
В этой теме в различных вариантах расписан порядок установки, всё есть в шапке и справке Демо-профиля. Ссылки снабжены всплывающими подсказками, например наведите мышь на startupCache в последней строке встроенной справки
Если вам описание установки в шапке не ясно, тогда пользуйтесь обычными дополнениями…

Отредактировано Dobrov (15-07-2022 04:25:45)

Отсутствует

 

Board footer

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