Open zanud opened 1 week ago
Да, и ещё: По ходу экспериментов с PNG-значками выяснилось, что Mypal во вкладке дополнений использует значки размера 32x32, хотя Mozilla на своём сайте заявляет, что должно быть 48x48:
Вы должны указать по крайней мере одну главную иконку, в идеале размером 48х48 пикселей. Эта иконка будет использоваться по умолчанию в Менеджере Дополнений.
https://developer.mozilla.org/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons
Или это от разрешения экрана зависит? Но в соседней вкладке отладки дополнений значки 48x48...
Добиться видимости SVG-значка удалось, немного подредактировав его.
Для начала по заветам Мозиллы пересохранил его в формате Plain SVG. Не помогло. Потом проверил на соответствие требованию:
В файле изображения должен быть определён viewBox. Например:
<svg viewBox="0 0 48 48" width="48" height="48" ...
(https://developer.mozilla.org/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons#svg)
viewBox есть, но с размером 128: viewBox="0 0 128 128"
И тут я на всякий случай решил уменьшить размер viewBox. Для начала - до того размера в 32, который Менеджер дополнений использует. И значок появился!
Я в недоумении:
Экспериментирую дальше. Задаю viewBox размером 48 - значок показывается. Задаю 96 - тоже показывается. А при 128 уже не показывается.
Так что решение моей проблемы вроде и найдено, но оно - всего лишь обход проблемы, имеющейся в браузере.
Ага, ещё немного поизучал внутренности тех SVG, которые наплодить успел, и выяснил, что не в размере дело. Теперь у меня и с viewBox="0 0 128 128"
показывает.
А настоящей причиной оказалось то, что в исходном файле отсутствовали параметры width="128"
и height="128"
. (О том, что они необходимы, Mozilla не пишет. Точнее, она об этих параметрах вообще ничего не пишет.) Тупо прописал их в файл вручную, и картинка появилась. (А во время прошлых экспериментов её не было, потому что InkScape при простом пересохранении в Plain SVG их не добавлял, а делал это позже, когда я уже и viewBox менял.)
Тоже, в общем-то, дефект браузера, потому что width и height элементарно вычисляются из viewBox. И одновременно с этим и кнопка дополнения, и его значок во вкладке отладки отрисовываются нормально даже из исходного файла без каких-либо моих изменений. Хотя код работы с SVG, по идее, во всех этих местах один и тот же.
На вкладке "Add-ons Manager" не отображается значок дополнения, если он в формате SVG. Строчки с названием и описанием дополнения в этом случае сдвинуты влево относительно их нормального места: (На жёлтое предупреждение внимание можно не обращать: оно из-за отсутствия цифровой подписи, но и при её наличии значка тоже нет.) При всём при этом во вкладке отладки дополнений SVG-значок показывается:
Пошёл проверять, воспроизводится ли проблема в чистом профиле. Воспроизводится. Тогда решил заменить SVG-значок на PNG. И тут началась феерия: Сразу после установки дополнения в строке с ним появляется странная синяя полоса: Это progress bar заклинило, или что? Если в этот момент обновить страницу, нажав F5, то картинка становится нормальной: А если нажать не F5, а крестик в той синей полосе, то окно становится вот таким: хотя дополнение установлено и работает, о чём свидетельствует его значок в правом верхнем углу окна. И если теперь нажать F5, то дополнение в списке установленных появляется (как одной картинкой выше).
На всякий случай обращаю внимание: вторая проблема обнаружена на абсолютно новом профиле. После каждой установки дополнения я закрывал браузер, удалял профиль и заново запускал браузер. Воспроизводимость проблемы - примерно девять раз из десяти. И примерно раз из десяти установка заканчивалась нормально, без синей полосы.