Bug 40364 - Значения макросов %firefox_*_extensionsdir не соответствует текущему firefox'у
Summary: Значения макросов %firefox_*_extensionsdir не соответствует текущему firefox'у
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: firefox (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-03 00:52 MSK by Nikolay A. Fetisov
Modified: 2021-07-16 22:29 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolay A. Fetisov 2021-07-03 00:52:19 MSK
В rpm-build-firefox-89.0.2-alt1 предполагается установка расширений в каталоги,
определяемые макросами %firefox_arch_extensionsdir и %firefox_noarch_extensionsdir,
т.е. в %_libdir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} и
%_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} соответственно.

Firefox 89.0.2 при запуске к этим каталогам не обращается, и их содержимое
не подключает. Вместо них он обращается к каталогу 
%_libdir/firefox/distribution/extensions/ , причём каталог 
%_libdir/firefox/distribution/ в пакете firefox есть, а вот
%_libdir/firefox/distribution/extensions/ там отсутствует.

В случае создания каталога %_libdir/firefox/distribution/extensions/ и размещения
в нём расширений они определяются и подключаются.

Ну а имеющиеся сейчас в репозитории расширения firefox-* использоваться браузером не могут.
Comment 1 Alexey Gladkov 2021-07-09 17:52:41 MSK
Описанные директории продолжают поддерживаться firefox. Если это не так в пакете, то это ошибка.
Comment 2 Nikolay A. Fetisov 2021-07-09 18:42:18 MSK
(Ответ для Alexey Gladkov на комментарий #1)
> Описанные директории продолжают поддерживаться firefox. Если это не так в
> пакете, то это ошибка.

Чистая система, свежепоставленный firefox.

$ rpm -aq |grep firefox
firefox-89.0.2-alt1.aarch64

$ strace -f firefox &>/tmp/strace

Ждём запуска, закрываем.

$ grep extensions /tmp/strace 
[pid 44414] mkdirat(AT_FDCWD, "/home/naf/.mozilla/extensions", 0700) = -1 EEXIST (Файл существует)
[pid 44414] openat(AT_FDCWD, "/usr/lib64/firefox/distribution/extensions", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
[pid 44414] faccessat(AT_FDCWD, "/usr/lib64/firefox/distribution/extensions", F_OK) = -1 ENOENT (Нет такого файла или каталога)
[pid 44414] mkdirat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev", 0700) = -1 EEXIST (Файл существует)
[pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 44414] faccessat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", F_OK) = 0
[pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
[pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev",  <unfinished ...>
[pid 44414] faccessat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", F_OK) = 0
[pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0

$ grep ec8030f7-c20a-464f-9b0e-13a3a9e97384 /tmp/strace 
<пусто>

Могу проверить ещё на x86_64/i586, но как минимум на ARM64 Firefox сейчас не смотрит
в %_libdir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} и
%_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384},
а %_libdir/firefox/distribution/extensions/, наоборот, проверяет.

Ну и можно положить какое-либо-расширение.xpi в эти каталоги - загружать его 
Firefox будет из %_libdir/firefox/distribution/extensions/ .
Comment 3 Nikolay A. Fetisov 2021-07-12 12:03:11 MSK
Поведение текущего Firefox, по-видимому, следующее:

- расширения размещаются и используются только из каталога расширений пользователя,
  в ~/.mozilla/firefox/*/extensions/ ,
- дистрибутивные расширения ищутся в %_libdir/firefox/distribution/extensions/ ,
- при запуске Firefox все расширения из %_libdir/firefox/distribution/extensions/
  копируются в каталог расширений пользователя,
- и то, что было скопировано - запоминается в профиле пользователя,
- свои копии дистрибутивных расширений пользователь может обновлять или удалять
  как и добавленные им самим расширения,
- удалённые пользователем копии дистрибутивных расширений при новом запуске
  Firefox'а из системного каталога не восстанавливаются,
- новые расширения из дистрибутивного каталога при новом запуске Firefox
  копируются в каталог пользователя и подключаются в его профиль,
- обновления расширений в системном каталоге при запуске Firefox копирются
  в каталог пользователя,
- и расширения - это архивы <id>.xpi, где id - это идентификатор из manifest.json.
  Развёрнутые архивы расширений больше не используются.

С символьной ссылкой %_libdir/firefox/distribution/extensions/ -> %_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/ Firefox работает нормально.
Архитектурно-зависимых расширений, использующих %mozilla_arch_extdir и его производные
в Sisyphus не видно.
Comment 4 Repository Robot 2021-07-16 22:29:33 MSK
firefox-90.0-alt1 -> sisyphus:

 Tue Jul 13 2021 Alexey Gladkov <legion@altlinux.ru> 90.0-alt1
 - New release (90.0).
 - Move rpm-build-firefox from firefox to separate package.
 - Security fixes:
   + CVE-2021-29970: Use-after-free in accessibility features of a document
   + CVE-2021-29971: Granted permissions only compared host; omitting scheme and port on Android
   + CVE-2021-30547: Out of bounds write in ANGLE
   + CVE-2021-29972: Use of out-of-date library included use-after-free vulnerability
   + CVE-2021-29973: Password autofill on HTTP websites was enabled without user interaction on Android
   + CVE-2021-29974: HSTS errors could be overridden when network partitioning was enabled
   + CVE-2021-29975: Text message could be overlaid on top of another website
   + CVE-2021-29976: Memory safety bugs fixed in Firefox 90 and Firefox ESR 78.12
   + CVE-2021-29977: Memory safety bugs fixed in Firefox 90
 Fri Jul 09 2021 Alexey Gladkov <legion@altlinux.ru> 89.0.2-alt2
 - Enable searching system- and account-global directories for extensions (ALT#40364).