xrun1
потому что устарел, исправил
dezhnev
мне не кажется хорошей идеей изменять все заголовки document.title на сайтах, а другой способ пока не думал для расширений,
но вот с обычными вкладками можно с этим скриптом сделать
https://forum.mozilla-russia.org/viewto … 76#p788476
заменить
try { let host = curruri.host; tab.setAttribute("ucf-host", host); tab.textLabel .setAttribute("ucf-host", host); } catch(e) { tab.removeAttribute("ucf-host"); tab.textLabel .removeAttribute("ucf-host"); }
.tabbrowser-tab[ucf-scheme^="http"]:not([pinned]) .tab-label[ucf-host]::before { content: attr(ucf-host) " /"; display: inline; margin-inline-end: .2em; font-size: .75em; color: var(--tab-line-color, currentColor); }
Отредактировано Vitaliy V. (26-02-2021 01:38:57)
Отсутствует
Vitaliy V.
Спасибо, а то уже стал посматривать в сторону кнопки, которую Вы сделали для egorsemenov06 https://forum.mozilla-russia.org/viewtopic.php?pid=780423#p780423
Но ПКМ на значке в адресной удобнее, чем ещё одна кнопка на панели. Хотя, на грёбаном https://yandex.ru/ единственную куку тоже со второго раза, а кнопка Infocatcher https://github.com/Infocatcher/Custom_Buttons/tree/master/Cookies_Permissions там вообще не срабатывает (у меня; хотя куки вроде удаляет тоже со второго раза, остаются данные сайта). Но это уже придирки, на яндексе вообще дурдом.
Отредактировано xrun1 (26-02-2021 04:08:16)
Отсутствует
Dumby
Вот здесь solombala выложил код для Кнопки "пароль - куки "
Сейчас она совсем не работает. Возможно ли её реанимировать для user_chrome_files?
Отсутствует
xrun1
Я пытался подключить кнопку https://github.com/Infocatcher/Custom_Buttons/tree/master/Undo_Close_Tabs, но там >1000 строк кода.
Мою обновлённую кнопку в Add Toolbar Buttons смотрели? Можно и для custom_script.js сделать.
Отключил вертикальную панель
А что так, обновить лень?
Отредактировано Vitaliy V. (26-02-2021 12:05:50)
Отсутствует
Vitaliy
мне не кажется хорошей идеей изменять все заголовки document.title на сайтах, а другой способ пока не думал для расширений,
ну понятно, что идея не ахти, по-другому например я одно время такой oneliner использовал:
(function(){var a = decodeURIComponent(document.location.hostname).replace(/www\./i, ''); document.title = document.title.replace(/.+\.\w+\s\/\/\s/i, ''); document.title = a + " // " + document.title})()
но если есть возможность посредством ucf это сделать, я бы предпочел ее, просто направьте как это сделать
я так понимаю в custom_scripts.js нужно matches */*/* ; в UCFTitleChangedChild.jsm что-то сделать с this.document.title
Отредактировано dezhnev (26-02-2021 13:00:53)
Отсутствует
Vitaliy V.
А что так, обновить лень?
Да у меня что-то с обновлением никак не ладится - вкладки внизу перестают работать и ломается адресная строка. Поэтому решил остаться на версии 2019-11-27, поскольку с ней проблем нет. Да и времени не хватает. Будет - займусь, но без бутылки не разберусь.
16:27 Без пузыря все сделал. Не хватало двух строк в файле Custom_style_user.css - userChrome и userContent (второй у меня подключен, как когда-то, отдельно в папке Chrome).
Отредактировано ofizer (29-05-2023 01:19:21)
Отсутствует
Vitaliy V.
Можно и для custom_script.js сделать
Было бы замечательно, думаю, xrun1 поддержит ) Есть код от Dumby, в принцире мне достаточно, но xrun1 посеял во мне жадность, мол, в кнопке есть восстановление сессии
Отсутствует
Помогите пожалуйста в вопросе восстановления работы браузера 78.8.0 ESR. Поменял железо компьютера, ранее была установлена Windows 7-64, теперь пришлось установить windows 10-64. Возникла проблема не удалось полностью восстановить из сохранения все те примочки, которые были на Windows 7. (Хотя на 7 проделывал - восстановление в лёгкую). Вопрос такой:
В папке chrome все папки и файлы восстановлены, как и были на 7,но почему то не работают скрипты(они есть) но результата работы нет(папка userChrome есть, файл userChrome.js - есть). Что и где нужно проделать, чтобы заработало.
Отсутствует
Вот здесь solombala выложил код для Кнопки "пароль - куки "
И где подробное описание того, что она делает?
Может лучше ATB установи.
Vitaliy V.
Кстати, поставил посмотреть ATB 2021.2.20, и есть интересное наблюдение
Дело в том, что с настроечных субдиалогов поснимали атрибут "windowtype",
и в функции add_toolbar_buttons.viewCookies() Services.wm это окно не находит.
Но win.openDialog() находит и возвращает. Затем это окно выгружается и исчезает,
а на его место снова грузится тот же адрес. Поскольку окно сменилось, то события "DOMContentLoaded"
для старого окна уже не будет, соответственно, не будет вызван и _setFilter()
Однако windowRoot устойчив к таким пересменкам, поэтому записал так:
/* _win.addEventListener("DOMContentLoaded", () => { _setFilter(); }, { once: true }); */ _win.windowRoot.addEventListener( "DOMContentLoaded", e => _setFilter(_win = e.target.ownerGlobal), {once: true} );
Ну, это такой фикс, подкупающий своей простотой.
Возможно лучше поискать именно то самое окно, каким-то образом.
Отсутствует
И где подробное описание того, что она делает?
Да ничего особенного просто клик лкм показывает пароли, правой показывает куки.
Да просто в одной кнопке две функции.
Отсутствует
rubel
А, ну тогда понятно.
Вот, наверно Виталий скажет какое будет мнение
(скореее всего принудительная установка атрибута windowtype).
И, ещё же убили persist screenX/screenY,
то есть тоже надо решать, что-то делать, или просто забить.
Тогда может перерисую код из ATB (не обещаю).
Отсутствует
Vitaliy V.
Мою обновлённую кнопку в Add Toolbar Buttons смотрели? Можно и для custom_script.js сделать.
Каюсь, не посмотрел. Так лучше стало, спасибо.
Отсутствует
Vitaliy V
Давно пользуюсь вашим user_chrome_files. И вот есть одно не удобство по поводу auto_hide_sidebar.
Подвожу курсор влево, открывается боковая панель(вертикальная панель отключена), хочу выбрать в верхнем меню, что открыть в боковушке. Нажимаю и хочу выбрать из Закладки, Журнал, Scrapyard, но не успеваю нажать как это меню пропадает.Если убрать курсор вправо, это меню выезжает и уже можно выбрать. Как бы это поправить.
Отсутствует
я так понимаю в custom_scripts.js нужно matches */*/* ;
https://developer.mozilla.org/en-US/doc … h_patterns
можно "<all_urls>"
в UCFTitleChangedChild.jsm что-то сделать с this.document.title
ну да как-то так
try { var host = this.document.documentURIObject.displayHost.replace(/^www\./, ""); if (host && !this.document.title.startsWith(host)) this.document.title = `${host} | ${this.document.title}`; } catch (e) {}
Дело в том, что с настроечных субдиалогов поснимали атрибут "windowtype",
и в функции add_toolbar_buttons.viewCookies() Services.wm это окно не находит.
Не заметил, редко пользуюсь, спасибо, потом исправлю.
И, ещё же убили persist screenX/screenY,
то есть тоже надо решать, что-то делать, или просто забить.
Да в ATB не буду ничего делать для этого, в центре экрана меня вполне устраивает.
Попробовал у меня ни одно окно открытое с openDialog не запоминает положение, только в некоторых если добавить параметры
modal или dependent.
Ну наверно надо принудительно перемешать окно + запоминать положение
(function viewCookies(win) { var url = "chrome://browser/content/preferences/dialogs/siteDataSettings.xhtml", type = "Browser:SiteDataSettings"; var _win = Services.wm.getMostRecentWindow(type); var _setFilter = () => { var filter = _win.document.querySelector("#searchBox"); if (!filter) return; filter.value = win.gBrowser.selectedBrowser.currentURI.host; filter.focus(); filter.dispatchEvent(new _win.Event("input", { bubbles: true })); }; if (_win) { _win.focus(); _setFilter(); } else { win.SiteDataManager.updateSites().then(() => { _win = openDialog(url, type, "chrome,titlebar,dialog,centerscreen,dependent"); // Services.els.addListenerForAllEvents(_win.windowRoot, e => console.log(e)); _win.addEventListener("DOMContentLoaded", e => { var docEl = _win.document.documentElement, id = docEl.id; _win.windowRoot.addEventListener("MozUpdateWindowPos", e => { _win.moveTo(Services.xulStore.getValue(url, id, "screenX"), Services.xulStore.getValue(url, id, "screenY")); }, { once: true, capture: true }); _win.addEventListener("unload", e => { Services.xulStore.setValue(url, id, "screenX", _win.screenX); Services.xulStore.setValue(url, id, "screenY", _win.screenY); }, { once: true }); docEl.setAttribute("windowtype", type); _setFilter(); }, { once: true }); }); } })(window);
пример кода CSS напишете что бы прикрутить свои изображения на плитках домашней странице и новой вкладке
@-moz-document url("about:newtab"), url("about:home") { .top-site-button .screenshot { background-position: top left !important; background-repeat: no-repeat !important; background-size: cover !important; } .top-site-button[href="адрес"] .screenshot { background-image: url("изображение") !important; } }
Как бы это поправить.
стилем никак, но там есть скрипт для auto_hide_sidebar, буду иметь ввиду при следующем обновлении user_chrome_files
Добавлено 27-02-2021 14:14:54
Было бы замечательно ... мол в кнопке есть восстановление сессии
А кнопку-то смотрели в ATB? вдруг не понравится, а восстановление сессии есть
Отредактировано Vitaliy V. (27-02-2021 14:32:59)
Отсутствует
background-image: url("./screenshot/ ...
вставляю в userContent.css и в папке custom_styles создал папку screenshot
Если папка screenshot в custom_styles, а код в userContent.css как он заработает
В custom_style_user.css вставляйте или папку screenshot в chrome перенесите
Отсутствует
Vitaliy V.
А кнопку-то смотрели в ATB?
Да вообще шикарно всё работает , и Undo и прочие. А ведь камрады советовали ваш АТВ, но я растерялся тогда от обилия кнопок, подумал да ну-у. А сейчас не нарадуюсь, марафет навожу на панелях, некоторые свои (в смысле ваши же, форумные) скрипты-дубли убрал. Лепота
Отсутствует
egorsemenov06
у вас там для https://www.startpage.com/ скриншот или иконка отображается, тот код для скриншотов
.screenshot попробуете заменить на .top-site-icon если для иконок
Отредактировано Vitaliy V. (27-02-2021 16:00:03)
Отсутствует
наверно надо принудительно перемешать окно + запоминать положение
Видимо, пока, не требуется.
Похоже, сами атрибуты работают, надо только их проставить.
Как всё это может взаимодействовать с теми же окнами,
но открытыми другим сторонним кодом — даже задумываться не хочется.
Вот, попробовал слепить то, что rubel просил.
viewCookies() там в конце, можно посмотреть.
try {CustomizableUI.createWidget({ label: "ПАРОЛИ/КУКИ", tooltiptext: "Л: См. ПАРОЛИ\nП: См. КУКИ", id: "ucf-logins-sitedata", localized: false, onCreated(btn) { btn._handleClick = btn.oncontextmenu = e => this.view(e, btn.ownerGlobal); btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAADo0lEQVR42pWUf0idVRzGP+d4vVfbFFeu/SErV1bUBiI6ivajUcEiiiBoaTEEo7Lsj2W1P6Q2xFiL0Qp0q/7pB2GLijZGG/aDSPuBxBbkGm3O7IJuRJmod+t6r+89p+d9b6TWhu17uefe97zn+5zn+3yfcwznCz9e7c2S5fr3i8Ec5yLCzHtq96txdGNZSoE+a8mxgRG2cx/t5uTFAd7u17GOPrbl9oDdibGjdPgrtOIlwd7TtI2aN8zCbGcBn/dJJb7LdtP2n1XP+Q8Z+a2St5bVzVPmlPInBVKHnw/Y7tdr7OE7yjhksnM2sTxrHJ/7Sr0booIbaDSDeC9pjec8EQH6TdRzgofNALddqBR/HWNU84B5n0+j533EWcYKKZwyjZyZz/BJ36XxVkrpZPDnOMUJy4xmCmOSsxDSZwPKrtylhjXwqtnvR3mGczxBwOXEbIaU+4YMLWYNSUPTcA9pt1GLFQEUFek3fBCQE6oNp204NUXvWIUfrGsmyS6mNV/bo+F6bfg0HP/gNHWsMmwaDCKLhGGtwwks5mweKcS2OawrYOJchz9Y08ExsjgxTweOm/pNhhvD3YPE+B0JPv5kh2HzcEogi0XOEQtfCcxGdKeEWRqRDfHHf7/L71hjuYSDpFVFThQvXeGpOkqaJa6YPsPXt/xqaBhWoitRWi4PmFH2oja6K3fyYLILm20hq6ljRzb6vfUZyvmS6bi2KTBk0lpaDtVbHGO9hhOf/WFoTKaEIoaiFdO6YMZhF9fyzvIBGpJ3knOHKEy8RnfFY35AJnexVn1d1FAn/81MezUklC3Bn7wSAk4JpYRpARa5nMovJBv7iKnE/ZS508RzX/B2ZYP/kRcFslXsQq3lQSeHSPrY338X5Yaoyq6eZZgVYFyAQUbtLe7lK1fP0p+2cvTuVn9SzNK05hsVWslGWNhgMqqqwB0W10fN1fLkPxo6aRjHRQydPUV31bWRgb+3ezT/ePiGbNwSm56Uo/qY4GW1bUgbeXMvo7PG3jw8KcDSqMs2ZBgaMPYm+65qkoFfV+IjODVBFlUFlkTwgrmGNi4QAkz6yHuhP0JtstYwemaV79xQBdkDcnq+UiffpYNmbuY9Y0jNOZQS0My5HJpGugTYooLziamz8EP/Wn/4oRpm4p1IAbl4QjrtNytp+n/XV/PYSpV5GaYge2RvSXHtt/JaGVsk9O6o1BKekuC7FwKbfx/++3Y5oINvdFBzGsvpN+uj07tg/AUtF37/2LRsMgAAAABJRU5ErkJggg=="); }, view(e, win) { if (e && (e.ctrlKey || e.shiftKey)) return; var uri = win.gBrowser.selectedBrowser.currentURI; try { var url = win.ReaderMode.getOriginalUrl(uri.spec); if (url) uri = Services.io.newURI(url); } catch {} try {var tld = Services.eTLD.getBaseDomain(uri);} catch {var tld = uri.asciiHost;} e ? this.viewCookies(tld, win) : this.viewPasswords(tld, uri, win); return false; }, viewPasswords(tld, uri, win) { try { tld = Services.io.newURI(`${uri.scheme}://${tld}`).displayHost; } catch {} var params = new win.URLSearchParams({...(tld && {filter: tld})}); var gb = win.gBrowser; var separator = params.toString() ? "?" : ""; var tabToSelect, url = `about:logins${separator}${params}`; for (var tab of gb.visibleTabs) { var {spec} = tab.linkedBrowser.currentURI; if (!spec.startsWith("about:logins")) continue; if (spec != url) { var pending = tab.hasAttribute("pending"); if (pending) gb.selectedTab = tab; tab.linkedBrowser.loadURI( url, {triggeringPrincipal: tab.nodePrincipal} ); if (pending) return; } tabToSelect = tab; break; } gb.selectedTab = tabToSelect || gb.addTrustedTab(url); }, async viewCookies(tld, window) { var notFound, wt = "Browser:SiteDataSettings"; var url = "chrome://browser/content/preferences/dialogs/siteDataSettings.xhtml"; var win = Services.wm.getMostRecentWindow(wt); if (!win) { notFound = true; await window.SiteDataManager.updateSites(); win = window.openDialog(url, wt, "chrome,dialog=no,centerscreen,resizable"); var e = await new Promise(resolve => win.windowRoot.addEventListener("DOMContentLoaded", resolve, {once: true}) ); win = e.target.ownerGlobal; } var doc = win.document, de = doc.documentElement; de.setAttribute("persist", "screenX screenY width height"); if (notFound) { de.setAttribute("windowtype", wt); var xs = Services.xulStore, {id} = de; var x = xs.getValue(url, id, "screenX"); var y = xs.getValue(url, id, "screenY"); x && de.setAttribute("screenX", x); y && de.setAttribute("screenY", y); } var sb = doc.querySelector("#searchBox"); sb.inputField.setUserInput(tld); setTimeout(() => sb.editor.selection.collapseToEnd(), 50); notFound || win.focus(); } });} catch(ex) {Cu.reportError(ex);}
Так вот, у меня наблюдается, что если эта вкладка pending (например, после рестарта),
то это не работает, вкладка активируется, но адрес в ней остаётся старый, тот что был.
В этом случае, вроде достаточно сначала активировать вкладку, а затем уже загружать.
Отсутствует
Видимо, пока, не требуется.
Как и писал у меня без modal или dependent не работает на , на да.
Возможно потому что kde или настройки окон, надо бы на gtk дистрах посмотреть
P.S. нет дело не в настройках окон.
Отредактировано Vitaliy V. (27-02-2021 19:00:17)
Отсутствует