Я столкнулся со странной проблемой. Когда я включил UBlock Origin в Pale Moon, чтобы заблокировать все скрипты (включая inline-скрипты), веб-страница Twitter как-то показывает следующее неприятное поведение:

  1. Это не показывает контекстное меню при щелчке правой кнопкой мыши (но двойной щелчок правой кнопкой вызывает его).

  2. Многие стандартные клавиши не работают, включая Up/Down/PgUp/PgDn и F5 и Backspace и Alt+Left/Right/Home. Ctrl+W не закрывает вкладку, а Ctrl+T не вызывает новую вкладку (но Ctrl+Tab работает).

Я подтвердил, что это связано с блокировкой скриптов Twitter, потому что у меня есть два других аддона (одно из которых AdBlock Lite), которые блокируют загрузку скриптов через NsIContentPolicy, оба из которых утверждают, что успешно блокируют:

Но не блокируйте

Я подозреваю, что UBlock Origin также не может блокировать некоторые скрипты, которые захватывают мышь и некоторые сочетания клавиш. Когда все три надстройки отключены для Twitter, вышеуказанное неприятное поведение исчезает.

У меня даже есть сценарий Greasemonkey, установленный на @run-at document-start и stopImmediatePropagation для любого события нажатия клавиши , но он не может предотвратить взлом клавиатуры.

Мои вопросы

  1. Я вижу, что первый JS-файл, который явно заблокирован, связан с <script> , а не только с <link> . Так что я предполагаю, что NsIContentPolicy не работает для тегов <link> (особенно с атрибутом rel='preload'?). Буду признателен, если кто-нибудь сможет объяснить, что происходит.

  2. Есть ли способ, которым я могу иметь 100% гарантию блокировки всех скриптов от запуска, если я не внесу их в белый список на индивидуальной основе?

Мобильная версия Twitter прекрасно работает и не угоняет мышь и клавиатуру.

1 ответ1

1

Наконец-то у меня было время вернуться к этому. Я использовал сценарий GreaseMonkey, чтобы внедрить прослушиватель событий для beforescriptexecute для предотвращения загрузки всех сценариев, и обнаружил, что UBlock Origin (1.9.6) не может блокировать выполнение встроенных сценариев на веб-странице Twitter. Поэтому я, по сути, ответил на свой вопрос:

  1. Проблема была в UBlock Origin, а не в тегах <link rel="preload" ...> .

  2. Используя этот сценарий GM, я могу легко заблокировать все сценарии и, в частности, белый список любого, который я хочу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .