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.