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 (повторяем код с другим путем) // Следующая кнопка...
Отсутствует
fuchsfan
Создал чистый профиль с чистым user_chrome_files из VitaliyVstyle.github.io-master версия, дата г-м-д: 2021-9-23.
Создал файл WinFolders.js с Вашим кодом, поместил в chrome\user_chrome_files\custom_scripts\WinFolders.js
В Файле CustomStylesScripts.jsm прописал так
scriptsbackground: [ // В фоне [System Principal] { path: "WinFolders.js", }, { path: "custom_script.js", }, ],
Удалил startupCache, перезапускаю и никаких кнопок нигде не появляется, где моя ошибка ?
Отсутствует
В Файле CustomStylesScripts.jsm прописал так
Практически все сторонние скрипты прописаны в первой сверху секции load
load: [ // По событию "load" { path: "special_widgets.js", ucfobj: true, }, // <-- Special Widgets // { path: "auto_hide_sidebar.js", ucfobj: true, }, // <-- Auto Hide Sidebar { path: "favicon_in_urlbar.js", ucfobj: true, }, { path: "ucf-mem-indicator_simple.uc.js", ucfobj: false, },
Отсутствует