импорт правильный? custom_script.js
custom_script.js лишний этап, можно грузить напрямую с авто-определением JSM<>MJS в CustomStylesScripts.jsm
jsmImport = (s, e = /\.jsm$/i.test(s) ? "" : "ESModule") => `ChromeUtils.import${e}("chrome://user_chrome_files/content/custom_scripts/${s}")`; ……… scriptsbackground: [ // В фоне [System Principal] { func: jsmImport("SingleHTML.mjs"), },
Отсутствует
Ещё не работает "Экспорт папки в HTML".
Что-то я разошёлся ошибки искать в своём профиле. Больше не буду.
Отсутствует
qwerty1956 пишетМожно ли сделать так, чтобы кнопка about:config из ATB при нажатии ЛКМ открывала страницу about:config в новой вкладке?
Откройте настройки ATB, включайте -> Открывать в новой вкладке кнопки и ссылки, и жмёте на "Сохранить настройки".
Блин, забыл про настройки. Спасибо
Отсутствует
xrun1
Наверное можно так...
. // fp.init(win, win.PlacesUIUtils.getString("EnterExport"), fp.modeSave); fp.init(win, win.PlacesUIUtils.promptLocalization.formatValueSync("places-bookmarks-export"), fp.modeSave);
Жизнь иногда такое выкидывает, что хочется подобрать...
Отсутствует
Наверное можно так...
Появилась такая фича, как будто в код встроен счетчик количества запусков "Управления закладками", один раз открыл - один пункт, три раза открыл - три пункта.
Отсутствует
fuchsfan
Появилась такая фича
Это не фича. Здесь, третий абзац объясняется почему.
Проверил у себя с правкой Farby - работает, не двоит и не троит...
Отредактировано LGS (01-09-2023 19:12:19)
Отсутствует
Это не фича. Здесь, третий абзац объясняется почему.
В боковой панели не двоит, двоит только в "управлении закладками". Пробую не в UCF, а c загрузчиком Aris-t2.
Отсутствует
Пробую не в UCF, а c загрузчиком Aris-t2
Возможно, из-за этого и размножается. Если есть желание, проверьте в UCF и custom_script.js. У меня в "Управлении закладками" все нормально.
Отсутствует
проверьте в UCF и custom_script.js. У меня в "Управлении закладками" все нормально.
При активации в CustomStylesScripts.jsm не двоит, при добавлении кода в custom_script.js двоит. При активации в Aris-t2 двоит.
Отредактировано fuchsfan (01-09-2023 20:43:16)
Отсутствует
При активации в CustomStylesScripts.jsm не двоит, при добавлении кода в custom_script.js двоит. При активации в Aris-t2 двоит.
Скажете пожалуйста, а до моего предложения у Вас хоть раз встречалась "Экспорт папки в HTML"?
Отредактировано Farby (01-09-2023 23:51:20)
Жизнь иногда такое выкидывает, что хочется подобрать...
Отсутствует
Отсутствует
А починить можно такую jsm-ку
MJS`ка
// в custom_script.js (async url => ChromeUtils.importESModule(url))( "chrome://user_chrome_files/content/custom_scripts/Actors/userContentReloader.mjs"); var name = "UCF_userContentReloader"; /*, EXPORTED_SYMBOLS = [name + "Child"]; */ export {UCF_userContentReloaderChild}; if (typeof Services != "object") /* eslint-disable-next-line no-var */ var Services = globalThis.Services; var find = function(sheet) { return sheet.href == this; } var getSheet = (doc, href) => InspectorUtils.getAllStyleSheets(doc).find(find, href); if (!ChromeUtils.domProcessChild.childID) { var noop = () => {}; ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs").CustomizableUI.createWidget({ label: "Reload user{Chrome, Content}.css", tooltiptext: "L: Reload userChrome.css\nR: Reload userContent.css", id: "ucf-userContentReloader", localized: false, onCreated(btn) { btn._handleClick = this.click; btn.oncontextmenu = oncontextmenu; btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAIpwAACKcBMsYCAwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMwSURBVEiJ5dbNb5RVFMfxz3mmrYgYE0IN4IaKb4n4UqOwMCYu2JCoQVDiwoUrQ4j0xao7ExITQxRoodEFK1cmRkSE8AeYYKpEFF0YY4SiUSMRQW0sLe0818U8nekwHe3U7vhtnnNOzj3f89znPvderjVFK8npaSWrPSjpElahQzhvyrF4y++t1GqbF7DHOvQLj6Ozrt2EDutYRHAasMK0vXgWWZO0SX/7DlJf6Skp3UWcFeVRV4zG235tCZx6rDPtKLqqAN4XPhROm3DJEiG3LA6aKkZ14jUSKaOd1Gsco6Qz8vRiDDvTFJz63S13AjdVAg7JvBxDzs2RfrE2MP9ijolZijvJXo/h8pmmb5z6LZf7qICWJQNxwP5mM1OnzNdy03V1U0oi2x77y+/Wp16t3CDWgvDKvKGIQZepfO+iWBIpKG9s7HGW0k7dKgsJjsSQffOF1or4srAuS04U9jOp14amYGGgiF2Re6llaEWnMSbPNyl5DtNFQzvnBKdd2oRNhXt4ZvW1rCwfkbInY9jHMeiscBiEJ9Lz2mfSaovgovXC8sI7siAoYsgnMy8JkmPYhhtdbwOV6a9NdVhT69qphYIblPl0FuO2WrimVVVrcu7dZkFqd75q525uBCelqj0tXzRwvSYbwWZ1doOVi4Yad0vVDj81gjPfV+2y9YsGLnlgFrj6p9TA405irPAemwmn/raNqc/D/wO9uXj+bMhXDeDihDledLYt9VmTektb5flxebYgcOpx+yzw0aic3vXgSqY9hdUuOUx6T+WWcX/LUELYh3ZMyqq1G8FxwCl8ULjdVFd6d6tgPQbMfLIwHIPONgVXWs1OFm3Mjt6Rdlg2X2bq0yfsLtzP/OHVq3PqzuPUm/Vj9xz9ZDrcg5F/Bb6gS8mbkq1F6EdlW+IdE03Baae1pEeJb1SuO0vrMvPsPvKRArDaChf8qWRal/BQccBsxnXFiBFTtjS7czW93qYdVurQJZW6SLeK+DaGyofSLh0uGUNHk6F/SfZI3ojh2k41b3DThnrdS+1/nAnjcxzR5mDsdeG/6szrXl2nJX4w4RFJJ3LhF7lzMey3lmtdU/oHaoj4Y/PDRWgAAAAASUVORK5CYII="); }, get click() { var {file, spec} = getURI("hrome"); var chromeSheet = getSheet(Services.wm.getMostRecentWindow(null).document, spec); delete this.click; return this.click = !chromeSheet ? noop : function() { var win = this.ownerGlobal; if (win.event?.detail < 2 && file.exists()) reload(chromeSheet), win.setTimeout(restyle, 50); } } }); var getURI = sub => { var file = Services.dirsvc.get("UChrm", Ci.nsIFile); file.append(`userC${sub}.css`); return Services.io.newFileURI(file).QueryInterface(Ci.nsIFileURL); } var oncontextmenu = e => e.ctrlKey || e.shiftKey || e.detail != 1 || contextmenu(e); var contextmenu = e => { var {file, spec} = getURI("ontent"); var wb = Services.appShell.createWindowlessBrowser(); var contentSheet = getSheet(wb.document, spec); wb.close(); if (!contentSheet) return oncontextmenu = contextmenu = noop; ChromeUtils.registerProcessActor(name, {child: {esModuleURI: Components.stack.filename}}); (contextmenu = async e => { if (!file.exists()) return; e.preventDefault(); var data = await reload(contentSheet, Object.create(null)); if (data) for(var p in data) { for(var dp of ChromeUtils.getAllDOMProcesses()) dp.remoteType && await dp.getActor(name).sendQuery(spec, data); restyle(); return; } })(e); } var restyle = () => { var subst = "u_css_reloader_restyle_substitution"; var rph = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler); rph.setSubstitution(subst, Services.io.newURI("data:text/css,:root{}")); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var args = [Services.io.newURI(`resource://${subst}/`), sss.USER_SHEET]; (restyle = () => { sss.loadAndRegisterSheet(...args); sss.unregisterSheet(...args); })(); } var reload = async (sheet, obj) => { try {var style = await (await fetch(sheet.href)).text();} catch {return obj;} InspectorUtils.parseStyleSheet(sheet, style); if (obj) obj[sheet.href] = style; for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) { var rule = sheet.cssRules.item(ind); rule.type == rule.IMPORT_RULE && rule.styleSheet.href.startsWith("file:///") && await reload(rule.styleSheet, obj); } return obj; } } else var UCF_userContentReloaderChild = class extends JSProcessActorChild { receiveMessage(msg) { var {sheet} = this; if (!sheet) { var en = Services.ww.getWindowEnumerator(null); if (en.hasMoreElements()) sheet = this.sheet = getSheet(en.getNext().document, msg.name); } sheet && this.parse(sheet, msg.data); } parse(sheet, data) { var style = data[sheet.href]; if (!style) return; InspectorUtils.parseStyleSheet(sheet, style); for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) { var rule = sheet.cssRules.item(ind); rule.type == rule.IMPORT_RULE && rule.styleSheet.href.startsWith("file:///") && this.parse(rule.styleSheet, data); } } }
Жизнь иногда такое выкидывает, что хочется подобрать...
Отсутствует
Farby, благодарю, заработало. Вспомнил, что не на все правки в userContent.css "на лету" ПКМ реагирует, все равно приходится перезагружать. А я как раз на таком стиле и проверял. Догадался на других проверить - срабатывает.
Отсутствует
Dumby, вы не могли бы написать скрипт, который убирает фокус из строки поиска на страницах about:config и about:cfg..?
Нечто подобное вы делали здесь, только там нужно было убрать фокус из адресной строки и поместить его в строку поиска about:home, а мне надо убрать фокус из строки поиска about:config, about:cfg аналогично щелчку мыши вне строки поиска.
Отсутствует
скрипт, который убирает фокус из строки поиска на страницах about:config и about:cfg..?
Хмм, убирает когда?
Если при загрузке, то, может быть, создать blur.js
location.pathname == "config" ? document.getElementById("about-config-search").blur() : textbox.addEventListener("focus", e => e.target.blur(), {once: true});
Ну, и убедиться, что в настройках UCF стоит галка
[✔] Включить стили и скрипты для контента [about:, chrome:, moz-extension:]
Отсутствует
Ну, и убедиться, что в настройках UCF стоит галка
[✔] Включить стили и скрипты для контента [about:, chrome:, moz-extension:]
Ценное замечание, так бы я долго проверял почему не работает. Но теперь фоновая картинка бесит: custom_styles\png\background.png. Как ее культурно отключить, кроме переименования/удаления..?
Вроде все внутренности UCF проверил, но что-то ничего подходящего не нашел. Подозреваю, что в самом CustomStylesScriptsChild.jsm прописано как картинка подтягивается, но где именно - не пойму.
Кажется разобрался, все просто. Надо в CustomStylesScriptsChild.jsm закомментировать строку { path: "common.css", type: "USER_SHEET", sheet(f) { preloadSheet(this, f); }, },
Отредактировано LGS (09-09-2023 18:20:25)
Отсутствует
на Firefox 117 диалог настроек UCF не запоминает ничего - можно установить флажки, закрыть настройки UCF.
Снова открываем диалог, где все флажки сняты. Cтавил со всеми нужными правками, проверял на Windows 10 на пустом профиле.
Не работают все команды этого диалога: "Перезапустить*" и прочие… Может для чистого профиля с UCF что-то в about:config надо добавлять?
"toolkit.legacyUserProfileCustomizations.stylesheets" установлен в true.
Вот архив изменённого UCF – у кого работает UCF на FF 117, подскажите, где ошибка в правленных файлах???
Отредактировано Dobrov (12-09-2023 15:32:43)
Отсутствует
у кого работает UCF на FF 117, подскажите
у меня его нет, но можно начать с
Жизнь иногда такое выкидывает, что хочется подобрать...
Отсутствует
Farby - спасибо! убрал забытый var {Services}… в user_chrome_files/options/prefs.js, всё заработало.
to_Alls сделал версию UCF, совместимую с Firefox 78-116, папки Firefox, chrome/user_chrome_files
не знаю, как исправить для Firefox 117 — в нём не подключаются стили и скрипты…
Отредактировано Dobrov (14-09-2023 08:57:24)
Отсутствует
rubel
Эта работает
// Скрипт создает подмножество кнопок для запуска приложений, открытия папок и файлов // Кнопка 1 (Открыть F:\\Firefox Backup) try { CustomizableUI.createWidget({ id: "add-openfolder1-app", label: "Открыть папку 1", tooltiptext: "Открыть F:\\Firefox Backup", defaultArea: CustomizableUI.AREA_NAVBAR, onCreated: btn => btn.image = "file:///D:/Portable Files/Firefox Portable/Profiles/Chrome/icons/folder1.png", onCommand: function(event) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("F:\\Firefox Backup"); if (file.exists()) file.launch(); } }); } catch(e) {} // Кнопка 2 (повторяем код с другим путем) // Следующая кнопка...
Отсутствует