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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-08-2022 22:27:33

kazarin пишет

А можно поподробнее, на что влияет манифест и что стоит туда вносить?

Например, чтобы сменить иконку "Глобус".


В папке user_chrome_files создаете какую-нибудь папку, например, icon и помещаете туда свою иконку.
Потом в файл user_chrome.manifest добавляете такую строку:

Выделить код

Код:

override chrome://global/skin/icons/defaultFavicon.svg chrome://user_chrome_files/content/icon/ИМЯ_ВАШЕЙ_ИКОНКИ.svg

После этого стандартная иконка "Глобус" автоматом везде сменится на вашу.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-08-2022 22:07:35

sandro79 пишет

А там этот цвет задан в первом правиле (#AEAEAE).

sandro79, большое спасибо.
Получилось почти также, как было на [firefox] 91 ESR.
untitled-4.png

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-08-2022 21:30:06

sandro79 пишет

Что-то похожее я здесь недавно пытался сделать, только цвета и отступы возможно придётся подобрать свои. А тут для бордюра стиль Vitaliy V.

sandro79, спасибо.
В целом получилось что-то похожее.
untitled-3.png
Но появился ещё вопрос. Как изменить этот серый цвет при наведении на свой?

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-08-2022 16:25:17

Пользовался [firefox] 91 ESR. Решил посмотреть, что из себя представляет [firefox] 102 ESR и сразу же столкнулся с ужасным видом меню закладок:
untitled-1.png
Возможно ли вернуть прежний вид?
untitled-2.png
Или придется мириться с этим жутким новым видом меню закладок?

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 24-06-2022 23:25:22

qwark пишет

Помогите найти стиль который делает панель закладок в 2 и более строк. Пользовался таким, но из-за форс-мажора все стили утеряны:(
ps FF 101.0.1

У меня в архиве сохранился стиль от Vitaliy V., но не уверен, что он подойдёт к FF101.0.1[spoiler][code]/* Код: Vitaliy V. (https://forum.mozilla-russia.org/viewtopic.php?pid=785209#p785209) */

@-moz-document url("chrome://browser/content/browser.xhtml") {

#personal-bookmarks {
    --v-bookmark-item-rows: 3; /* Количество рядов закладок */
    --v-bookmark-item-height: 21px; /* Высота одного ряда */
    --v-bookmark-item-font-size: 12px; /* Размер шрифта */
    --v-scrollbar-width-default: thin; /* размер скроллбара, возможные значения: auto thin none */
    --v-scrollbar-colors-default: rgb(0, 116, 232) transparent; /* цвета скроллбара */

    -moz-window-dragging: no-drag !important;
    font-size: 0 !important;
}

toolbar {
    max-height: none !important;
}

#PersonalToolbar {
    padding: 1px 0px !important;
}

too

Сustom Buttons » Custom Buttons » 11-06-2022 14:17:44

Dumby пишет

Да, я уже упоминал пару раз почему.


Увы, здесь такое можно повторить, наверное, только с Debugger'ом.

Большое спасибо!

Сustom Buttons » Custom Buttons » 10-06-2022 08:07:07

Dumby
Не посмотрите этот код:[spoiler][code]// Отключить обновление иконок всех закладок при импорте закладок из HTML файла .....
// Dumby: https://forum.mozilla-russia.org/viewtopic.php?pid=794978#p794978 .....
// Код для config.js .....
(async url => {
    var nsvo = Cu.import(url, {});
    var code = `eval(\`${nsvo.insertFaviconForNode}\`);`
        .replace(
            ".iconUri",
            '$& || node.iconUri.startsWith("http")'
                //+ `\n    && Components.stack.caller.filename == "${url}"\n  `
        )
        .replace(/(catch \(ex\) {).+?}/s, "$1}");

    var subst = "bookmarks-html-import-meds-tmp-script";
    var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
    var rph = ios.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
    rph.setSubstitution(subst, ios.newURI("data:," + encodeURIComponent(code)));
    Cc["@mozilla.org/moz/jssubscript-loader;1"]
        .getService(Ci.mozIJSSubScriptLoader).loadSubScript("resource://" + subst, nsvo);
    rph.setSubstitution(subst, null);
   

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 07-06-2022 18:34:23

sandro79 пишет

Отсюда второй код можно использовать чтоб вернуть привычный пунктир. Или outline: none !important; задать, чтоб вообще рамку убрать.
Да и первый можно использовать, чтоб уменьшить увеличенные вдвое точки в других местах.

Большое спасибо.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 07-06-2022 14:17:09

Подскажите пожалуйста, как убрать синюю рамку в Firefox 101.


untitled-3.png

Сustom Buttons » Custom Buttons » 19-03-2022 13:50:20

Dumby пишет

Почему бы нет

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

Выделить код

Код:

/*
          let info = await PlacesUtils.bookmarks.fetch(node.bookmarkGuid);
*/
          let args = [node.bookmarkGuid];
          let isBookmark = PlacesUtils.nodeIsBookmark(node);

          isBookmark && args.push(null, {includePath: true});
          let info = await PlacesUtils.bookmarks.fetch(...args);
          if (isBookmark) info.parentGuid = info.path[0].guid;

Большое спасибо.

Сustom Buttons » Custom Buttons » 18-03-2022 22:53:52

Dumby пишет

[spoiler][code](async repl => {
    var obj = `{\n  ${
        (await (await fetch("chrome://browser/content/places/controller.js")).text())
            .match(/async _removeRange\(.+?\n\ +}(?=,\n)/s)[0]
            .replace("// This is a common bookmark item.", repl)
    }\n}`
    var ps = await ChromeUtils.compileScript("data:,(" + encodeURIComponent(`${obj => {
        var patch = async ctor => {
            var proto = ctor.prototype, meth = proto?._removeRange;
            meth && Object.assign(proto, obj);
        }
        var key = "PlacesController";
        var desc = Object.getOwnPropertyDescriptor(window, key);
        if (!desc) return;

        var {get} = desc;
        if (get)
            desc.get = () => {
                var val = get();
                patch(val);
                return val;
            },
            Object.defineProperty(window, key, desc);
        else
            patch(desc.value);
    }})(${obj});`));

    var obs = doc => "PlacesController" in doc.ownerGlobal && ps.executeInGlobal(doc);
    var topic = "chrome-document-loaded";
    Services.obs.addObserver(obs, topic);
    Services.obs.addObserver(function quit(s,

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-02-2022 09:43:32

Dobrov пишет

насколько я понял, в CustomStylesScripts.jsm нет возможности подключать jsm-скрипты ?

Выделить код

Код:

scriptsbackground: [ // В фоне [System Principal]
		{ func: 'ChromeUtils.import("chrome://user_chrome_files/content/custom_scripts/xxxxxxxx.jsm");', },

Сustom Buttons » Custom Buttons » 15-02-2022 10:49:05

Dumby пишет

Что-то слегка не связанные вещи.
Подключение — да, код кнопок исполняется в окне браузера,
так что — верно, «Для докум. окна браузера»,
и «По событию "load"» — ближе всего по моменту времени исполнения.
А вот что и как переделывать в самих кодах ...

Dumby, огромное спасибо за развёрнутый ответ.

Сustom Buttons » Custom Buttons » 14-02-2022 16:03:15

Dumby пишет

JSM'ка

Большое спасибо!


Dumby, просветите пожалуйста ещё по такому вопросу.
У меня в СВ есть вот такие простенькие коды:

1

Выделить код

Код:

gBrowser.tabContainer.addEventListener("wheel", e => {
	if (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey) {
		return;
	}
	e.stopPropagation();
	e.preventDefault();
	setTimeout(function() {
		gBrowser.tabContainer.advanceSelectedTab(e.deltaY > 0 ? 1 : -1, true);
	}, 25);
}, true);

2

Выделить код

Код:

function closeTabEsc(e) {
	if (e.keyCode === 27 && window.fullScreen) {
		window.fullScreen = !window.fullScreen;
	}
	else if (e.keyCode === 27 && !window.fullScreen) {
		e.stopPropagation();
		e.preventDefault();
		setTimeout(function() { gBrowser.removeTab(gBrowser.selectedTab); }, 100);
	}
}
document.addEventListener("keydown", closeTabEsc, false);
addDestructor(()=> document.removeEventListener("keydown", closeTabEsc, false));

[spoiler=3][code]addEventListener("dblclick", function(e) {
 

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 11-02-2022 17:09:11

blazah пишет

Я ещё только познаю азы тонких настроек на новых Firefox, можно краткий ликбез, как поставить скрипт.

Если коротко.
Установить пакет user_chrome_files от Vitaliy V.
После чего подключить нужный вам скрипт.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 11-02-2022 16:35:50

blazah пишет

И ещё если убрать верхнее меню, то само меню убирается, а вот место под ним не схлопывается наверх, просто пустое остаётся. Как это поправить?

Установить скрипт.
Ссылка таже, которую я давал выше: https://forum.mozilla-russia.org/viewto … 10#p784310, второй спойлер.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 11-02-2022 06:57:17

blazah пишет

Народ, а как перенести панель вкладок под адресную строку? Firefox 97. Тыркните пожалуйста сцылочкой или код приведите здесь плиз.

https://forum.mozilla-russia.org/viewto … 10#p784310

Сustom Buttons » Custom Buttons » 09-02-2022 15:38:33

Dumby пишет

так, по верхушкам прошёлся, надеюсь, ничего не испортил.

Dumby, большое вам спасибо за такой подробный разбор кода.
Переделал свой код по вашим советам, всё прекрасно работает.



Dumby, если не трудно, переделайте пожалуйста под UCF кнопку Reload user{Chrome, Content}.css

Сustom Buttons » Custom Buttons » 08-02-2022 22:21:16

Dumby
Я для себя переделывал одну кнопочку из СВ в UCF.
В принципе кнопка получилась рабочей, но что-то мне подсказывает, что код получился "кривой".


Посмотрите пожалуйста своим профессиональным взглядом. Хотелось бы услышать ваше мнение.
И ещё. В моём коде мне не нравится использование eval(), но как избавится от eval что-то не соображу. Может подскажете?


[spoiler=Код кнопки][code]
try {
CustomizableUI.createWidget({
    id: "ucf_exportsBookmarksToHTMLFile",
    label: "Экспорт закладок в HTML-файл",
    image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAAAAAAAAAHqZRakAAACY0lEQVQ4y42SXWiPYRjGf0/eAxFFK0lZ8xVrPmcfDQtNESfURBwIWZqIyIEdLZSaTGy1xQGFAyuZKG0MS2yxWigfB3KAkRPb/33e53OPg3f7b0NxHd7P/Vx310fEECKAEEKIspMQQkCIkacxu6Px5yDO/Ax9Xz7z7Xsfr3p7iKSMkVJStnKtAIiUlCglAQiQ3lVJHOLMADLO0D/wExnHZDIx79+9SY8kSUwiJTKRJEpRVFouAJoa6lKGREqUSpBxBiWH6EcLuXO7hT8gBAJExD8QbdvVFprPF1K59wkNJ+ey6cBTLtXksfpIJ+5lrYjcoGfS5Ckk3jB7Xj6JfcCK8gqcaUsZjHX8+PYVZTWve1/QbyR

Сustom Buttons » Custom Buttons » 06-02-2022 19:47:41

Dumby пишет

Ну, раз так, можно попробовать свой трекер запилить.


Допустим, под «предыдущей посещенной вкладкой»,
подразумевается предыдущая (по времени)
активировавшаяся вкладка, не скрытая и не закрытая.
Следует понимать, что такой может не быть,
тогда переход пойдёт туда, куда перейдёт сам браузер.
[spoiler][code](async ucf => {
    await delayedStartupPromise;
    var set = new Set([gBrowser.selectedTab]);
    var bt = gBrowser._blurTab;
    gBrowser._blurTab = tab => {
        if (!tab.selected) return;
        set.delete(tab);
        var res;
        for(var t of set) t.hidden || (res = t);
        res ? gBrowser.selectedTab = res : bt.call(gBrowser, tab);
    }
    var arr = [
        ["TabClose", e => set.delete(e.target)],
        ["TabSelect", e => set.add(e.target, set.delete(e.target))]
    ];
    var id, tc = gBrowser.tabContainer;
    for(var args of arr) tc.addEventListener(...args);
    ucf.unloadlisteners.push(id = Symbol());
    ucf[id] = {destructor() {
        set.clear();
        for(var args of arr) tc.removeEventListener(...args);
    }};
})(ucf_cu

Сustom Buttons » Custom Buttons » 05-02-2022 04:20:52

Dumby
Вы когда-то давно написали вот этот код:

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

Выделить код

Код:

/*Initialization Code*/

// Закрытие вкладки = переход на предыдущую посещенную ..........
// https://forum.mozilla-russia.org/viewtopic.php?pid=759770#p759770 .....
((blurTab, dummy, s, lastSelect) => {
    (s = () => lastSelect = Date.now())();
    addEventListener("TabSelect", s, false, gBrowser.tabContainer || 1);
    gBrowser._blurTab = tab => {
        if (!tab.selected) return;
        var tabToSelect = dummy;
        for(var t of gBrowser.tabs) if (
            !t.hidden && !t.closed
            && t.lastAccessed > tabToSelect.lastAccessed
            && t.lastAccessed < lastSelect
        )
            tabToSelect = t;
        if (tabToSelect == dummy) blurTab.call(gBrowser, tab);
        else gBrowser.selectedTab = tabToSelect;
    }
    addDestructor(() => gBrowser._blurTab = blurTab);
})(gBrowser._blurTab, {lastAccessed: 0});

Либо я не совсем понимаю алгоритм работы этого кода, либо он про

Сustom Buttons » Custom Buttons » 04-02-2022 02:06:07

Dumby пишет

unter_officer
[spoiler]Пытался размышлять над однооконным режимом, и понял,
что ничего хорошего у меня придумать не получится.


Есть вариант просто тупо закрывать окна, что уже нехорошо.
Вот так, например, перекрывает основной попс — окна,
создаваемые с участием parent (docShell).


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


Увы, для WebExtensions, браузер создаёт окна именно так.
Вписал некое вмешательство в создание, но закомментировал.
Можно раскомментировать, посмотреть что ещё может сломаться.


Вобщем, частично и грубо.
[code](br => ({
    async init() {
        lockPref("browser.link.open_newwindow", 3);
        lockPref("browser.link.open_newwindow.restriction", 0);
        lockPref("browser.link.open_newwindow.override.external", 3);
        lockPref("browser.link.open_newwindow.disabled_in_fullscreen", true);

        var self = this;
        var topic

Сustom Buttons » Custom Buttons » 27-01-2022 19:08:49

Dumby пишет

Думаю наоборот, это я без понятия что есть
«принудительное использование однооконного режима браузера».

Я же выше два раза написал, что под этим имеется ввиду.


Хорошо. Сформулирую иначе.
Мне надо, чтобы при попытке открыть новое окно FF, вместо нового окна открывалась новая вкладка в текущем окне.
Такое можно реализовать в FF 91 ESR?


Если нет, то нет. Переживу.
А ставить расширения, от которых я всеми силами стараюсь избавится заменяя функции этих расширений кнопками СВ и UCF, я не хочу.

Сustom Buttons » Custom Buttons » 27-01-2022 12:34:54

Dumby пишет

Она и сейчас есть. Только что-то в уе не смог найти.
Включил extensions.tabmix.singleWindow, рестарт.
И пара-тройка тестов:
1. Ctrl+N, вместо окна — вкладка (жесть какая).
    Но Ctrl+Shift+P открывает окно, если таковое не имеется, что логично.
2. Вот инфа от LPP WE открывается во вкладке
    поперёк настройки [✓]  Открывать в окне,
    но, например, с PT, увы, пустая вкладка, нелепый пример, но всё же.
3. Веб-консоль (Ctrl+Shift+K), запуск open(location, "", "width=500"); + разрешение,
    вместо окна — вкладка.

Dumby, если честно, я ничего из вашего ответа не понял.
Возможно, мой вопрос был задан не совсем корректно, поэтому и ответ такой.


Собственно я спрашивал возможно ли реализовать в версии FF91 ESR принудительное использование однооконного режима браузера.
Чтобы при попытке открыть новое окно, открывалась новая вкл

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 26-01-2022 21:33:22

Алексей У. пишет

А у вас на [firefox] 91 такого не наблюдается?

В Контакте меня нет, а на других сайтах не замечал чего-то подобного.

Board footer

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