Dumby
таки два сразу
https://m.freespeech.club//1_vCimNl.png — хром без контента (быстро исчезает)
https://m.freespeech.club//yvOsbcNN.png — сверху нормальное
Для "Cross-tab identity leak protection" тоже пустое открывается, только побольше.
Не знаю, имеет ли отношение, но чем богаты:
10:32:19.970 Promise rejected after context unloaded: Actor 'Conduits' destroyed before query 'RuntimeMessage' was resolved 2 Messages.js:127 _send moz-extension://dcb8a0a3-ea56-41ef-98e5-0e15c59d4abf/nscl/common/Messages.js:127 10:32:42.206 sendRemoveListener on closed conduit {73a6fe31-595d-460b-a920-fcc0f8843232}.137438956382 ConduitsChild.sys.mjs:108 _send resource://gre/modules/ConduitsChild.sys.mjs:108 removeListener resource://gre/modules/ExtensionChild.sys.mjs:675 removeListener resource://gre/modules/ExtensionChild.sys.mjs:940 register chrome://extensions/content/child/ext-storage.js:175 removeListener resource://gre/modules/ExtensionCommon.sys.mjs:2869 revoke resource://gre/modules/ExtensionCommon.sys.mjs:2891 close resource://gre/modules/ExtensionCommon.sys.mjs:2896 unload resource://gre/modules/ExtensionCommon.sys.mjs:979 unload resource://gre/modules/ExtensionPageChild.sys.mjs:282 unload resource://gre/modules/ExtensionPageChild.sys.mjs:319 destroyExtensionContext resource://gre/modules/ExtensionPageChild.sys.mjs:479 observe resource://gre/modules/ExtensionPageChild.sys.mjs:388
> А что, тебя бы порадовало какое-нибудь бессодержательное высказывание от непричастных типа меня?
Порадовало. А «бессодержательное» — так это точно не про Вас. И насчёт непричастности не согласен — безвременно утраченную совместимость помогли восстановить.
_zt
Спасибо, понятно.
Отредактировано negodnik (20-12-2024 14:14:16)
Отсутствует
без контента (быстро исчезает)
сверху нормальное
Хмм, убедительно. Но, в то же время, не совсем.
Дело в том, что NoScript заказывает ресайз этого окна,
типа подгонка под получившийся размер контента.
Поэтому, может сложиться впечатление,
что это уже другое окно (ресайз как исчезновение).
Вот если бы поймать на панели задач виндовс,
что окошек именно два, тогда было бы бесспорно.
Но, это если они существуют
в какой-то момент времени одновременно,
иначе, это вообще труднодоказуемо.
Отсутствует
> Вот если бы поймать на панели задач…
Ума не приложу как это сделать.
В 12.0.902 окно стало издеваться немного по-другому. Чтобы была видна вся мерзость происходящего, снят высокохудожественный фильм продолжительностью 25 секунд и весом 220 килобайт (но добраться до него можно только окольным путём) — https://www.xmail.net/fatboy/Video/Zahvat3.mkv
Вот gif — https://m.freespeech.club//sD7tmsFA.gif, но он тяжелее (631).
Ох, г-споди! Как бы передать NoScript’у чтобы не горячился, не показывал процесс ресайза, я могу подождать лишних 400 миллисекунд.
Отредактировано negodnik (21-12-2024 17:30:12)
Отсутствует
В 12.0.902
Что-то я не вижу каких-то изменений в коде,
по сравнению с 12.0.901, которые могли бы затрагивать
обсуждаемую проблему.
Изменился только объект tlds в .../nscl/common/tld.js
и в .../bg/LifeCycle.js в 268-ой строке изменился error()
«Can't run content script on tab»,
то есть всё это вообще не должно иметь отношения.
Как бы передать NoScript’у чтобы не горячился, не показывал процесс ресайза, я могу подождать
А толку-то? Это же WebExtensions,
у них нет возможности как-то на это повлиять.
Вот в фильме есть кадр, где видно, что html
уже прогрузился и отобразился, но скрипт ещё
не создал результирующий DOM.
Поэтому, здесь, хотя бы чисто гипотетически,
можно представить возможность какой-нибудь оптимизации,
чтобы это делалось побыстрее. А для всего остального — скорее нет.
Вот, попробовал uc-like скриптом
это дело прихорошить, и вроде, чуть получше.
Но, там используется счётчик, а это как-то ненадёжно.
Вобщем, не знаю как ещё, такая шляпа:
(async re => { var match = window.arguments?.[0]?.match?.(re); if (!match) return; var policy = WebExtensionPolicy.getByID("{73a6fe31-595d-460b-a920-fcc0f8843232}"); if (!policy || match[1] != policy.mozExtensionHostname) return; var {resizeTo: rt, moveTo: mt, windowUtils: wu} = window; mt(1e4, 1e4); wu.loadSheetUsingURIString( "data:text/css,%23tabbrowser-tabpanels>:first-child browser{margin:0!important}" , wu.USER_SHEET); var parent = BrowserWindowTracker.getTopWindow(); var refocus = () => Services.focus.focusedWindow = parent; window.addEventListener("activate", refocus); var width, num = 5; window.resizeTo = (w, h) => rt((width ||= w + 20) + --num, h); var count = 3; window.moveTo = () => { refocus(); if (--count) return; window.moveTo = mt; window.resizeTo = rt; window.removeEventListener("activate", refocus); var aw = win => win.docShell.treeOwner .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIAppWindow); aw(window).center(aw(parent), false, false); setTimeout(window.focus, 150); } })(/^moz-extension:\/\/(.{36})\/ui\/prompt.html$/);
Ну, и наконец, чисто теоретически, есть ещё два таких же окошка.
XSS_promptTitle — «XSS предупреждение NoScript» и
TabGuard_title — «Потенциальная утечка данных идентификации».
Как их обрести — я без понятия, поэтому как они будут отображаться не знаю.
Отсутствует
>>> Это же WebExtensions, у них нет возможности как-то на это повлиять.
Т.е., нет смысла дать автору NS ссылку на этот код. Или он сможет что-то полезное почерпнуть?
>> шляпа
Шляпа работает (webgl, media, object). Большое спасибо.
XSS и TabGuard, как назло, не попадаются.
> надпись … сваливается в отображение в три строки вместо двух
Всё под короткие английские слова рассчитано. Одно время были удалены все локализации, когда немцы достали автора со своими длинными, непомещающимися в отведённое место словами.
Отсутствует
Т.е., нет смысла дать автору NS ссылку на этот код.
Да, полагаю, что никакого смысла.
Даже если представить, что можно сделать только на одной рефокусировке,
(а у меня сходу в скипте не получается, всё равно иногда мелькает),
то, из WE, это же пойдёт запрос из дугого процесса,
что, наверно, будет недостаточно быстро.
А, как в скрипте, задвинуть окно за пределы экрана они не дадут.
В chrome://browser/content/parent/ext-windows.js
есть функция sanitizePositionParams()
и комментарий в ней
// boundary check: don't put window out of visible area
Отсутствует