Отсутствует
есть в профиле profile_ucf_dobrov
Если ты про этот код, то его подкосил баг 1767802.
/* .tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabs-newtab-button { */ .tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabs-newtab-button, .tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button {
Отсутствует
Dumby, подскажите, что можно изменить в скрипте Simple Session Manager, чтобы заработало в FF68 и 78..?
В 68 после замены btn.type = "menu"; на btn.setAttribute("type", "menu"); и правки @-moz-document url-prefix(chrome://browser/content/browser.xul) кнопка появляется, по щелчку ЛКМ предлагает сохранить сессию, но не сохраняет. В 78 кнопка появляется без ковыряния в коде, но тоже не работает.
Отсутствует
LGS
Скрипты у Dobrov-а работают с перехватом кликов hookClicks, его нужно добавить в CustomStylesScripts.jsm, иначе ни один из этих скриптов работать не будет.
Это для 78. А в 68 новые UCF, к сожалению, не работают.
Отредактировано kazarin (17-09-2022 19:47:26)
Отсутствует
В 68 после замены btn.type = "menu"; на btn.setAttribute("type", "menu"); и правки @-moz-document url-prefix(chrome://browser/content/browser.xul) кнопка появляется, по щелчку ЛКМ предлагает сохранить сессию, но не сохраняет.
Что-то я не понял, там же четыре «?.» оператора, которые надо выгребать,
а об этом ни слова. Ладно, будем считать что сделал, но не написал.
Патч на сохранение. Только это, я не буду там всё тестировать,
а если ещё что-то всплывёт, то пиши доходчивый STR, попробую посмотреть.
/* async save(excWin) { var io = Cu.getGlobalForObject(Cu).IOUtils; */ io: { get OS() { delete this.OS; Cu.import("resource://gre/modules/osfile.jsm", this); return this.OS; }, makeDirectory(path) { return (this.makeDirectory = this.OS.File.makeDir)(path); }, writeJSON(path, obj) { var wa = this.OS.File.writeAtomic; return (this.writeJSON = (path, obj) => wa(path, JSON.stringify(obj)))(path, obj); } }, async save(excWin) { var io = Cu.getGlobalForObject(Cu).IOUtils || this.io;
Отредактировано Dumby (17-09-2022 21:39:51)
Отсутствует
LGS
Оказывается, SSM не работает и в профиле Dobrov-а (тестовый профиль для 78 от 12.04.2022). Есть кнопка, но ничего не сохраняется, а через клик выскакивает сообщение:
Dumby
На 78 фикс не помог, по-прежнему не сохраняет.
Отредактировано kazarin (17-09-2022 21:17:51)
Отсутствует
Dumby
Патч на сохранение
На 78 (esr и Вин10 x64) заработало все: сохранение, восстановление, удаление, переименование и даже иконки у менюшек.
На 68 (форке и ВинХР) заработало сохранение и восстановление. Спасибо!
68esr и Вин10 x64 кнопка не создается, наверное что-то локальное у меня.
Только это, я не буду там всё тестировать,
а если ещё что-то всплывёт, то пиши доходчивый STR, попробую посмотреть.
Конечно, сам погоняю, посмотрю что всплывет. Только мне стыдно спросить - что такое STR..?
Add: Оказывается, работало (попытка 1) до перезагрузки компа. Теперь проверяю "попытку 2".
Отредактировано LGS (17-09-2022 22:06:31)
Отсутствует
kazarin
этот скрипт, по-видимому, ниже 91 работать и не будет
На 78 попытка 2 тоже работает, как и первая. Только не знаю как будет после перезагрузки компьютера.
На 68esr кнопка не создается, на Еноте68 работает сохранение и восстановление.
Отсутствует
Dumby
"Вторая попытка" работает и на 78, и на 68! Большое спасибо!))
LGSВ 68 нет иконки на функции удаления, потому что самой такой картинки в браузере нет, вы там пропишите своё что-нибудь))
Нет, есть, но почему-то не отображается.
От перезагрузки компа кнопки не зависят, только от очистки кэша скриптов.
А вот на 68 esr не проверял, счаз гляну.
Да, у меня тоже не появляется в 68. А в Еноте есть))
Отредактировано kazarin (17-09-2022 22:51:57)
Отсутствует
kazarin
От перезагрузки компа кнопки не зависят, только от очистки кэша скриптов
Значит кэш не очистился. После правки "попытки 1" браузер (78) однозначно перезагружался с кнопки очистки кэша и все работало. После перезагрузки компа (нужно было на ВинХР енот проверить) все слетело.
Отсутствует
На 68esr кнопка не создается, на Еноте68 работает
Конечно не создаётся. Оператор «?.» это не какая-то там ошибка в работе кода,
это сразу SyntaxError, весь код встанет враскоряку.
Уж не знаю что за Енот68, но значит там поддержка этого оператора есть.
Только мне стыдно спросить - что такое STR..?
Steps To Reproduce (шаги по воспроизводству),
типа делай раз, делай два, делай три. Багзильский такой формат.
Пример. Допустим, обсуждаемый код работает.
STR: Запускаем Firefox 78. Инициируем в кнопке сохранение сессии.
В открывшемся окошке ввода имени вызываем контекстное меню (ПКМ) на строке «Сохранить:».
Жмём пункт «Выделить всё».
AR: Выделение не происходит.
ER: Выделение происходит.
Ну, это баг такой в лисе, можно и в простом alert'е увидеть.
Воспроизводится и в 106.0a1
Отсутствует
Dumby
Steps To Reproduce (шаги по воспроизводству)
Благодарю за науку и помощь со скриптами!
Уж не знаю что за Енот68
Это MyPal, человек его на базе 68esr делает для ХР и уже, вроде, кое-что от 78 туда впихнул. Поэтому скрипт и работает.
Отсутствует
LGS
Ну, то есть, в изначальном вопросе «В 68 после замены» «и правки» это был енот.
У меня нет никакого енота, а сохранение надо было смотреть, поэтому,
на скорую руку, чисто формально, запихал код в Firefox 68 так
.... //if (old != trg) old?.removeAttribute("boot"); if (old != trg) old && old.removeAttribute("boot"); .... //if (arg.constructor.isInstance?.(arg)) { if (arg.constructor.isInstance && arg.constructor.isInstance(arg)) { .... //win.document.querySelector(this.skd)?.removeAttribute("maxwidth"); var menu = win.document.querySelector(this.skd); menu && menu.removeAttribute("maxwidth"); .... //: this.dragData?.mouse && e.preventDefault() : this.dragData && this.dragData.mouse && e.preventDefault()
Отсутствует
Dumby
Проверил, в 68 работает. Спасибо!
LGS
Исправил иконку так
#${pid} [value=removeSession] { list-style-image: url("resource://usercontext-content/cart.svg"); } #${pid} [value=deleteAllSessions] { list-style-image: url("resource://usercontext-content/cart.svg"); }
Отредактировано kazarin (18-09-2022 00:42:03)
Отсутствует
Dumby
Ну, то есть, в изначальном вопросе «В 68 после замены» «и правки» это был енот.
Да, извиняюсь, не совсем точно сформулировал. Думал, что ESR не так важно. А про енота вы и так не знали.
на скорую руку, чисто формально, запихал код в Firefox 68
На 68esr заработало: сохраняет, восстанавливает, переименовывает. Только не удаляет.
Благодарю!
Добавлено 18-09-2022 00:47:20
kazarin
Исправил иконку так
Спасибо, теперь совсем красиво.
Отредактировано LGS (18-09-2022 00:47:20)
Отсутствует
Dumby - спасибо за адаптацию ucf_SessionManager!
Как сделать прокрутку вкладок колёсиком мыши ? (аналогично Ctrl+Page Up|Down)
твой код работает, только если его запустить из консоли. Разные способы запуска из CustomStylesScripts.jsm не пашут:
(async (tc) => addEventListener("wheel", e => { if (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey) return; e.stopPropagation(); e.preventDefault(); tc.advanceSelectedTab(e.deltaY < 0 ? 1 : -1, true); }, true, tc || 1))(gBrowser.tabContainer);
Скрипты у Dobrov-а работают с перехватом кликов hookClicks, его нужно добавить в CustomStylesScripts.jsm, иначе ни один "из этих" скриптов работать не будет.
LGS спрашивал про ucf_SessionManager.js, которому не нужен ucf_hookClicks. "Из этих" зависят только attrsInspector.js, ucf_mousedrag.js, ucf_QuickToggle.js.
Но глобальный скрипт значительно упрощает код других кнопок и добавляет много функций, подсказки, клики, перехват при наведении мыши на кнопки/панели. Например, расширяет возможности кнопок Загрузки, Печать, PanelUI-menu, Замок и многих других, в том числе можно добавить горячие клавиши и расширить клики/подсказки любых дополнений, как это сделано для Single Save, VideoDownloadHelper, ReaderView.
Отсутствует
Разные способы запуска из CustomStylesScripts.jsm не пашут
Что там может не пахать
(async tc => { var args = ["wheel", e => { if (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey) return; e.stopPropagation(); e.preventDefault(); tc.advanceSelectedTab(e.deltaY < 0 ? 1 : -1, true); }, true]; tc.addEventListener(...args); var id = Symbol(); this.unloadlisteners.push(id); this[id] = {destructor: () => tc.removeEventListener(...args)}; })(gBrowser.tabContainer);
var UcfStylesScripts = { ....... scriptschrome: { // Для докум. окна браузера [ChromeOnly] domload: [ // По событию "DOMContentLoaded" ], load: [ // По событию "load" ....... { path: "advanceSelectedTab.js", ucfobj: true }, ], },
Отсутствует
LGS спрашивал про ucf_SessionManager.js, которому не нужен ucf_hookClicks
Да мы уже разобрались)) Просто моей первой мыслью, раз иконка есть, а скрипт не пашет, было, что взят скрипт, который работает с перехватом.
добавляет много функций, подсказки, клики, перехват при наведении мыши на кнопки/панели
А неужели так много там экономится, чтоб он был так уж нужен?
Мне кажется, таки hookClicks это для мастеров. Которые сами умеют писать скрипты, и им так удобнее. Мне вот как простому юзеру hookClicks потенциально не нравится тем, что если вдруг UCF перестанут работать на FF, то их уже по-другому не подключишь (hookClicks работает только с UCF, я проверял). Скрипты для UCF не всегда дружат с другими загрузчиками, но большая часть - да.
Ну и порой бывает, что сам скрипт может работать на более низкой версии FF со старым UCF, а без hookClicks он не заработает.
Кстати, а вы не можете пояснить, почему на 78 выскакивает вот такое сообщение? В профиле ничего не менял, просто запустил. На самом свежем профиле тоже выскакивает.
Отсутствует
неужели так много там экономится, чтоб "ucf_hookClicks.js" был так уж нужен?
Да, например отдельно в кнопке меню ucf_QuickToggle.js такое очень сложно сделать, а используя hookClicks всё намного проще:
Спасибо Dumby - код обработки предельно прост: 2(trg, forward) { bright(trg, forward);}, // яркость роликом мыши на кнопке ±
1) клики трёх кнопок мыши, б) их долгое нажатие с) прокрутка колёсика мыши д) + комбинации с Ctrl, Alt, Shift, Win
2) различные действия, в зависимости, где событие мыши: на самой кнопке или в её меню опций
3) различные подсказки, обновляемые при наведении курсора мыши на кнопку или разные пункты меню и подменю
4) сообщения в строке статуса при наведении на кнопку или при изменении режимов работы браузера
5) цвет кнопки в зависимости от режима прокси и многое другое (скрипт подробно комментирован)
6) всё работает на любых панелях и кнопках, не нужно в каждую кнопку прописывать клики, подсказки и прочее...
в обычном скрипте для обработки клика левой кнопки мыши нужна не одна строка, а больше. Если добавить правую кнопку и колёсико, код значительно усложняется.
почему на 78 выскакивает вот такое сообщение? В профиле ничего не менял, просто запустил. На самом свежем профиле тоже выскакивает.
проверил, получается, нужен Firefox 84+, на нём всё ОК, на FF78 получил ошибку создания массива:
hmap = new Map([ ["downloads-button", // тексты: кнопка «Загрузки» (в firefox_profile_ucf_dobrov.html указано: рекомендуется Firefox 90+)
Отредактировано Dobrov (19-09-2022 13:47:15)
Отсутствует
Подскажите, кто знает... или как думает, можно ли этот скрипт, или этот, или вот такой скрипт+стиль впихнуть в заголовок фокса..? Ну, т.е. чтобы версия, дата и время отображались в заголовке, а не в панели меню. Или такое технически невозможно..?
Вопрос актуален для всех версий ФФ с 68 по текущую релизную.
Отсутствует