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

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

№905130-08-2020 21:15:12

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

Re: Настройка внешнего вида Firefox в userChrome.css

sibirnik

короткое появление белой вкладки на секунду при запуске любой вкладки(ссылки на сайт)

У меня первый код убирает белый фон при открытии из журнала, закладок, ссылок, топа сайтов, так же при запуске браузера.

вначале тёмный фон, затем на секунду светлый и только потом Speed Dial

Думал поможет, но после установки Speed Dial понял, что это совсем похоже из другой оперы. Разработчику лучше может написать.

скрытый текст
2c96bde25752.jpg


Вообще, этих Speed Dial-ов аж четыре поиск на АМО выдает.

Отредактировано sandro79 (30-08-2020 22:29:33)

Отсутствует

 

№905231-08-2020 01:31:07

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.

А можете ещё выделить названия системных расширений каким-нибудь другим цветом, чтоб их сразу было видно?

Отсутствует

 

№905331-08-2020 03:18:57

sibirnik
Участник
 
Группа: Members
Зарегистрирован: 11-08-2016
Сообщений: 63
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

sandro79

sandro79 пишет

этих Speed Dial-ов аж четыре

Больше с добавкой слов. Мало того, я их ранее почти все попробовал и у всех такая проблема. Вообще у меня тема не чёрная(не выдерживают глаза и чёрный и белый -))). )

sandro79 пишет

Разработчику лучше может написать.

Попробую. Вам спасибо.

Отсутствует

 

№905431-08-2020 09:47:29

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

ограничить, например, 60 символов (без заголовка), далее перенос на вторую строку (по словам)?
В общем то, описание можно вернуть, если бы длину строк ограничить.

Похоже вам другую версию не для всех добавлю, собственно длина тултипа и так ограничена css

скрытый текст
tooltip {
    appearance: auto;
    -moz-default-appearance: tooltip;
    margin-top: 21px;
    max-width: 40em;
    color: InfoText;
    font: message-box;
}

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

Выделить код

Код:

try {(() => {
    var id = "ucf-eom-button",
    label = "Настройки расширений",
    tooltiptext = "Настройки расширений",
    img = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='16' width='16' viewBox='0 0 48 48'><g><rect x='0' y='0' width='48' height='48' rx='3' ry='3' style='fill:rgb(0, 120, 173);'/><path style='opacity:0.25;fill:black;' d='M 24,4.5 18,12 3,23.7 12,32.7 3.9,44.1 7.8,48 H 45 C 46.7,48 48,46.7 48,45 V 26.1 L 34.8,12.9 31.8,12.3 Z'/><path style='fill:white;' d='M 19.88,3 C 16.93,3 14.55,4.662 14.55,6.701 14.63,7.474 15.11,8.438 15.37,8.762 16.59,10.41 16.59,11.44 16.29,12.06 H 6.299 C 4.476,12.06 3,13.53 3,15.35 V 23.68 C 3.625,24 4.65,24 6.299,22.77 6.625,22.52 7.587,22.02 8.363,21.94 10.4,21.94 12.06,24.35 12.06,27.29 12.06,30.24 10.4,32.65 8.363,32.65 7.725,32.63 6.774,32.07 6.299,31.82 4.65,30.59 3.625,30.59 3,30.91 V 41.71 C 3,43.53 4.476,45 6.299,45 H 19.58 C 19.88,44.38 19.88,43.35 18.65,41.71 18.4,41.38 17.91,40.42 17.82,39.65 17.82,37.6 20.23,35.94 23.18,35.94 26.14,35.94 28.55,37.6 28.55,39.65 28.53,40.28 27.97,41.23 27.71,41.71 26.47,43.35 26.47,44.38 26.79,45 H 32.65 C 34.47,45 35.96,43.53 35.96,41.71 V 32.55 C 36.56,32.23 37.59,32.23 39.23,33.47 39.72,33.73 40.68,34.29 41.29,34.29 43.35,34.29 45,31.91 45,28.94 45,25.99 43.35,23.59 41.29,23.59 40.54,23.67 39.58,24.17 39.23,24.41 37.59,25.65 36.56,25.65 35.96,25.33 V 15.35 C 35.96,13.53 34.47,12.06 32.65,12.06 H 23.49 C 23.19,11.44 23.19,10.41 24.41,8.762 24.66,8.287 25.22,7.337 25.23,6.713 25.23,4.662 22.85,3 19.88,3' /></g></svg>",
    showVersion = true,
    userPermissions = true,
    showHidden = true,
    showDisabled = true,
    enabledFirst = true,
    maxChars = 42,
    blackListSet = new Set([

    ]);

    if (!("AddonManager" in this))
        ChromeUtils.defineModuleGetter(this, "AddonManager", "resource://gre/modules/AddonManager.jsm");
    if (!("GlobalManager" in this))
        XPCOMUtils.defineLazyGetter(this, "GlobalManager", () => {
            const { GlobalManager } = ChromeUtils.import("resource://gre/modules/Extension.jsm", null);
            return GlobalManager;
        });
    var extensionOptionsMenu = {
        regExp: function(w, s = "") {
            return new RegExp(String.raw`(?![^\n]{1,${w}}$)([^\n]{1,${w}})${s}\s`, "g");
        },
        populateMenu: async function(e) {
            var prevState,
            popup = e.target,
            doc = e.view.document;
            while (popup.hasChildNodes())
                popup.firstChild.remove();
            var addons = await AddonManager.getAddonsByTypes(["extension"]);
            var regDesc = this.regExp(maxChars), regPerm = this.regExp(maxChars, ",");
            addons.filter(a => !(a.iconURL || "").startsWith("resource://search-extensions/")).sort((a, b) => {
                var ka = (enabledFirst ? a.isActive ? "0" : "1" : "") + a.name.toLowerCase();
                var kb = (enabledFirst ? b.isActive ? "0" : "1" : "") + b.name.toLowerCase();
                return (ka < kb) ? -1 : 1;
            }).forEach(addon => {
                if (!blackListSet.has(addon.id) &&
                    (!addon.hidden || showHidden) &&
                    (!addon.userDisabled || showDisabled)) {
                    if (showDisabled && enabledFirst && prevState && addon.isActive != prevState)
                        popup.append(doc.createXULElement("menuseparator"));
                    prevState = addon.isActive;
                    let extension = GlobalManager.extensionMap.get(addon.id);
                    let mi = doc.createXULElement("menuitem"), permissions, uuid,
                    props = {
                        label: `${addon.name}${showVersion ? ` ${addon.version}` : ""}`,
                        class: "menuitem-iconic",
                        tooltiptext: `${addon.description ? `${addon.description.replace(regDesc, "$1\n")}\n` : ""}ID: ${addon.id}${addon.isActive && (uuid = extension?.uuid) ? `\nUUID: ${uuid}` : ""}${(userPermissions && (permissions = addon.userPermissions?.permissions)?.length) ? `\n\n${permissions.join(", ").replace(regPerm, "$1,\n")}` : ""}\n${addon.optionsURL ? `\nЛКМ: Настройки` : ""}\nCtrl+ЛКМ: Копировать ID${uuid ? `\nShift+ЛКМ: Копировать UUID` : ""}${addon.creator?.url ? `\nCtrl+Shift+ЛКМ: Автор` : ""}${addon.homepageURL ? `\nСКМ: Домашняя страница` : ""}\nCtrl+СКМ: Просмотр источника\nShift+СКМ: Просмотр источника во вкладке\nПКМ: Включить/Отключить${(!addon.isSystem && !addon.isBuiltin) ? `\nCtrl+ПКМ: Удалить` : ""}`,
                        image: addon.iconURL || img,
                    };
                    for (let p in props)
                        mi.setAttribute(p, props[p]);
                    mi.addEventListener("click", (e) => {
                        extensionOptionsMenu.handleClick(e);
                    });
                    mi._Addon = addon;
                    mi._Extension = extension;
                    this.setDisable(mi, addon, 0);
                    popup.append(mi);
                }
            });
        },
        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;
            var hasMdf = e.ctrlKey || e.shiftKey || e.altKey || e.metaKey;
            switch (e.button) {
                case 0:
                    if (!hasMdf && addon.optionsURL)
                        this.openAddonOptions(addon, win);
                    else if (e.ctrlKey && e.shiftKey && addon.creator?.url)
                            win.gBrowser.selectedTab = this.addTab(win, addon.creator.url);
                    else if (e.ctrlKey)
                        Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper).copyString(addon.id);
                    else if (e.shiftKey && extension?.uuid)
                        Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper).copyString(extension.uuid);
                    win.closeMenus(mi);
                    break;
                case 1:
                    if (!hasMdf && addon.homepageURL)
                        win.gBrowser.selectedTab = this.addTab(win, addon.homepageURL);
                    else if (e.ctrlKey && !e.shiftKey)
                        this.browseDir(addon);
                    else if (e.shiftKey && !e.ctrlKey)
                        this.browseDir(addon, win);
                    win.closeMenus(mi);
                    break;
                case 2:
                    if (!hasMdf) {
                        let endis = addon.userDisabled ? "enable" : "disable";
                        if (addon.id == "screenshots@mozilla.org")
                            Services.prefs.setBoolPref("extensions.screenshots.disabled", !addon.userDisabled);
                        addon[endis]({ allowSystemAddons: true }).then(() => {
                            this.setDisable(mi, addon, 1);
                        }, err => {
                            console.error(err);
                        });
                    } else if (e.ctrlKey && !addon.isSystem && !addon.isBuiltin && Services.prompt.confirm(null, null, `Удалить ${addon.name}?`)) {
                        if (addon.pendingOperations & AddonManager.PENDING_UNINSTALL)
                            addon.cancelUninstall();
                        else {
                            addon.uninstall();
                            return;
                        }
                        let cls = mi.classList;
                        cls.remove("ucf-enabling");
                        cls.remove("ucf-disabling");
                        cls.add("ucf-uninstalling");
                        cls.add("ucf-disabled");
                    }
                break;
            }
        },
        setDisable: function(mi, addon, toggling) {
            var cls = mi.classList;
            if (toggling) {
                if (addon.isActive) {
                    if (addon.optionsURL)
                        cls.remove("ucf-notoptions");
                    cls.remove("ucf-disabled");
                    cls.remove("ucf-disabling");
                    cls.add("ucf-enabling");
                } else {
                    cls.remove("ucf-enabling");
                    cls.add("ucf-disabling");
                }
            }
            if (!addon.isActive)
                cls.add("ucf-disabled");
            if (!addon.optionsURL)
                cls.add("ucf-notoptions");
            if (addon.isSystem)
                cls.add("ucf-system");
        },
        openAddonOptions: function(addon, win) {
            if (!addon.isActive || !addon.optionsURL)
                return;
            switch (Number(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 == 1)
                    win.BrowserOpenAddonsMgr("addons://list/extension");
            });
            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} {
                    list-style-image: url("${img}") !important;
                }
                #${id}-popup menuitem::after {
                    display: -moz-box !important;
                    -moz-box-align: center !important;
                    -moz-box-pack: center !important;
                    font-style: normal !important;
                    height: 20px !important;
                    width: 20px !important;
                    line-height: 20px !important;
                    font-size: 20px !important;
                    overflow: hidden !important;
                }
                #${id}-popup menuitem:not(.ucf-disabled)::after,
                #${id}-popup menuitem.ucf-enabling::after {
                    content: "\\2611" !important;
                    color: #0074e8 !important;
                }
                #${id}-popup menuitem.ucf-disabled::after,
                #${id}-popup menuitem.ucf-disabling::after {
                    content: "\\2610" !important;
                    color: #cccccc !important;
                }
                #${id}-popup menuitem.ucf-enabling::after {
                    color: #cccccc !important;
                }
                #${id}-popup menuitem.ucf-uninstalling::after {
                    content: "\\0021" !important;
                }
                #${id}-popup menuitem.ucf-notoptions,
                #${id}-popup menuitem.ucf-notoptions > * {
                    color: gray !important;
                }
                #${id}-popup menuitem.ucf-disabled,
                #${id}-popup menuitem.ucf-disabled > * {
                    color: gray !important;
                    font-style: italic !important;
                }
                #${id}-popup menuitem.ucf-system > * {
                    text-decoration: underline !important;
                    text-decoration-style: dotted !important;
                }
            `);
            try {
                win.windowUtils.loadSheetUsingURIString(btnstyle, win.windowUtils.USER_SHEET);
            } catch (e) {}
            return btn;
        },
    });
})();} catch (e) {}

_zt пишет

И как blackListSet заполнять правильно?

Как и раньше массив строк, но они преобразуются в коллекцию Set
blackListSet = new Set([
    "строка1", "строка2"
    ]);

voqabuhe пишет

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

ну да

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

Выделить код

Код:

(() => {
    var loadscript = name => {
        try {
            Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${name}`, globalThis, "UTF-8");
        } catch(e) {}
    };
    loadscript("my_script.js");
    // и т. д.
})();

voqabuhe пишет

А можете ещё выделить названия системных расширений каким-нибудь другим цветом, чтоб их сразу было видно?

может подчеркивание, впрочем измените как будет угодно, добавил класс .ucf-system

Отредактировано Vitaliy V. (31-08-2020 09:48:58)

Отсутствует

 

№905531-08-2020 15:31:07

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 81.0
Веб-сайт

Re: Настройка внешнего вида Firefox в userChrome.css

sandro79 пишет
Xvost пишет

Теперь: нужно заменить текст у определённой папки на иконку. Я использую код:

Замените display на list-style-image
Если не поможет, то не знаю где ещё может быть ошибка, и вообще возможно ли такое. Может лучше иконку взять в .ico вместо .bmp

Благодарствую, но не работает. Или в корне не то, или же заменить текст в названии папки на панели закладок на картинку нельзя в принципе.

Или можно? Народ, кто в курсе?

Отсутствует

 

№905631-08-2020 16:50:32

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Спасибо. Все ОК.
   
Xvost
К чему такие сложности, может просто поменять иконки?
Тогда вдумчиво разбираем ( оригинал от Vitaliy V. ищите выше) и берем только нужное.

Отсутствует

 

№905731-08-2020 19:14:21

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

ну да

Спасибо!

Vitaliy V. пишет

может подчеркивание, впрочем измените как будет угодно, добавил класс .ucf-system

Про подчёркивание не подумал, согласен, на мой взгляд так тоже лучше. Спасибо.

Отсутствует

 

№905801-09-2020 01:22:58

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

Re: Настройка внешнего вида Firefox в userChrome.css

opaopalalala пишет

После последнего обновления Firefox в контекстном меню табов пункты "Закрыть вкладки справа" и т.п. объединились в группу "Закрыть несколько вкладок". Может быть кто подскажет как избавиться от этой вложенности и вернуть как было раньше. Или хотя бы как перенести один пункт "Закрыть вкладки справа" на уровень выше (как скрыть всю группу я разобрался).

Тоже интересуюсь этим вопросом.
Можно ли для этих двух пунктов избавиться от вложенности (перенести их в "корень" рядом с остальными пунктами)?

Отсутствует

 

№905901-09-2020 03:33:35

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 60.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Еще раз благодарю за стиль "порядок панелей: закладки-вкладки-навигация".
Из неожиданного: панель меню появилось в окнах расширений, где её раньше не было. Полагаю, это незапланировано, но лично для меня плюс: позволило запустить браузерный инспектор там, где штатно не получалось.
меня всё устраивает, сообщаю на случай, если вдруг для кого стиль будет нужен, а панель меню повсюду - нет.

Но есть вопрос:
Как, не меняя ориентации тулбара, поместить на эту панель кнопку, чтобы она липла к правой стороне?
++
А еще чуть покосился стиль панели поиска на странице. Но это точно не после нового стиля, а последствия перехода на 78.

Был такой код:

Выделить код

Код:

/* FindBar */
findbar {
-moz-box-ordinal-group: 0 !important;
}
findbar .findbar-container {
direction: rtl !important;
}
findbar .found-matches {
direction: ltr !important;
}
findbar .findbar-textbox {
direction: rtl !important;
min-width: 400px !important;
}
:-moz-any(.browserContainer,#viewSource) :-moz-any(findbar,#FindToolbar)
{
margin-top: -1px !important;
box-shadow: unset !important;
border: 1px solid #e1e1e2 !important;
border-top: 0px solid transparent !important;
border-radius: 0 0 3px 3px;
transition-property: margin-top, opacity, visibility !important;
background-image: unset !important;
background-color: rgb(249,249,250) !important;
background-image: none !important;
}

Теперь проблема с текстовым блоком: не даёт поменять ориентацию и не выставляется минимальная ширина. Если убрать "there.is.only.xul" всё совсем съежает.

Отредактировано razoo (01-09-2020 08:22:47)

Отсутствует

 

№906001-09-2020 14:31:15

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

razoo пишет

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

Да это не проверял, исправил, а насчет инспектора в нём есть кнопка выбрать iframe в качестве текущего целевого документа...

razoo пишет

Как, не меняя ориентации тулбара, поместить на эту панель кнопку, чтобы она липла к правой стороне?

Ну собственно и без стиля её просто так не сделать.
попробуйте как-то так, добавить в конце стиля перед последней скобкой }

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

Выделить код

Код:

*|*:root:not([inFullscreen]) #toolbar-menubar > :is(spacer[style*="-moz-box-ordinal-group: 1000;"],.toolbarbutton-1) {
    order: 100 !important;
}

.toolbarbutton-1 можно заменить на селекторы кнопок через запятую


razoo пишет

стиль панели поиска на странице.

может такой попробуйте https://forum.mozilla-russia.org/viewto … 86#p782586

Отсутствует

 

№906101-09-2020 16:20:59

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Обнаружил проблемы на youtube в скрипте для тултипов, сейчас обновил его, частично решилось, но не полностью.
До обновления: при первом наведении на заголовок миниатюры - ничего не показывал, второе наведение - ссылка, третье наведение - ссылка и заголовок.
После обновления: при первом наведении на заголовок миниатюры показывает только ссылку, при втором - ссылку и заголовок.

gif - 1мб
111-anim6.1598966275.gif

Можно исключение как то добавить? Мне вообще на youtube именно в заголовке миниатюр ссылки не нужны, одного татла достаточно. Может как то по #video-title для www.youtube.com. И что бы сразу title подхватывал.

Отсутствует

 

№906201-09-2020 17:46:31

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt
Это на главной youtube? У меня сразу отображается ссылка + текст. Может у вас  Imagus опять мешает, не?

Отсутствует

 

№906301-09-2020 18:30:26

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Да, опять Imagus, рубордовский фильтр O_youtube-link-thumb.
Я как то не обратил внимание на рамку. Вопрос снимается.
   
На toolbarbutton#undoclosedtabs_button-browser-action (это кнопка расширения) можно действие по пкм повесить - "Восстановить последнюю закрытую вкладку"?
Что б от последнего uc скрипта избавится и от лишней кнопки заодно.

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

Выделить код

Код:

// Undo Close Tab button script for Firefox 60+ by Aris
//

(function() {

try {
  Components.utils.import("resource:///modules/CustomizableUI.jsm");
  var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
  var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
  var appversion = parseInt(Services.appinfo.version);
  
  var button_label = "Восстановить вкладку";
 
  CustomizableUI.createWidget({
	id: "uc_undo_closetab_button", // button id
	defaultArea: CustomizableUI.AREA_NAVBAR,
	removable: true,
	label: button_label, // button title
	tooltiptext: button_label, // tooltip title
	onClick: function(event) {
	  
	  if(event.button=='0') {
		undoCloseTab();
	  }
	},
	onCreated: function(button) {
	  return button;
	}
		
  });
  
  var undoicon = "";
  if(appversion <= 62) {
	  undoicon = '\
	  #uc_undo_closetab_button .toolbarbutton-icon {\
		list-style-image: url("chrome://browser/skin/reload.svg"); /* icon / path to icon */ \
		transform: scaleX(-1); /* icon mirroring */\
	  }\
	  ';
  }
  
  // style button icon
  var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
	\
	  #uc_undo_closetab_button .toolbarbutton-icon {\
		list-style-image: url("chrome://browser/skin/undo.svg"); /* icon / path to icon */ \
		fill: gray; /* icon color name/code */\
	  }\
	  :-moz-any(#customization-palette,#widget-overflow-fixed-list) #uc_undo_closetab_button .toolbarbutton-icon {\
		width: 16px !important; \
		height: 16px !important; \
	  }\
	  '+undoicon+' \
	\
  '), null, null);
  
  sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
  
} catch (e) {
	Components.utils.reportError(e);
};

})();

Отредактировано _zt (01-09-2020 18:48:23)

Отсутствует

 

№906401-09-2020 19:08:56

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt
зачем мне скрипт, на расширение ссылку давайте, мне наобум что-ли делать ну да селектор есть но мало ли ещё чего

Отсутствует

 

№906501-09-2020 19:32:17

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Отсутствует

 

№906601-09-2020 23:00:52

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 60.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Спасибо за Find Bar.
А с кнопкой в меню баре следующее: ваш сниппет работает даже без подставления id. В главном окне всё отлично. Но оказалось (я сразу не проверил), что "незапланированное" меню в self-contained окнах теряет кинутые к нему кнопки.
Я активно пользуюсь расширением Popout Tab. Вернуть отделённый таб только через контекстное.
Возможно ли закрепить кнопку(ки) в меню-баре из первой версии вашего стиля так, чтобы она оставалась на отделённых табах?

_zt
"Undo Closed Tabs" в верхнем уровне меню имеет неосторожный пункт "Очистить историю". Не пытались его отключить?
Сегодня обнаружил, что из-за этого расширения Firefox теряет историю закрытых вкладок при возобновлении сессии. Хотя аддон из "рекомендованных" - снёс, ищу замену.
Учитывая, что теперь FF запоминает больше 25 закрытых, было бы разумней собственные средства браузера реализовать в кнопку. Пробовал кто-нибудь?

Отредактировано razoo (02-09-2020 07:30:02)

Отсутствует

 

№906702-09-2020 08:13:54

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

razoo
Я не пользуюсь "Undo Closed Tabs". В том что я пользуюсь можно удалить такой пункт, мне он не мешает.
В \data\popup\index.html удалите строку

Выделить код

Код:

<li data-cmd="clear-history"><span>Очистить историю</span></li>

Отредактировано _zt (02-09-2020 08:26:44)

Отсутствует

 

№906802-09-2020 08:55:02

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Мы же про одно расширение говорим?

_zt пишет

Undo_closed_tabs_button-0.1.6.zip

То, которое у меня косячило (рекомендованное мозиллой) называется очень похоже "Undo Close Tab".
А это "Undo Closed Tabs Button". И да, я у него хотел удалить этот пункт меню через usercontent - не получается.

Отсутствует

 

№906902-09-2020 12:51:49

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

razoo
Я вам написал как. Какой смысл использовать стили для расширения которое никогда больше не обновится?
   
Vitaliy V.
Или вот Undo_closed_tabs_button_REV-0.1.7-RU.zip, привел к нормальному виду.

Отсутствует

 

№907002-09-2020 13:08:26

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt
Подсказку "tooltiptext" на кнопке проще в расширении изменить, т.к. она постоянно обновляется
как-то так в manifest.json
"browser_action": {
    "default_title": "ЛКМ: Undo Closed Tabs Button\nПКМ: Восстановить вкладку",


custom_script.js

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

Выделить код

Код:

try { CustomizableUI.addListener({
    onWidgetBeforeDOMChange(node) {
        if (node.id == "undoclosedtabsrev_button-browser-action" && !node._ucf_change) {
            node._ucf_change = true;
            node.setAttribute("context", "false");
            node.addEventListener("click", function(e) {
                if (e.button == 2) {
                    e.preventDefault();
                    e.stopPropagation();
                    e.stopImmediatePropagation();
                    e.view.undoCloseTab();
                }
            });
        }
    },
}); } catch(e) {}

razoo пишет

Но оказалось (я сразу не проверил), что "незапланированное" меню в self-contained окнах теряет кинутые к нему кнопки.

Они просто скрыты

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

Выделить код

Код:

*|*:root[chromehidden~="menubar"] #toolbar-menubar toolbarbutton#_f437e17f-2ed1-44c5-b020-b2996c896a39_-browser-action {
    display: -moz-box !important;
}


или если для всех скрытых замените на toolbarbutton.chromeclass-toolbar-additional

Отсутствует

 

№907102-09-2020 13:51:37

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Спасибо, все получилось.

Отсутствует

 

№907202-09-2020 14:29:03

sibirnik
Участник
 
Группа: Members
Зарегистрирован: 11-08-2016
Сообщений: 63
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Del. Вопрос решён.

Отредактировано sibirnik (02-09-2020 19:18:20)

Отсутствует

 

№907302-09-2020 21:00:04

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Всё отлично. С вашим стилем получил больше, чем хотел. И это не украшения, а то, что активно используется.
Очень признателен. Спасибо!

Отсутствует

 

№907403-09-2020 03:03:44

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Потестил кнопку-скрипт "Тултипы с URL". Мне кажется, есть проблема с отображением "Title". Я здесь публиковал старый и больной javascript, 2-й спойлер. Больной потому, что иногда не удаляет своё окно с тултипом (на ютубе, например, при ЛКМ на видео), не всегда правильный цвет для домена или вообще не работает; надо править, а знаний маловато... Короче, под спойлером гифка с youtube и 3 картинки с комментариями.

скрытый текст
Гифка, включены и javascript (жёлтое окошко) и кнопка-скрипт. Мне кажется, что в этом случае скрипт "Hover Links (v2)" работает правильней. Как и в двух картинках под гифкой.
bandicam2020-09-0300-57-06-789.1599087561.gif
NlVUe6w.pngO4dN3w3.png
А вот на одноклассниках "Hover Links (v2)" почти не работает, зато Ваш вариант показывает правильно.
nGFOhxN.png

Отредактировано xrun1 (03-09-2020 03:04:27)

Отсутствует

 

№907503-09-2020 03:32:20

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

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1
Предыдущую страницу читал?

Отсутствует

 

Board footer

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