Кнопка "Нет псевдосессиям".
Dumby - а можно эту кнопку для UCF? у меня не работает Custombuttons!
Иногда при запуске открываются ненужные окна/вкладки, появляющиеся из-за какого-то сбоя. Помогает только удаление sessionstore.jsonlz4 при закрытом браузере.
Подскажите код, чтобы при следующем запуске сессия однократно не восстанавливалась. Снятие флажка настроек не помогает: «Открыть предыдущие окна и вкладки»
Отредактировано Dobrov (23-05-2022 02:32:50)
Отсутствует
Добавлено 23-05-2022 11:46:56
если мод из LRepacks, то не запускается через CB
Да, он самый.
Всё тогда понял, жаль.
ЗЫ: Хотя предыдущая версия та что portable запускалась.
Обновился и всё.
Отредактировано Alex_one (23-05-2022 11:51:20)
Отсутствует
DumbyПросьба еще раз поправить код кнопки для вставки символов https://forum.mozilla-russia.org/viewto … 86#p776486
С какой-то версии v91 и в v100 окошко стало меньше по вертикали, третий столбец символов почему-то стал продолжением первого столбца, символы в окошке стали отображаться в 2 столбца вместо 3-х и появилась прокрутка.
Решено, виноват стиль.
Отредактировано shadow_user (24-05-2022 15:59:45)
Отсутствует
kokoss
Мой косяк! Это мой userChrome.css ломает отображение А точнее, ломает стиль "табы в несколько рядов" от Aris-t2 https://github.com/Aris-t2/CustomCSSfor … _lines.css
Теперь, блин, нужно мультирядность ремонтировать
Отредактировано shadow_user (24-05-2022 16:31:01)
Отсутствует
А точнее, ломает стиль "табы в несколько рядов" от Aris-t2 https://github.com/Aris-t2/CustomCSSfor … _lines.css
Теперь, блин, нужно мультирядность ремонтировать
Вот с этим скриптом вроде работает.
Win7
Отсутствует
Как открыть заданную папку?
После папка нужен двойной обратный слэш, иначе первый клик будет холосным, второй клик откроет папку. Далее некоторое время будет открывать одним кликом, потом снова вторым, в общем, как-то так
catch(e) { return "F:\\папка\\"; };
Код для секции Инициализация.
Вот с этим скриптом вроде работает.
Спасибо за скрипт.
Отредактировано shadow_user (25-05-2022 09:25:58)
Отсутствует
После папка нужен двойной обратный слэш, иначе первый клик будет холосным, второй клик откроет папку. Далее некоторое время будет открывать одним кликом, потом снова вторым, в общем, как-то так
У меня всегда открывает одним кликом.
Win7
Отсутствует
а можно эту кнопку для UCF?
Кнопка не совсем об этом, но там есть такое:
Services.obs.notifyObservers(null, "browser:purge-session-history");
Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {})
.SessionFileInternal.write = () => {};
То есть, рассылаем топик на очистку и ломаем запись.
Однако, посмотрел на 100 и, кажется, это приводит к увеличению
времени закрытия браузера (процесс долго висит в диспетчере),
и даже рестарт не работает из-за этого, так что...
А вот интересно, если создать и сохранить пустую сессию,
а при сбое назначить её загрузочной, то это работает?
Если да, то можно попробовать встроить пункт с подобным функционалом,
если сам скрипт будет предоставлен, конечно.
мультирядность ремонтировать
Вроде атрибут part у scrollbox'а для этой кнопки не нужен.
Можно после
parent.setAttribute("orient", "horizontal");
добавить
parent.scrollbox && parent.scrollbox.removeAttribute("part");
Отсутствует
Вроде атрибут part у scrollbox'а для этой кнопки не нужен.
Спасибо преогромное Теперь не конфликтует с мультирядностью от Aris-t2
Отсутствует
Services.obs.notifyObservers(null, "browser:purge-session-history");
Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {}).SessionFileInternal.write = () => {};
Как исправить код удаления сессии? Вторая строка даёт ошибку: TypeError: SessionFile.write(...) is undefined
Отсутствует
Вторая строка даёт ошибку
Этот код для исполнения при выходе из браузера, так что фиолетово.
Но если сделать пустую функцию асинхронной, то этой ошибки не будет.
async () => {};
Отсутствует
Dumby этот код приводит к зависанию браузера при выходе или перезапуске.
Специально проверял на Windows, Firefox 97.0.2.
То есть, если выполнить этот код удаления сессии, то браузер зависнет при выходе или перезапуске.
Services.obs.notifyObservers(null, "browser:purge-session-history"); Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {}).SessionFileInternal.write = async () => {};
Отсутствует
Custom Buttons 0.0.7.0.0.26, paxmod и bootstrap в zip-папке.
И, очередной вариант антиподписячего кода,
так как от предыдущего варианта на ранних бетах будет краш,
поскольку Cu.import() больше не возвращает NSVO.
Тут бы удобно воспользоваться тем, что он теперь возвращает,
но боюсь сам метод в будущем будет удалён, поэтому Debugger.
// try {(jsval => { var g = Cu.getGlobalForObject(jsval), o = g.Object, {freeze} = o, NEW; o.freeze = obj => { if (Components.stack.caller.filename != "resource://gre/modules/AppConstants.jsm") return freeze(obj); obj.MOZ_REQUIRE_SIGNING = false; if ((NEW = "MOZ_ALLOW_ADDON_SIDELOAD" in obj)) lockPref("extensions.experiments.enabled", true); else obj.MOZ_ALLOW_LEGACY_EXTENSIONS = true, lockPref("extensions.legacy.enabled", true); return (o.freeze = freeze)(obj); } lockPref("xpinstall.signatures.required", false); lockPref("extensions.langpacks.signatures.required", false); var useDbg = true, xpii = "resource://gre/modules/addons/XPIInstall.jsm"; if (Ci.nsINativeFileWatcherService) { // Fx < 100 jsval = Cu.import(xpii, {}); var shouldVerify = jsval.shouldVerifySignedState; if (shouldVerify.length == 1) useDbg = false, jsval.shouldVerifySignedState = addon => !addon.id && shouldVerify(addon); } if (useDbg) { jsval = g.ChromeUtils.import(xpii); var sandbox = new Cu.Sandbox(g, {freshCompartment: true}); Cc["@mozilla.org/jsdebugger;1"].createInstance(Ci.IJSDebugger).addClass(sandbox); var dbg = new sandbox.Debugger(); dbg.addDebuggee(g); var env = dbg.makeGlobalObjectReference(g) .makeDebuggeeValue(jsval.XPIInstall.installTemporaryAddon).environment; var ref = eval("(name => env.find(name)?.getVariable(name)?.unsafeDereference?.())"); jsval.XPIDatabase = ref("XPIDatabase"); var proto = ref("Package").prototype; var verify = proto.verifySignedState; proto.verifySignedState = function(id) { return id ? {cert: null, signedState: undefined} : verify.apply(this, arguments); } dbg.removeDebuggee(g); } if (NEW) jsval.XPIDatabase.isDisabledLegacy = () => false; })( "permitCPOWsInScope" in Cu ? Cu.import("resource://gre/modules/WebRequestCommon.jsm", {}) : Cu );} catch(ex) {Cu.reportError(ex);}
Отсутствует
Dumby
101 dom inspector - рухнул ? И это не принимает https://addons.mozilla.org/en-US/firefo … ime-shift/
Отсутствует
101 dom inspector - рухнул ?
Можно обойтись без dom_inspector https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector#readme
Add, ссылка
Отредактировано kokoss (30-05-2022 22:53:54)
Win7
Отсутствует
dom inspector - рухнул
Если paxmod, то, наверно, это всё тот же пресловутый ограничительный
хардкод на загрузку модулей только по протоколам chrome: и resource:
(то есть file: и jar:file: идут лесом). Остальное не помню.
Хорошо, соберу что есть. Сам он, разумеется, лучше не стал. DOMi 7.0.10.
Отсутствует
Dumby
Это норм, а почему в фоне работает ? какая команда на выход ?
Дело в кн.СВ -висят процессы в фоне ,не гаснут при выходе....Примерно догадываюсь , где поганка заныкана.
Нашел , нет "псевдосессиям" она гадит ... Так то она нужна , заманала горящая кнопка сессия , а ее нет.(пустая вкладка)
/*Initialization Code*/ ((topic, id) => { var obs, getObserver = () => { for(var o of Services.obs.enumerateObservers(topic)) { var res = o.wrappedJSObject; if (res && id in res) return res; } } addDestructor(reason => { if (reason[5] != "e") return; var obs = getObserver(); obs && obs.destroy(); }); (obs = getObserver()) || Services.obs.addObserver(obs = { [id]: true, __proto__: null, destroyed: false, destroy() { Services.obs.removeObserver(this, topic); this.destroyed = true; }, get wins() { return Array.from(Services.wm.getEnumerator("navigator:browser")) .filter(win => win.toolbar.visible); }, observe(cancelQuit, t, data) { data != "restart" && !cancelQuit.data && this.onQuit(true); }, handleEvent() { this.destroyed || this.onQuit(); }, onQuit(fromObs) { var {wins} = this, multi = wins.length > 1; if (multi) return fromObs && this.destroy(); this.destroy(); var {tabs} = wins[0].gBrowser; if (tabs.length > 1 ) return; var es = JSON.parse(SessionStore.getTabState(tabs[0])).entries; es.length == 1 && wins[0].isBlankPageURL(es[0].url) && this.erase(); }, erase() { Services.obs.notifyObservers(null, "browser:purge-session-history"); Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {}) .SessionFileInternal.write = () => {}; } }, topic, false); addEventListener("DOMWindowClose", obs); })("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);
Отредактировано ВВП (31-05-2022 15:59:09)
Отсутствует
висят процессы в фоне ,не гаснут при выходе
Ну да, я так и написал. Не знаю что им надо.
заманала горящая кнопка сессия , а ее нет.(пустая вкладка)
Тогда попробуй наоборот, на старте.
Это в custom_script.js положить.
(async url => { var ls = ChromeUtils.import(url)._LastSession; var ss = ls.setState; ls.setState = state => { if (check(state)) state = null; (ls.setState = ss).call(ls, state); } var check = state => { var wins = state?.windows; if (!wins || wins.length > 1) return; var {tabs} = wins[0]; if (!tabs || tabs.length > 1) return; var {entries} = tabs[0]; return entries?.length == 1 && Services.wm.getMostRecentWindow("navigator:browser") .isBlankPageURL(entries[0].url); } })("resource:///modules/sessionstore/SessionStore.jsm");
Отсутствует