В 139-й, вроде, отвалился.
Есть два пути, разрешить eval security.allow_unsafe_dangerous_privileged_evil_eval = true или дебагер
// return this.clearSiteData = eval(`(${gIdentityHandler.clearSiteData})`.replace(/^\((async\s)?.*?clearSiteData/, "($1function clearSiteData").replace(/this\s*\./g, "gIdentityHandler.").replace(/(?:let\s*hidden\s*=\s*new\s*Promise\s*\([\S\s]+await\s*hidden\s*;|PanelMultiView\.hidePopup.+?;|event\.stopPropagation.+?;)/g, "")); return this.clearSiteData = (code => windowRoot.ownerGlobal.UcfPrefs.dbg.makeGlobalObjectReference(window).executeInGlobal(code).return.unsafeDereference())(`(${gIdentityHandler.clearSiteData})`.replace(/^\((async\s)?.*?clearSiteData/, "($1function clearSiteData").replace(/this\s*\./g, "gIdentityHandler.").replace(/(?:let\s*hidden\s*=\s*new\s*Promise\s*\([\S\s]+await\s*hidden\s*;|PanelMultiView\.hidePopup.+?;|event\.stopPropagation.+?;)/g, ""))
Строка меню в гамбургере "Сохранить страницу | выбранное как HTML"
на замену
[spoiler=AppMenuTbbSaveHTMLChild.sys.mjs][code]// в custom_script.js (async url => ChromeUtils.importESModule(url))( "chrome://user_chrome_files/content/custom_scripts/Actors/AppMenuTbbSaveHTMLChild.mjs");
// или в scriptsbackground: [ // In the background [System Principal]
// { func: 'ChromeUtils.importESModule("chrome://user_chrome_files/content/custom_scripts/Actors/AppMenuTbbSaveHTMLChild.mjs");' },
var self, name = "AppMenuTbbSaveHTML";
var {io, focus, obs} = globalThis.Services;
export class AppMenuTbbSaveHTMLChild extends JSWindowActorChild {
receiveMessage() {
return htmlAndName(this.contentWindow);
}
}
ChromeUtils.domProcessChild.childID || ({
init(topic) {
ChromeUtils.registerWindowActor(name, {
allFrames: true,
child: {esModuleURI: Components.stack.filename},
messageManagerGroups: ["browsers"]
});
obs.addObserver(self = this, topic);
obs.addObserver(func
благо скрипт автоопределения версии содержит всего-то 13 строчек.
В скрипт и так заложено автоопределение "ESR", "Beta", "Release", "Nightly", "DevEdition", Unbrainded". Что касается версии то можно попробовать всплывающую подсказку
// ExternalAppBtn.setAttribute("tooltiptext", AppConstants.MOZ_APP_NAME + " " + AppConstants.MOZ_UPDATE_CHANNEL + " " + ("Menu")); ExternalAppBtn.setAttribute("tooltiptext", AppConstants.MOZ_APP_NAME + " " + AppConstants.MOZ_UPDATE_CHANNEL + " " + AppConstants.MOZ_APP_VERSION_DISPLAY + " " + ("Menu"));
_zt
Только один вопрос, где вы видали AppConstants.MOZ_UPDATE_CHANNEL = "dev"? Всегда было и до сих пор остаётся MOZ_UPDATE_CHANNEL: "aurora"
А в 139 бетке это выглядит так...
Только сегодня победил что и где не хватает, обновил Appmenu.uc.js
Wave
Если это не настройки какого ни будь расширения, то очень похоже на policy SanitizeOnShutdown (Selective). В доке ещё перечислены ключи в
privacy.sanitize.sanitizeOnShutdown privacy.clearOnShutdown.cache privacy.clearOnShutdown.cookies privacy.clearOnShutdown.downloads privacy.clearOnShutdown.formdata privacy.clearOnShutdown.history privacy.clearOnShutdown.sessions privacy.clearOnShutdown.siteSettings privacy.clearOnShutdown.offlineApps privacy.clearOnShutdown_v2.historyFormDataAndDownloads (Firefox 128) privacy.clearOnShutdown_v2.cookiesAndStorage (Firefox 128) privacy.clearOnShutdown_v2.cache (Firefox 128) privacy.clearOnShutdown_v2.siteSettings (Firefox 128) privacy.clearOnShutdown_v2.formdata (Firefox 128)
После обновления на [firefox] v.137 и Lepton 8.7.0 опять возник вопрос с удалением иконок на Панели меню. Старый способ я уже применить не могу, в файле leptonChrome.css просто нет нужных строчек.
Может просто не надо изобретать велосипед, а отредактировать конфиг входящий в состав самого Lepton
user_pref("userChrome.icon.library", true); user_pref("userChrome.icon.panel", true); user_pref("userChrome.icon.menu", true); user_pref("userChrome.icon.context_menu", true); user_pref("userChrome.icon.global_menu", true); user_pref("userChrome.icon.global_menubar", false); user_pref("userChrome.icon.1-25px_stroke", true);
Странное дело, только в этом скрипте в тултипе не работает перенос строки по \n :angry:
Либо вы не правильно задали вопрос, либо я чего-то не понимаю. В этом скрипте я не нахожу вхождения "\n"...
PS: Но parseXULToFragment не понимает "\n", ну так то так, на всякий случай.
Сломалась кнопка для боковой панели (второй спойлер)
O, кнопочка мне понравилась, решил себе оставить
[spoiler=sidebar-button-toggle-state.uc.js][code]// ==UserScript==
// @name Sidebar button Toggle state
// @namespace sidebar-button@forum.mozilla-russia.org
// @description sidebar button
// @include main
// @author Dumby
// @version 27-08-2020 00:22:15
// @homepageURL https://forum.mozilla-russia.org/viewtopic.php?pid=784391#p784391
// ==/UserScript==
try {(lst => {
var type = "MozBeforeInitialXULLayout", sidebar = document.getElementById("sidebar");
sidebar.addEventListener(type, lst, true);
document.addEventListener("unload", () => sidebar.removeEventListener(type, lst, true), {once: true});
})({
handleEvent(e) {
var parent = e.target.querySelector(":root:is(#bookmarksPanel,#history-panel) > #sidebar-search-container");
parent && this.insert(parent);
},
insert(parent) {
var df = parent.ownerGlobal.MozXULEl
Плиз, поправьте для работы с Aris-t2.
Все остальные лоадеры свободны как мухи в самолёте, причина банальна больше нет Cu.inport. Вот что по этому поводу Dumby писсал.
Зато есть дебагер в UCF, когда Aris прикрутит, тогда можно посмотреть будет.
Можно что-то сделать или всё, кирдык?
Ну пока кирдыка на горизонте ли я не видовал, берём тестируем отписываемся.
…P.S. Я помню, что сами Вы не пользуетесь UCF.
зато у меня есть лодырь от Dumby
И код выглядит так:
[spoiler=Экспорт папки в HTML][code]// skip 1st line
(async topic => {
var imp = (m, n = m) => ChromeUtils.importESModule(`resource://gre/modules/${m}.sys.mjs`)[n];
//var {_uc} = ChromeUtils.importESModule("chrome://userchromejs/content/userChrome.mjs");
var exporter = {
get dps() {
delete this.dps;
return this.dps = imp("DownloadPaths");
},
get exporter() {
delete this.exporter;
//return this.exporter = _uc.dbg.ref("BookmarkExporter", imp("BookmarkHTMLUtils").exportToFile);
return this.exporter = UcfPrefs.dbg.ref("BookmarkExporter", imp("BookmarkHTMLUtils").exportToFile);
},
async export(popup) {
var win = popup.ownerGlobal, tn = popup.triggerNode;
var node, pu = win.PlacesUtils, bm = pu.bookmarks;
if (tn.nodeName == "treechildren") node = popup._view.selectedNode;
else if (tn.id == "OtherBookmarks")
node = {bookmar
В 137 прикатил Bug 1946764, поэтому во всех CSS нужно заменить...
это, действительно, может быть проблемой.
Это не проблема, это опа и присели :)
ведь для настоящих bootstrap расширений
это, действительно, может быть проблемой.
Спасибо за ответ, Вы для меня были последней инстанцией, конечно я запилил рестарт если моодуль загружен или отказ от обслуживания...
ЗЫ: и да я проштудировал что смог найти и там нет выгрузки перезагрузки и etc... Спасибо за подтверждение.
PPS: А ещё вопрос Вы будете поддерживать DOMi или мне пора разбираться с Browser Toolbox?...
Ну я всё-таки начинал с Netscape Navigator, хотя если удаться отконсолить и поймать ошибки, но пока это для меня сложно.
Кто поможет?
В 135-й отвалились значки поиска по выделенному.
На замену
[spoiler=browser-search-engine.uc.js][code]// ==UserScript==
// @name Browser search engine
// @author Vitaliy V.
// @include main
// @shutdown window.contextsearch.destructor();
// @note https://forum.mozilla-russia.org/viewtopic.php?pid=780283#p780283
// ==/UserScript==
(this.contextsearch = {
topic: "browser-search-engine-modified",
hide: "browser.search.hiddenOneOffs",
defaultImg: "chrome://browser/skin/search-engine-placeholder.png",
searchSelect: null,
popup: null,
init(that) {
var searchSelect = this.searchSelect = document.querySelector("#context-searchselect");
if (!searchSelect)
return;
var popup = this.popup = searchSelect.closest("menupopup");
popup.addEventListener("popupshowing", this);
// that.unloadlisteners?.push("contextsearch"); // OLD UCF
that.setUnloadMap?.("contextsearch", t
Dumby, здравствуете.
В связи с прилётом Bug 1881888 - Remove support for JSMs, пытаюсь поднять bootstrap расширения, но столкнулся с необходимостью перезагрузки всего [firefox]. Подскажите пожалуйста, может есть какое решение для перезагрузки/выгрузки ESModule`й в [firefox]
ЗЫ: В случае с DTA, выкидывает ошибку:
can't access dead object
xrun1
Посмотрите ещё №1836
Вы используете:
такого там больше нет.
04-02-2025 09:45:28
для примера
that.unloadlisteners?.push("clearsearchurlbar") || that.setUnloadMap?.("clearsearchurlbar", this.destructor, this);
правда не знаю работает ли через "||"... для меня стояла задача, чтоб не мешало
browser.profiles.enabled
Смотрел [firefox] 135`тую, там вроде что-то наладили, так что занимайте позицию ждуна...
Я бы ушел на Бету версию или Релиз, но там нет Рус Языка в переводчике сайтов А для меня это критично
Никак.
Ограничено в связи с известными событиями.
Хватит нести чушь, пора читать, хотя бы предыдущий пост...
Где, как и когда в релизе [firefox] вы видели, beta приложение.
Хотите протестировать? Воспользуетесь Unbranded Builds
Я просто даже не понимаю что гуглить.
Попробуйте начать с IMAPSync. Перенос почты между серверами