New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firefox 57+. Временное решение проблемы #29
Comments
Для Firefox я сделал расширение https://github.com/superstrongAI/yt-metabot-firefox/releases, правда, с обновлениями дела не очень. |
У меня скрипт не работает в Firefox даже после удаления этой строчки. Перестал работать после того, как я перешёл с violentmonkey на greasemonkey. Советовать перейти обратно не надо. У меня были свои причины для перехода и я лучше откажусь от метабота. |
Сомневаюсь что я что-то делаю не так.
В любом случае интересны причины. Чем плох violentmonkey? Чем хорош greasemonkey? |
не исполняет юзер-скрипты, если отключен JS |
Только что снёс скрипт и установил заново - не работает. |
Помню раньше такое делал на Opera 12, чтобы ускорить браузер или отследить (не)нужные скрипты. В Firefox это вообще можно делать без перезапуска? Какая польза?
Обмениваться такими "аргументами" можно бесконечно. Предлагаю нейтральную среду - portable-версию браузера. https://portableapps.com/apps/internet/firefox_portable |
для этого есть удобные расширения, такие как NoScript и uMatrix. польза в том, что ты запрещаешь выполнение недоверенного кода у тебя на компьютере
это не аргумент, а факт
не могу её запустить, так как она предназначена для ОС Microsoft Windows |
По-моему оно должно работать по сценарию запрета непроверенных доменов или источников, но никак не глобальной блокировки JS. Иначе я не понял, почему пользоваться violentmonkey неудобно. Оба движка (violentmonkey и greasemonkey) должны нормально уживаться внутри браузера.
Если исключить вариант проблемных настроек браузера, остаются 2 варианта:
Если скрипт у тебя работает хотя бы под одним движком, то вероятнее вариант 1. Что-нибудь в консоль пишется? Ошибки должны сыпаться, если что-то не работает. Если ничего нет, то можно попробовать в разные места скрипта добавлять строку |
оно так и работает. поскольку автором большинства сайтов в интернете являюсь не я, то они по умолчанию непроверенные
попробую
там постоянно какой нибудь срач идёт, слова не вставишь |
Я имею в виду что не понял, когда может возникать ситуация "не исполняет юзер-скрипты, если отключен JS". Если Youtube в расширениях-блокировщиках добавить в исключения (добавить в белый список), то не должно такой ситуации быть.
Можно добавить меня и не участвовать в общем чате. @asrdri
Там можно вставить другие параметры, чтобы отследить процесс: https://wiki.greasespot.net/GM.xmlHttpRequest (см. Event handlers) Попробуй так:
|
подсказка: юзерскрипты бывают не только для ютуба |
Попробовал. Вот что вышло: |
Методом подстановки алертов в различные места скрипта пришёл к выводу, что вызов |
Значит проблема либо в том что GM.xmlHttpRequest сам по себе глючит в твоей среде, либо конфликтует с другими расширениями. Можно попробовать всё остальное удалить/отключить, но я не уверен что остальные настройки браузера не войдут в новый конфликт. Поэтому и предлагал portable-версию. Можно по-другому - закрыть браузер, временно переименовать папку профиля |
ну это уже оверкилл
попробую конечно, когда не лень этим всем заниматься будет. у firefox кстати довольно удобный менеджер профилей есть, не нужно ничего переименовывать и удалять, достаточно создать новый профиль и войти в него а что это даст? допустим, в пустом профиле скрипт работает. и что? мне нужно, чтоб в моём всё работало. |
А что со вторым пунктом?
Будет означать что имеются конфликты между greasemonkey и расширениями для блокировки скриптов. Либо эти конфликты можно исправить вручную, не отказываясь от расширений, либо нельзя. Если нельзя - може получится найти причинное расширение и сообщить разработчикам о проблеме. Вообще какие-то другие юзерскрипты с GM.xmlHttpRequest работают у тебя? |
В uMatrix нет способа разрешить только исполнение юзерскриптов, но не разрешать исполнение обычных скриптов на странице.
это выяснить гораздо проще. это вообще первое, что я проверил. достаточно лишь отключить соответствующее расширение.
таких нет |
Т.е. у тебя перманентно заблокированы скрипты на Youtube? Как он вообще тогда может работать? Или для того чтобы он работал нужно глобально отключить блокировки? Функционала белого списка нет?
Пробуй (установи, обнови любую страницу и смотри в консоль) |
причём тут youtube? юзерскрипты только для ютуба бывают что ли?
вот за это спасибо. удалось найти причину. |
Скрипты для youtube ничем не отличаются от скриптов для других сайтов. Есть скрипт для сайта name.com. Я в первый раз захожу на сайт name.com, ничего не работает потому что всё JS заблокировано. Осматриваю список доменов, с которых подгружаются скрипты, разрешаю часть из них, в т.ч. локальные (юзерскрипты). После этого при любом заходе на name.com всё что нужно (в т.ч. юзерскрипт для name.com) работает. По-моему примерно такой должен быть процесс при NoScript. Если теперь процесс выглядит иначе и содержит больше неудобств, может быть опять виноваты новые ограничения Quantum. |
такой возможности нет, в uMatrix такого пункта нет, он ничего о юзерскриптах не знает. как насчёт NoScript - не знаю (и знать не хочу). |
Проблема случилась на 84.0, фикс помог. Причем до сегодняшнего дня всё работало. |
Начиная с версии 210313 значение параметра |
Удаление инструкций, ведущих на уже исправленный и закрытый #29
Если вы пользуетесь Firefox версии 57 и выше, скорее всего вы заметите проблему в работе скрипта: иногда скрипт может не подгружаться корректно. После обновления страницы скрипт подгрузится.
Для этой проблемы есть временное решение:
1. В панели расширения откройте меню редактирования скрипта:
Violentmonkey
Tampermonkey
(Кликнуть правой кнопкой мыши)
Greasemonkey
2. В редакторе удалите следующую строку:
(Эта строка находится в самом начале)
3. Сохраните изменения нажатием Ctrl+S.
4. Когда скрипт обновится, повторите действия из пунктов 1-3.
До тех пор, пока данная проблема не будет исправлена в очередных обновлениях Firefox, стоит проделывать данные действия после каждого обновления скрипта.
Когда данная проблема будет исправлена разработчиками Firefox (после этого также потребуется обновление расширения для userscript), просто переустановите скрипт или верните данную строку на исходное место.
Вопросы и ответы:
- В чём суть проблемы?
Начиная с версии 57 браузер Firefox использует новый движок (Quantum), в котором пока не реализован механизм немедленной подгрузки скриптов перед загрузкой страниц. Из-за этого все текущие расширения для поддержки userscript подвержены данной проблеме - скрипты со свойством @run-at document-start не всегда корректно подгружаются.
Более подробные сведения и оперативную информацию можно найти здесь.
- Зачем нужно это свойство @run-at? Почему бы его просто не использовать?
Его можно отключить, что и предложено выше в качестве временного решения проблемы. Отключать его в очередном обновлении скрипта для всех пользователей некорректно:
Данное свойство означает немедленную подгрузку скрипта. Если его отключить, скрипт будет подгружаться только после того, как браузер загрузит страницу полностью. Если страница будет загружаться медленно или часть ресурсов (на которых располагаются элементы страницы) будет заблокирована, пауза перед подгрузкой скрипта может быть значительной.
Данной проблеме подвержен только браузер Firefox последних версий. Доля его пользователей недостаточно велика.
В будущем данная проблема может быть исправлена. Отслеживать данную ситуацию и оперативно выпустить обновление скрипта ради такого события может быть затруднительно.
- Почему вместо этого не выпустить исправленную версию скрипта для Firefox?
Гораздо важнее то, что нельзя выпустить одну версию скрипта, которая бы адаптировалась под разные браузеры (не убирая свойство @run-at document-start).
Отдельную версию для Firefox всегда можно сделать. Это несколько усложнит жизнь как пользователям, так и разработчику. Кроме того, нельзя автоматически распространить такое исправление всем пользователям Firefox, если они один раз самостоятельно не установят версию скрипта с данным исправлением.
Я счёл нужным опубликовать данное объявление. Перед тем как вносить изменения в скрипт или создавать дополнительную его версию, стоит вынести на обсуждение вопрос о необходимости таких действий. Предлагаю обсудить это здесь.
The text was updated successfully, but these errors were encountered: