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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№1715101-09-2024 22:16:40

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

Re: Custom Buttons

vv07 пишет

Обойдусь

линк был не про обойдусь, а на решение, которое почему-то работает по сей день


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

Отсутствует

 

№1715202-09-2024 01:44:57

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 688
UA: Firefox 54.0

Re: Custom Buttons

Farby пишет
vv07 пишет

Обойдусь

линк был не про обойдусь, а на решение, которое почему-то работает по сей день

У меня не сработало увы, дружище. Поэтому и написал так.

Отсутствует

 

№1715327-09-2024 15:27:23

manuk
Участник
 
Группа: Members
Зарегистрирован: 17-10-2010
Сообщений: 300
UA: Firefox 129.0

Re: Custom Buttons

Приветствую. Не совсем по теме, но т.к. в кнопках и дополнениях много общего спрошу здесь. В 131 FF кудесники наваяли-изменили так, что перестали работать звуковые уведомления в приложении "Мои уведомления", а разработчик аддона пропал. https://addons.mozilla.org/ru/firefox/a … ent=search
Farby, Dumby, не могли бы вы посмотреть, что изменилось в воспроизведении звуков уведомлений FF131 и скрипты аддона в XPI. Может у вас получится исправить.

Отредактировано manuk (27-09-2024 15:35:23)

На форуме

 

№1715428-09-2024 09:33:15

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

Re: Custom Buttons

manuk пишет

Dumby, не могли бы вы посмотреть, что изменилось в воспроизведении звуков уведомлений FF131 и скрипты аддона в XPI

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


Думал, может дело в .ogg — но замена на .mp3 хорошего результата не дала.
Думал, может дело в moz-extension:// — но с консоли браузера audio играется.


Тем не менее, по протоколам data: и blob: вроде работает, поэтому,
пока не найдено лучшего решения или не исправлен баг, можно так попробовать

popup.js

Выделить код

Код:

/*
	playSound(sound, volume) {
		if (sound !== null && sound !== 'off') {
			let audio = new Audio()
			audio.src = sound
			audio.autoplay = true
			audio.volume = volume
		}
	}
*/
	async playSound(sound, volume) {
		if (!sound || sound == "off") return;

		var resolver = Promise.withResolvers();
		var reader = new FileReader();
		reader.onload = resolver.resolve;
		reader.readAsDataURL(await (await fetch(sound)).blob());
		await resolver.promise;

		var audio = new Audio();
		audio.src = reader.result;
		audio.autoplay = true;
		audio.volume = volume;
	}


background.js

Выделить код

Код:

/*
function playSound(siteSettings){
	let options = JSON.parse(localStorage.getItem('options'))
	let audio = new Audio()

	audio.autoplay = true
	audio.src = siteSettings.sound ? siteSettings.sound : options.sound
	audio.volume = options.volume
}
*/
var db = Object.create(null);

async function playSound(siteSettings) {
	var options = JSON.parse(localStorage.getItem("options"));
	var audio = new Audio();
	audio.autoplay = true;
	audio.volume = options.volume;

	var sound = siteSettings.sound || options.sound;
	audio.src = db[sound] ??= URL.createObjectURL(await (await fetch(sound)).blob());
}

Отсутствует

 

№1715528-09-2024 21:04:47

manuk
Участник
 
Группа: Members
Зарегистрирован: 17-10-2010
Сообщений: 300
UA: Firefox 130.0

Re: Custom Buttons

Dumby, большое спасибо. Прекрасно работает. Догадываюсь, что не одному мне это нужно. Где бы поделиться ссылкой на ваш пост с исправлениями аддона (может в отзывах о "Мои уведомления" на addons.mozilla.org)? Или, кто ищет - тот всегда найдёт?

Отредактировано manuk (28-09-2024 21:23:39)

На форуме

 

№1715602-10-2024 09:49:49

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

Re: Custom Buttons

manuk пишет

Где бы поделиться ссылкой

Увы, я не знаю где.


Подломали Custom Buttons.


Bug 71895 - Remove Hidden Window from Linux and Windows builds (Firefox 132+)
Bug 1917745 - Remove dom.window.sizeToContent.enabled pref (Firefox 132+)


Custom Buttons 0.0.7.0.0.34

Отсутствует

 

№1715705-10-2024 18:49:26

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 315
UA: Firefox 129.0

Re: Custom Buttons

Dumby. перестала работать кнопка Экспорт в HTML файл в контекстном меню закладок

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

Выделить код

Код:

/*Initialization Code*/
//-------------------- Экспорт в HTML файл в контекстном меню закладок
(popup => addEventListener("popupshowing", {
    handleEvent() {
        if (this.shouldHide()) return;
        var before = document.getElementById("placesContext_openSeparator");
Можно поправить?
        var menuitem = popup.insertBefore(document.createXULElement("menuitem"), before);
        menuitem.setAttribute("label", "Экспорт папки в HTML");
        menuitem.setAttribute("oncommand", "exportFolder();");
        menuitem.exportFolder = this.pick.bind(this);
        addDestructor(() => menuitem.remove());
        (this.handleEvent = () => menuitem.hidden = menuitem.disabled = this.shouldHide())();
    },
    shouldHide() {
        var node = popup.triggerNode._placesNode;
        var hide = !node || node.type != node.RESULT_TYPE_FOLDER;
        if (!hide) this.guid = node.bookmarkGuid, this.title = node.title;
        return hide;
    },
    pick() {
        var fp = makeFilePicker();
        fp.init(window, PlacesUIUtils.getString("EnterExport"), fp.modeSave);
        fp.appendFilters(fp.filterHTML);
        fp.defaultString = (this.title ? DownloadPaths.sanitize(this.title) : "untitled") + ".html";
        fp.open(res => res == fp.returnCancel || this.export(fp.file.path));
    },
    async export(path) {
        var tree = await PlacesUtils.promiseBookmarksTree(
            this.guid, {includeItemIds: true}
        );
        var bookmarks = {children: [
            {root: "toolbarFolder"},
            {root: "unfiledBookmarksFolder"},
            {root: "bookmarksMenuFolder", children: [tree], guid: PlacesUtils.bookmarks.menuGuid}
        ]};
        new this.nsvo.BookmarkExporter(bookmarks).exportToFile(path);
    },
    get nsvo() {
        delete this.nsvo;
        return this.nsvo = Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm", {});
    }
}, false, popup))(document.getElementById("placesContext") || 1);


Можно поправить?

Отредактировано Garalf (05-10-2024 20:12:16)

Отсутствует

 

№1715806-10-2024 09:52:41

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

Re: Custom Buttons

Garalf пишет
Выделить код

Код:

Можно поправить?

А чего это «Можно поправить?» делает в коде?
Подлежит удалению.

перестала работать кнопка

Очень информативно. Хорошо, 129

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

Выделить код

Код:

/*
        fp.init(window, PlacesUIUtils.getString("EnterExport"), fp.modeSave);
*/
        fp.init(window.browsingContext, PlacesUIUtils.promptLocalization.formatValueSync("places-bookmarks-export"), fp.modeSave);

Отсутствует

 

№17159Сегодня 03:07:51

kazarin
Участник
 
Группа: Members
Зарегистрирован: 23-11-2016
Сообщений: 84
UA: Firefox 126.0

Re: Custom Buttons

Dumby, большая просьба глянуть, если вам несложно. В браузере r3dfox 128 (и у 130) возник конфликт у последней CB (0.0.7.0.0.34-fx-paxmod) и utils от xiaoxiaoflood, конкретно с версией для скриптов и расширений. С версией только для скриптов конфликта нет, но мне расширения тоже нужны.
Выражается в том, что на странице дополнений становится невозможно посмотреть кнопки или детали расширений, всё перестаёт кликаться, вызывается только окно новой кнопки. В остальном всё работает, меню кнопок можно редактировать через меню правого клика. Проблема только на этой страничке.

скрытый текст
4SqeR9R.gif

Если удалить buttonsoverlay.xul, то проблема пропадает. Проверил на виртуалке, такая же штука происходит и в обычном [firefox] 131.
Хотел попробовать предыдущую версию CB, но ссылка умерла. Старые utils не работают.

И проблема с одной кнопкой (тоже в 128-130), перестала работать перезагрузка страницы в урлбаре, вот этот код

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

Выделить код

Код:

if (gURLBar.focused) {
var str = gURLBar.value;
  getBrowser (). selectedTab = getBrowser (). addTab (str);
  gURLBar.handleCommand();  
 }
 else  {
  BrowserReload();
 }


На всякий случай полный код кнопки
скрытый текст

Выделить код

Код:

self.image = "data:image/png;base64,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";


var urlbar=document.getElementById("page-action-buttons");
var button=document.getElementById(_id);
urlbar.insertBefore(button,urlbar.Child);

 this.onclick=e=>
{if(e.button==0)Rld();                                                                        //L
 if(e.button==1)gShowPopup(this);                                                             //M
 if(e.button==2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){e.preventDefault();CURL();}};//R
this.tooltipText="L: Reload\nR: CopyURL";

////////////////////////////////////////////////////////////////////
function Rld(){if (gURLBar.focused) {
var str = gURLBar.value;
  getBrowser (). selectedTab = getBrowser (). addTab (str);
  gURLBar.handleCommand();  
 }
 else  {
  BrowserReload();
 } };
////////////////////////////////////////////////////////////////////
function CURL(){gClipboard.write(gURLBar.value);
        var gub=gURLBar.value,line1='   Адрес скопирован в буфер !',line=" "+line1,i=0;
        function line_a(){
        if(i++<line.length){
        gURLBar.value=line.substring (1,i)}
        setTimeout(function(){line_a()},10)}
        line_a();
        setTimeout(function(){gURLBar.value = readFromClipboard()},1500)};
////////////////////////////////////////////////////////////////////

Отсутствует

 

№17160Сегодня 12:13:08

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

Re: Custom Buttons

kazarin пишет

mega.nz

Серьёзно?! Ещё гэ-драйв предложи.


https://www.upload.ee/
Но даже он тут не обязателен, ибо utils невелик размером,
вполне поместится на форум в base64

такая же штука происходит и в обычном [firefox] 131

Ладно, попробовал взять utils у onemen'а.
Конфликт похожий вижу.
Помогло подправить BootstrapLoader.js

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

Выделить код

Код:

`/*
      if (addon.__AddonInternal__.optionsType == 1/*AddonManager.OPTIONS_TYPE_DIALOG*/)
/*`;
      if (addon.__AddonInternal__?.optionsType == 1) // AddonManager.OPTIONS_TYPE_DIALOG

Хотел попробовать предыдущую версию CB, но ссылка умерла.

Конечно, такое долго не живёт.
Если кто-то не исключает вероятности,
что может понадобиться «попробовать предыдущую»,
или любую другую, версию, то ожидается,
что он возьмёт её, вовремя скачанную, у себя с диска.

перестала работать перезагрузка страницы

Обсуждалось уже.

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

Выделить код

Код:

/*
  BrowserReload();
*/
  BrowserCommands.reload();

На всякий случай полный код кнопки

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

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

Выделить код

Код:

function CURL() {
	var msg = "   gURLBar.value скопировано в буфер !";
	var tick = r => setTimeout(r, 10);
	var field = gURLBar.inputField, ed = field.editor;
	var {input} = gURLBar.view;
	var revert = () => {
		input._suppressStartQuery = true;
		ed.undo();
		input._suppressStartQuery = false;
	}
	(CURL = async () => {
		gClipboard.write(gURLBar.value);
		ed.beginTransaction();
		field.value = "";
		for(char of msg) field.value += char, await new Promise(tick);
		ed.endTransaction();
		setTimeout(revert, 1500);
	})();
}

Отсутствует

 

Board footer

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