Приветствую. Не совсем по теме, но т.к. в кнопках и дополнениях много общего спрошу здесь. В 131 FF кудесники наваяли-изменили так, что перестали работать звуковые уведомления в приложении "Мои уведомления", а разработчик аддона пропал. https://addons.mozilla.org/ru/firefox/a … ent=search
Farby, Dumby, не могли бы вы посмотреть, что изменилось в воспроизведении звуков уведомлений FF131 и скрипты аддона в XPI. Может у вас получится исправить.
Отредактировано manuk (27-09-2024 15:35:23)
Отсутствует
Dumby, не могли бы вы посмотреть, что изменилось в воспроизведении звуков уведомлений FF131 и скрипты аддона в XPI
FF130, скорее. Какой-то очень странный баг.
Лиса козлится, пишет какую-то дичь, типа
не поддерживается, не удалось загрузить медиаресурс,
не удалось воспроизвести, нет декодеров ...
Думал, может дело в .ogg — но замена на .mp3 хорошего результата не дала.
Думал, может дело в moz-extension:// — но с консоли браузера audio играется.
Тем не менее, по протоколам data: и blob: вроде работает, поэтому,
пока не найдено лучшего решения или не исправлен баг, можно так попробовать
/* 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; }
/* 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()); }
Отсутствует
Dumby, большое спасибо. Прекрасно работает. Догадываюсь, что не одному мне это нужно. Где бы поделиться ссылкой на ваш пост с исправлениями аддона (может в отзывах о "Мои уведомления" на addons.mozilla.org)? Или, кто ищет - тот всегда найдёт?
Отредактировано manuk (28-09-2024 21:23:39)
Отсутствует
Где бы поделиться ссылкой
Увы, я не знаю где.
Подломали Custom Buttons.
Bug 71895 - Remove Hidden Window from Linux and Windows builds (Firefox 132+)
Bug 1917745 - Remove dom.window.sizeToContent.enabled pref (Firefox 132+)
Отсутствует
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)
Отсутствует
А чего это «Можно поправить?» делает в коде?
Подлежит удалению.
перестала работать кнопка
Очень информативно. Хорошо, 129
/* fp.init(window, PlacesUIUtils.getString("EnterExport"), fp.modeSave); */ fp.init(window.browsingContext, PlacesUIUtils.promptLocalization.formatValueSync("places-bookmarks-export"), fp.modeSave);
Отсутствует