maxVersion в Firefox Add-on не применяется?
У меня есть надстройка Firefox (не распространяется через AOD), которая должна была быть активной (в этой версии) только с Firefox до версии 50, ср. Этот фрагмент из моего install.rdf:
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>35.0</em:minVersion>
<em:maxVersion>50.0</em:maxVersion>
</Description>
</em:targetApplication>
Я предполагал, что, когда пользователь обновит Firefox 51, это дополнение будет автоматически отключено (по крайней мере, до тех пор, пока дополнение не будет обновлено). Однако я заметил, что это не так: надстройка все еще была активна даже после перезапуска Firefox (что произошло во время обновления в любом случае).
Что-то не так с версионированием, которое я сделал?
1 ответ
maxVersion
свойство игнорируется, если вы не установите strictCompatibility
:
<em:strictCompatibility>true</em:strictCompatibility>
MDN говорит следующее о strictCompatibility
:
Логическое значение, указывающее, должна ли быть включена надстройка, когда версия приложения превышает его максимальную версию. По умолчанию значение этого свойства равно false, что означает, что проверка совместимости не будет выполняться для максимальной версии.
Обычно нет необходимости ограничивать совместимость: не все новые выпуски будут нарушать ваше расширение, и, если оно будет размещено в AMO, вы получите уведомление за несколько недель, если будет обнаружен потенциальный риск. Более того, отключение расширения даже на короткое время приводит к плохому взаимодействию с пользователем. Единственный раз, когда вам нужно установить это, если ваше дополнение делает вещи, которые могут быть повреждены обновлениями Firefox. Вам не нужно устанавливать этот флаг, если ваша надстройка имеет бинарный компонент, поскольку надстройки с бинарными компонентами всегда подвергаются строгой проверке совместимости (потому что бинарные компоненты в любом случае необходимо перестраивать для каждого основного выпуска приложения).
Я обновил targetApplication
раздел страницы Install Manifests на MDN, чтобы заявить, что strictCompatibility
требуется для maxVersion
не быть проигнорированным Хотя это взаимодействие было указано в strictCompatibility
раздел, приведенный выше текст не является чем-то, что может быть найдено кем-то, только проверяющим, что нужно для maxVersion
,
Я подозреваю, что эта ситуация возникла из-за эволюции файла instal.rdf и способа обработки maxVersion
со временем эволюционировал. К сожалению, это привело к ситуации, когда недвижимость, maxVersion
требуется, но игнорируется.
Эквивалентом этого в WebExtension является "applications": {"strict_max_version": "50.*",
, strict_max_version
значение применяется для расширений WebExtensions.