Skip to content
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

Не работают дополнения, установленные из каталога. #526

Open
zanud opened this issue Oct 6, 2024 · 10 comments

Comments

@zanud
Copy link

zanud commented Oct 6, 2024

Многие (если не все) знают, что дополнения можно устанавливать не только скачиванием с сайтов, но и из файлов .xpi, сохранённых на диске.

Но для разработчиков дополнений предусмотрен ещё один способ: в режиме отладки ("Инструменты" > "Дополнения" > "Отладка дополнений") можно устанавливать и распакованные (точнее, не упакованные в .xpi) дополнения.

Только вот оказалось, что в Mypal такие дополнения хоть и устанавливаются, но нихрена не работают: дополнение в списке установленных появляется, появляется даже его кнопка в интерфейсе браузера, если она кодом дополнения предусмотрена, но в то же время сразу при установке в консоли появляется сообщение:

Loading failed for the <script> with source “moz-extension://временный_GUID_дополнения/имя_файла.js”

А если нажать на появившуюся кнопку, то вместо того, что в норме должно появиться при нажатии на эту кнопку, пользователю на экран выдаётся:

The file at view-source:moz-extension://временный_GUID_дополнения/имя_файла.html is not readable.

It may have been removed, moved, or file permissions may be preventing access.

При этом те же самые дополнения, установленные в том же самом режиме отладки но из .xpi, прекрасно работают.

@Feodor2
Copy link
Owner

Feodor2 commented Oct 9, 2024

Я проверил на вораписе и так и так работает, хотя перематывать видео не получается.
имхо file permissions may be preventing access

@zanud
Copy link
Author

zanud commented Oct 9, 2024

Я проверил на вораписе и так и так работает, хотя перематывать видео не получается.

У меня как и раньше: при установке из скачанного архива Vorapis работает, а при установке из каталога (распакованного архива) - нет. И когда на кнопку нажимаю, под ней пишет: "В доступе к файлу отказано. Файл moz-extension://e210d3bb-9020-4fc1-876a-068aa021a3b5/popup_placeholder.html не может быть прочитан."

имхо file permissions may be preventing access

Если имеются в виду разрешения файловой системы, то исключено - это же мои собственные файлы, которые я сам только что создал, распаковав архив под тем же самым пользователем Windows, под которым и браузер запускаю.

Может, какие-то дефолтные настройки браузера влиять могут? Причём именно дефолтные, потому как на чистом профиле всё то же самое происходит.

@zanud
Copy link
Author

zanud commented Oct 9, 2024

На всякий случай добавлю: на вкладке отладки дополнений вверху на рыжем фоне написано предупреждение:

! Конфигурация вашего браузера не совместима с Service Workers.

Нормально ли это и может ли быть связано с обсуждаемой проблемой?


Почитал, что пишет Mozilla по поводу данного предупреждения, переключил в about:config dom.serviceWorkers.enable с дефолтного false на true. Предупреждение исчезло, проблема осталась.

@zanud
Copy link
Author

zanud commented Oct 10, 2024

Чтобы окончательно подтвердить или опровергнуть предположение о влиянии прав доступа NTFS, я проследил за происходящим с помощью микрософтовского Process Monitor (на примере распакованного Simple Proxy Toggle).

Итак. На этапе установки браузер просматривает каталоги и читает все нужные ему файлы. Результаты всех просмотров и чтений - SUCCESS. Кнопка дополнения в верхнем углу браузера появляется. Когда я нажимаю эту кнопку, браузер опять лезет в каталог с распакованным дополнением, но читать там ничего даже не пытается! Вот:
PT
Думаю, он просто проверяет, не изменил ли я там чего после запуска дополнения.

Обращаю внимание, что на картинке - только перебор каталогов, а единственный файл, которым браузер там интересуется, - pt-popup.html. В этом файле находится то, что браузер должен показать пользователю при нажатии кнопки дополнения. Но показывает он мне вместо ожидаемой менюшки сообщение об ошибке:

Access to the file was denied

The file at moz-extension://12bb952d-55ce-47ca-9cb2-06e3869c54f0/src/pt-popup.html is not readable.

It may have been removed, moved, or file permissions may be preventing access.

Обращаю внимание: здесь указан тот самый файл pt-popup.html, который при старте дополнения был успешно прочитан, а при нажатии кнопки успешно подтверждён.

Так что файловая система точно не при делах.

@zanud
Copy link
Author

zanud commented Oct 10, 2024

И ещё одну вещь я обнаружил с помощью Process Monitor. Она не критична, но заставляет поморщиться и даже немного напрячься.

Оказывается, при старте дополнения Mypal перебирает абсолютно все подкаталоги его каталога _locales и читает содержимое абсолютно всех файлов, которые там найдёт.

Зачем? Для работы дополнения нужно же содержимое только одного каталога.

А так мы получаем, как минимум, напрасную трату времени. А как максимум (и что-то заставляет меня подозревать, что так оно и есть) - ещё и напрасный расход оперативной памяти на постоянное удержание в ней всех этих ненужных языков.

@Feodor2
Copy link
Owner

Feodor2 commented Oct 20, 2024

Я устанавливал разные дополнения и на чистом профиле, все работали, Simple Proxy Toggle в том числе, так что не знаю. Насчёт языков нужно копать, не собираюсь это делать не до этого, для начала можеш удалить их чтобы проверить сидят ли они все в памяти, если нет, то ещё меньше смысла вникать в это.

@zanud
Copy link
Author

zanud commented Oct 20, 2024

Сначала я на это напоролся на своём рабочем профиле. Потом проверил, что и на новом воспроизводится. А потом, чтобы по максимуму исключить внешнее влияние, делал так: распаковал zip с Mypal в новый каталог и запускал оттуда в "портативном" режиме: mypal.exe --profile Profile (регулярно удаляя каталог Profile).

Теоретически, остаётся ещё влияние реестра, но Mypal же там ничего такого не содержит.

Так что тут, скорее, вопрос к тебе, как автору: что может вызывать такое разное поведение одной и той же программы на двух разных машинах?

@Feodor2
Copy link
Owner

Feodor2 commented Oct 20, 2024

делал так: распаковал zip с Mypal в новый каталог и запускал оттуда в "портативном" режиме

А само дополнение распаковывать в другое меcто? типа флешку фат32 то по максимуму исключить внешнее влияние

скорее, вопрос к тебе, как автору:

Ага автору, может 0,001% да, а разбираюсь как работает может в 5%.

@zanud
Copy link
Author

zanud commented Oct 20, 2024

А само дополнение распаковывать в другое меcто? типа флешку фат32 то по максимуму исключить внешнее влияние

Я пробовал распаковывать в новый каталог, созданный в корне диска C:. Пробовал даже давать этому каталогу и всему его содержимому права доступа "Полный доступ" для группы "Все" (хотя я и так админ).

На FAT32 сейчас попробую. Нужно только сообщение в соседней теме дописать и браузер закрыть, чтобы отдельную чистую копию запустить.

@zanud
Copy link
Author

zanud commented Oct 20, 2024

Итак:
Распаковал Mypal в свежесозданный каталог в корне диска C:.
Распаковал Simple Proxy Toggle в каталог в корне флешки с FAT32.
Запустил mypal.exe --profile Profile. (Каталог "Profile" при этом, естественно, свежайший - его сам Mypal при старте создал.)

Всё повторилось: Simple Proxy Toggle не работает.

Но вот ещё какое наблюдение сделал в этот раз:

Запускаю новенький Mypal с новеньким профилем, но при нажатии на кнопку "Установить временное дополнение" окно выбора файла открывается на том каталоге, откуда я устанавливал дополнение в прошлый раз!

Вот откуда Mypal эту информацию берёт? Я удалял из Application Data и Local Settings\Application Data каталоги Mypal68, прошерстил реестр Windows и поудалял оттуда абсолютно все упоминания об этом каталоге - ничего не помогло, каждый раз Mypal предлагает мне загрузить дополнение именно из каталога, использованного в прошлый раз.

Он что, куда-то в Интернет эту информацию сливает и потом оттуда подсасывает?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants