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

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

№172615-06-2024 21:19:00

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

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

xrun1
Проверили на dev?

Отредактировано _zt (15-06-2024 21:20:43)

Отсутствует

 

№172715-06-2024 21:25:08

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

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

_zt
Нет. Пользуюсь только релизами.

Отсутствует

 

№172815-06-2024 21:38:12

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

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

Не работает на 128 dev и [nightly], а на 127 dev и старый код работает, Browser.reload(); никак не мешает. Только уведомления пустые были, просто галочка.

Отредактировано _zt (15-06-2024 21:45:46)

Отсутствует

 

№172916-06-2024 04:22:40

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

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

Vitaliy V. пишет

Решил Sidebar Tabs в виде юзер скрипта добавить в UCF

Vitaliy V. или Dumby – кнопка-меню для Sidebar Tabs неудобна – адреса не изменить ! :(
Просьба: в меню любой закладки на PlacesToolbarItems добавить «Открыть закладку в Sidebar Tabs»

Отсутствует

 

№173016-06-2024 19:48:43

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

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

Dobrov пишет

добавить

А в чём именно затруднение? Создаёшь и добавляешь.


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

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

Выделить код

Код:

(async sel => {
	var sep = document.querySelector(sel);
	if (!sep) return;

	var popup = sep.parentNode;
	var menuitem = document.createXULElement("menuitem");
	for(var args of Object.entries({
		"node-type": "link",
		"selection-type": "single",
		label: "Открыть в Sidebar Tabs",
		id: "placesContext_open:sidebartabs",
	}))
		menuitem.setAttribute(...args);

	menuitem.addEventListener("command", () => {
		var {uri} = popup.triggerNode._placesNode || popup._view.selectedNode;
		Services.wm.getMostRecentBrowserWindow()
			.ucf_custom_script_win.ucf_sidebar_tabs.setPanel(4, uri);
	});
	sep.before(menuitem);
})("menupopup#placesContext > #placesContext_openSeparator");

Отсутствует

 

№173116-06-2024 23:11:16

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

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

_zt пишет

URL-bar History Dropmarker отвалился. Поправите?

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

Выделить код

Код:

(async (
    id = Symbol("urlbarhistorydropmarker"),
    hidewhenusertyping = true, // скрывать dropmarker при вводе
    copyvalueistyped = true, // при вводе копировать содержимое адресной строки вместо URL
    currentURIlabel = "Адрес текущей страницы в буфере обмена!",
    valueIsTypedlabel = "Содержимое адресной строки в буфере обмена!",
    Ltooltiptext = "ЛКМ: Показать историю",
    Mtooltiptext = "СКМ: Обновить текущую страницу", // или false
    Rtooltiptext = "ПКМ: Копировать URL в буфер обмена", // или false
) => (this[id] = {
    dropmarker: null,
    pref: "browser.urlbar.suggest.history",
    get style() {
        delete this.style;
        return this.style = `data:text/css;charset=utf-8,${encodeURIComponent(`
            #urlbar .urlbar-history-dropmarker {
                list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important;
                transition: opacity 0.15s ease;
            }
            #urlbar[switchingtabs] > :is(#urlbar-input-container,.urlbar-input-container) > .urlbar-history-dropmarker {
                transition: none;
            }
            ${hidewhenusertyping ? `#urlbar[usertyping] > :is(#urlbar-input-container,.urlbar-input-container) > .urlbar-history-dropmarker {
                display: none;
            }` : ""}
            #nav-bar:not([customizing="true"]) > #nav-bar-customization-target > #urlbar-container:not(:hover) > #urlbar:not([focused]) > :is(#urlbar-input-container,.urlbar-input-container) > .urlbar-history-dropmarker {
                opacity: 0;
            }
        `)}`;
    },
    get helper() {
        delete this.helper;
        return this.helper = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
    },
    init() {
        this.UrlbarProviderPlaces = ChromeUtils.importESModule("resource:///modules/UrlbarProviderPlaces.sys.mjs").UrlbarProviderPlaces;
        this.UrlbarProviderInputHistory = ChromeUtils.importESModule("resource:///modules/UrlbarProviderInputHistory.sys.mjs").UrlbarProviderInputHistory;
        Services.prefs.addObserver(this.pref, this);
        setUnloadMap(id, this.destructor, this);
        if (Services.prefs.getBoolPref(this.pref, false))
            this.createDropmarker();
    },
    get tooltipText() {
        delete this.tooltipText;
        return this.tooltipText = `${Ltooltiptext}${Mtooltiptext ? `\n${Mtooltiptext}` : ""}${Rtooltiptext ? `\n${Rtooltiptext}` : ""}`;
    },
    createDropmarker() {
        windowUtils.loadSheetUsingURIString(this.style, windowUtils.USER_SHEET);
        var dropmarker = this.dropmarker = document.createXULElement("image");
        dropmarker.className = "urlbar-page-action urlbar-history-dropmarker urlbar-icon";
        dropmarker.tooltipText = this.tooltipText;
        document.querySelector("#urlbar #page-action-buttons").before(dropmarker);
        dropmarker.addEventListener("mousedown", this);
        if (Rtooltiptext || Mtooltiptext)
            dropmarker.addEventListener("click", this);
    },
    removeDropmarker() {
        this.removeListeners();
        this.dropmarker.remove();
        this.dropmarker = null;
        windowUtils.removeSheetUsingURIString(this.style, windowUtils.USER_SHEET);
    },
    removeListeners() {
        this.dropmarker.removeEventListener("mousedown", this);
        if (Rtooltiptext || Mtooltiptext)
            this.dropmarker.removeEventListener("click", this);
    },
    observe() {
        if (!this.dropmarker) {
            if (Services.prefs.getBoolPref(this.pref, false))
                this.createDropmarker();
        } else
            this.removeDropmarker();
    },
    handleEvent(e) {
        this[e.type](e);
    },
    mousedown(e) {
        if (e.button) return;
        e.preventDefault();
        e.stopPropagation();
        if (gURLBar.view.isOpen)
            gURLBar.view.close();
        else {
            if (!gURLBar.valueIsTyped)
                this.UrlbarProviderPlaces.getPriority = this.UrlbarProviderInputHistory.getPriority = function() {
                    delete this.getPriority;
                    return 3;
                };
            gURLBar.focus();
            gURLBar.startQuery();
        }
    },
    click(e) {
        if (e.button === 0) return;
        e.preventDefault();
        e.stopPropagation();
        if (e.button === 1 && Mtooltiptext) {
            BrowserCommands.reload();
            return;
        }
        if (!Rtooltiptext) return;
        var url, val;
        if (!gURLBar.valueIsTyped || !copyvalueistyped) url = gURLBar.makeURIReadable(gBrowser.selectedBrowser.currentURI).displaySpec, val = currentURIlabel;
        else url = gURLBar.untrimmedValue, val = valueIsTypedlabel;
        this.helper.copyString(url);
        ConfirmationHint.show(this.dropmarker, "", { hideArrow: true });
        ConfirmationHint._message.removeAttribute("data-l10n-id");
        ConfirmationHint._message.textContent = val;
    },
    destructor() {
        if (this.dropmarker)
            this.removeListeners();
        Services.prefs.removeObserver(this.pref, this);
    },
}).init())();

Отсутствует

 

№173217-06-2024 07:26:16

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

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

Dumby пишет

А в чём именно затруднение? Создаёшь и добавляешь.

С нуля делать не умею, изучал контекст-меню undoBookmarks, но это не совсем то…


Добавил в шапку версию Sidebar Tabs с поддержкой закладок (два скрипта в одном)

Отсутствует

 

№173317-06-2024 11:51:58

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

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

Vitaliy V.
Спасибо.
   
Тем кто будет использовать - ucfobj: true, старый с false работал.

Отсутствует

 

№173417-06-2024 14:09:33

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

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

Dobrov пишет

(два скрипта в одном)

Напрасно, тебе же Dumby сделал чтобы не только в основном окне работало но также в библиотеке или в самом сайдбаре
подключить в scriptsallchrome.load
{ path: "places_context_open.js", urlregxp: /chrome:\/\/browser\/content\/(?:browser|places\/(?:bookmarksSidebar|historySidebar|places))\.xhtml/, },



Небольшое обновление Sidebar Tabs, устранил проблему в режиме автоскрытия, когда при открытии из меню не всегда срабатывало авто открытие

Отсутствует

 

№173517-06-2024 17:06:16

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

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

Vitaliy V. пишет

Напрасно, тебе же Dumby сделал чтобы не только в основном окне работало но также в библиотеке или в самом сайдбаре

Спасибо за разбор ошибок!

Отсутствует

 

№173617-06-2024 17:49:36

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 444
UA: Firefox 127.0

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

Vitaliy V. Как добавить иконку в скрипт от Dumby https://forum.mozilla-russia.org/viewto … 77#p810077 и зарегистрировать ее в resource

Отсутствует

 

№173717-06-2024 19:11:30

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

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

egorsemenov06
А обязательно новую добавлять? от Sidebar Tabs "resource://ucf_sidebar_tabs" лучше используйте чтобы одинаковые были,
добавить в Object.entries({

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

Выделить код

Код:

class: "menuitem-iconic",
style: 'list-style-image:url("resource://ucf_sidebar_tabs");-moz-context-properties:fill,stroke,fill-opacity;stroke:currentColor;fill:currentColor;fill-opacity:var(--toolbarbutton-icon-fill-opacity,.8);',

Отсутствует

 

№173817-06-2024 19:23:06

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 444
UA: Firefox 127.0

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

Vitaliy V. пишет

egorsemenov06
А обязательно новую добавлять? от Sidebar Tabs "resource://ucf_sidebar_tabs" лучше используйте чтобы одинаковые были,
добавить в Object.entries({

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

Выделить код

Код:

class: "menuitem-iconic",
style: 'list-style-image:url("resource://ucf_sidebar_tabs");-moz-context-properties:fill,stroke,fill-opacity;stroke:currentColor;fill:currentColor;fill-opacity:var(--toolbarbutton-icon-fill-opacity,.8);',

СПАСИБО БОЛЬШОЕ!!!!!Конечно лучше что бы одинаковые были.

Отсутствует

 

№173919-06-2024 00:54:43

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

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

Vitaliy V.
Поставил крайние UserChromeFiles.zip + UserChromeFiles_Fix_115_ESR.zip
Раскомментировал user_chrome_files\custom_scripts\sidebar_tabs.js, установил значение
AUTO_HIDE = false, // Auto hide
Теперь боковая панель сдвигает Sidebar Tabs, а раньше выезжала поверх. Мне кажется, поверх было симпатичнее, ничего не дёргалось. Так задумано или я что-то не донастроил?
https://imgur.com/XLdI2YS

Отсутствует

 

№174019-06-2024 10:30:44

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

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

xrun1 пишет

Так задумано

Да. Тут надо определится, почему то панель закладок или доп. панель не должна перекрывать там же тоже дергается, а вертикальная панель должна?!
Но ладно добавил настройку
https://github.com/VitaliyVstyle/VitaliyVstyle.github.io/blob/main/UserChromeFiles/chrome/user_chrome_files/custom_scripts/sidebar_tabs.js#L43

Отсутствует

 

№174119-06-2024 11:42:26

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

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

Vitaliy V.
Спасибо. Мне кажется, что без этой настройки терялась логика здесь.

Отредактировано xrun1 (19-06-2024 11:45:04)

Отсутствует

 

№1742Вчера 08:50:33

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 444
UA: Firefox 127.0

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

Vitaliy V. сделайте пожалуйста из этих 2-х кнопок одну

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

Выделить код

Код:

// Автоматически открывать меню у некоторых кнопок...............		
(this.mouseoveropentoolbarbutton = {
            delay: 350,
            get buttonID() {
                delete this.buttonID;
                return this.buttonID = new Map([
                    ["PanelUI-menu-button", "appMenu-popup"],
                    ["star-button", "editBookmarkPanel"],
					["unified-extensions-button", "unified-extensions-panel"],
                ]);
            },
            get timer() {
                delete this.timer;
                return this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
            },
            init(that) {
                var arrayelem = this.arrayelem = document.querySelectorAll(`
                    #star-button,
                    #PanelUI-menu-button,
					#unified-extensions-button
                `);
                for (let elem of arrayelem)
                    elem.addEventListener("mouseover", this);
                that.unloadlisteners.push("mouseoveropentoolbarbutton");
            },
            handleEvent(event, node = event.target) {
                this.openPopup(node, this.buttonID.get(node.id));
            },
            openPopup(node, popupID) {
                this.timer.cancel();
                this.timer.initWithCallback(() => {
                    if (node.open) return;
                    if (this.curbut?.open) {
                        this.curbut.menupopup
                        ? this.curbut.menupopup.hidePopup()
                        : document.querySelector(`panel[viewId='${this.curid}'], panel[id='${this.curid}'], menupopup[id='${this.curid}']`)?.hidePopup();
                    } else
                       document.querySelector(":is(menupopup,panel)[panelopen='true'], toolbarbutton[open='true'] > menupopup")?.hidePopup();
                    this.curbut = node;
                    this.curid = popupID;
                    node.click();
                }, this.delay, Ci.nsITimer.TYPE_ONE_SHOT);
                node.addEventListener("mouseleave", () => {
                    this.timer.cancel();
                }, { once: true });
            },
            destructor() {
                for (let elem of this.arrayelem)
                    elem.removeEventListener("mouseover", this);
            },
        }).init(this);

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

Выделить код

Код:

//Автоматически закрывать меню		
(async bmrk => {
	await delayedStartupPromise;

	var popupshown = e => {
		var trg = e.target;
		if (trg.nodeName.startsWith("t")) return;

		var {curid, curbut} = autopopup;
		if (curid && trg.id == curid || curbut && (
			curbut.className == "bookmark-item" && trg.matches(bmrk) ||
			curbut.open && curbut.contains(trg.anchorNode || trg)
				&& (curbut.type != "menu" || curbut.menupopup)
		))
			trg.addEventListener("mouseleave", mouseleave),
			trg.addEventListener("popuphidden", popuphidden);
	}
	var popuphidden = function(e) {
		if (e.target == this)
			this.removeEventListener("mouseleave", mouseleave),
			this.removeEventListener("popuphidden", popuphidden);
	}
	var tid;
	var mouseleave = e => {
		tid && clearTimeout(tid);
		tid = setTimeout(check, 850, e.target);
	}
	var check = popup => {
		tid = null;
		popup.closest(":is(menupopup,panel):hover") || autopopup.curbut?.matches(":hover")
			|| (popup.nodeName.startsWith("m") ? closeMenus(popup) : popup.hidePopup());
	}
	var autopopup = ucf_custom_script_win.mouseoveropentoolbarbutton;
	var {destructor} = autopopup;
	autopopup.destructor = () => {
		destructor.call(autopopup);
		removeEventListener("popupshown", popupshown);
	}
	addEventListener("popupshown", popupshown);
})("toolbarbutton.bookmark-item :scope");

Отредактировано egorsemenov06 (Сегодня 12:01:54)

Отсутствует

 

№1743Вчера 19:19:11

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 268
UA: Google 2.1

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

egorsemenov06

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

Выделить код

Код:

`
            get buttonID() {
                delete this.buttonID;
                return this.buttonID = new Map([
                    ["PanelUI-menu-button", "appMenu-popup"],
                    ["star-button", "editBookmarkPanel"],
                ]);
            },


у меня так, но для вас может быть много лишнего...
скрытый текст

Выделить код

Код:

`
		get buttonID() {
				delete this.buttonID;
				return this.buttonID = new Map([
		["PanelUI-menu-button", "appMenu-popup"],
		["library-button", "customizationui-widget-panel"],
		["fxa-toolbar-menu-button", "customizationui-widget-panel"],
		["nav-bar-overflow-button", "widget-overflow"],
		["unified-extensions-button","toolbarbutton-1"],
		["star-button", "editBookmarkPanel"],
		["pageActionButton", "pageActionPanel"],
				]);
		},

Добавлено Вчера 19:29:28

egorsemenov06 пишет

если можно из этих 2-х кнопок сделать одну

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

Отредактировано Farby (Вчера 19:29:28)


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

Отсутствует

 

№1744Вчера 22:01:46

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 444
UA: Firefox 127.0

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

Farby пишет

egorsemenov06

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

Выделить код

Код:

`
            get buttonID() {
                delete this.buttonID;
                return this.buttonID = new Map([
                    ["PanelUI-menu-button", "appMenu-popup"],
                    ["star-button", "editBookmarkPanel"],
                ]);
            },


у меня так, но для вас может быть много лишнего...
скрытый текст

Выделить код

Код:

`
		get buttonID() {
				delete this.buttonID;
				return this.buttonID = new Map([
		["PanelUI-menu-button", "appMenu-popup"],
		["library-button", "customizationui-widget-panel"],
		["fxa-toolbar-menu-button", "customizationui-widget-panel"],
		["nav-bar-overflow-button", "widget-overflow"],
		["unified-extensions-button","toolbarbutton-1"],
		["star-button", "editBookmarkPanel"],
		["pageActionButton", "pageActionPanel"],
				]);
		},

Добавлено Вчера 19:29:28

egorsemenov06 пишет

если можно из этих 2-х кнопок сделать одну

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

у нас  вами кнопки похоже отличаються поэтому у меня не работает то что Вы мне дали.Эти 2-е кнопки у меня и так в одном файле но по мне лучше сделать один скрипт поэтому я и попросил
Vitaliy V. это сделать ,если возможно

Отсутствует

 

№1745Вчера 23:30:29

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

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

Farby пишет

["unified-extensions-button","toolbarbutton-1"],

Это что ещё за дичь?
Не работает, и не может работать.


Работает добавить #unified-extensions-button
к другим двоим таким же, начинающимся с решётки
#star-button,
#PanelUI-menu-button(,)...


А ["unified-extensions-button", "unified-extensions-panel"],
стоит добавить лишь в том смысле, чтобы панелька,
в некоторых случаях, закрывалась.


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


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


А если добавить, то аддонская панелька,
в этом случае, будет закрываться.


Кстати, недавно, запилили метод nsIAppWindow.rollupAllPopups()
Схлопывает все менюшки разом, если может вдруг интересно.

Отсутствует

 

№1746Сегодня 11:54:56

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 444
UA: Firefox 127.0

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

Dumby пишет
Farby пишет

["unified-extensions-button","toolbarbutton-1"],

Работает добавить #unified-extensions-button
к другим двоим таким же, начинающимся с решётки
#star-button,
#PanelUI-menu-button(,)...


А ["unified-extensions-button", "unified-extensions-panel"],
стоит добавить лишь в том смысле, чтобы панелька,
в некоторых случаях, закрывалась.


Кстати, недавно, запилили метод nsIAppWindow.rollupAllPopups()
Схлопывает все менюшки разом, если может вдруг интересно.

Спасибо!!!

Отсутствует

 

Board footer

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