Estou usando muito meu laptop para videoconferências e, de alguma forma, minha webcam parou de funcionar no Firefox há alguns dias. Acredito que cliquei em "desautorizar" na pergunta de permissão do sistema, mas não tenho certeza sobre isso.
Alguém pode me ajudar a fazer minha webcam voltar a funcionar sem que eu precise reinstalar o sistema inteiro?
A primeira coisa que tentei foi reiniciar, como é tradição.
Aqui está o ambiente:
- Laptop incluindo uma webcam UVC padrão.
- Fedora Linux 41, Gnome 47, Pipewire 1.2.7-1.fc41 todos atualizados para versões atuais.
- Firefox do RPM, atualmente em 133.0.3.
Aqui está o que funciona :
- A webcam funciona perfeitamente em outros softwares (Chromium não pesquisado no Google, OBS, programa "Câmera" do Gnome).
- Mesmo no Firefox, ainda consigo transmitir o conteúdo da minha tela.
- Posso descompactar uma versão do Firefox do FTP da Mozilla , executar o binário e usar minha webcam sem problemas.
Aqui está o que costumava funcionar :
- A webcam funcionava no Firefox até talvez cinco dias atrás. Eu a usava com o BigBlueButton e outras ferramentas baseadas na web o tempo todo.
Aqui estão algumas coisas que já verifiquei no Firefox :
- Isso não funciona em nenhum domínio, não é um simples "neguei aquele site".
- Verifiquei duas vezes as configurações de permissão de câmera do Firefox, incluindo os domínios e todas as caixas de seleção em
about:settings#privacy
. A lista de sites agora está vazia e está definida para permitir a solicitação de permissões. - Tentar obter qualquer informação sobre os dispositivos de mídia relacionados a vídeo em JavaScript no console JavaScript do navegador falha instantaneamente. Ao mesmo tempo, obter dispositivos de áudio leva ao padrão "o navegador pede permissões" e, por fim, leva ao resultado esperado para esse tipo de mídia.
- Tentei definir
about:config
a configuraçãomedia.webrtc.camera.allow-pipewire
parafalse
, como sugerido por uma discussão similar e recente . Essa discussão não é totalmente aplicável porque eles se referem a uma câmera virtual v4l2-loopback, não a um dispositivo UVC real. - Criei um novo perfil vazio com
firefox -no-remote -ProfileManager
, nesse perfil o comportamento continua o mesmo.
Aqui estão algumas coisas que já verifiquei no resto do sistema :
- O Firefox é instalado a partir do rpm, não do flatpak
- Configurações -> Privacidade -> Câmeras é configurado de uma forma que geralmente permite acesso e também permite especificamente o acesso do Firefox à câmera. Eu também alternei esse botão de vez em quando para garantir.
- Dei uma olhada em todos os clientes, dispositivos e fontes do pipewire com
wpctl status
ewpctl inspect $id
para todos os ids envolvidos. Aqueles que têm opipewire.access
, exibem comounrestricted
. - Tentei ler
dbus-monitor --session
, mas fiquei bastante sobrecarregado com o volume de registros e não sei realmente o que procuraria ali. - Tentei ler
pw-mon
, mas nada em particular se destacou. - Verifiquei as políticas do dbus
~/.local/share/dbus-1/services/
, mas meu usuário nem sequer tem esse diretório específico. - Pedi ao dbus câmeras com
dbus-send --print-reply --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.DBus.Properties.Get string:"org.freedesktop.portal.Camera" string:"IsCameraPresent"
onde ele retornouvariant boolean true
. - Perguntei ao dbus o valor de
org.freedesktop.impl.portal.PermissionStore.Lookup
e ele retornou como({'': ['no'], 'org.gnome.Snapshot': ['yes'], 'org.mozilla.firefox': ['yes']}, <byte 0x00>)
. - Perguntei ao SELinux se havia algo específico acontecendo
sudo semanage boolean --list | grep mozilla
, mas todas as configurações estão nos padrões.
Usar
dbus
neste caso revelou a peça-chave do quebra-cabeça.A chamada
org.freedesktop.impl.portal.PermissionStore.Lookup
retornou('devices', 'camera')
esta linha:Não está claro como ele
'': ['no']
entrou lá, mas provavelmente ainda negou ao Firefox o acesso desejado à câmera.Depois de chamar
org.freedesktop.impl.portal.PermissionStore.DeletePermission
e('devices', 'camera', '')
fazer oLookup
procedimento acima mais uma vez, a saída foi:Na minha próxima tentativa de acessar a câmera, recebi a pergunta do Portal do GNOME ("você quer deixar o Firefox acessar sua webcam?" ou algo parecido) e aceitar isso me devolveu o suporte à câmera!
Agradecimentos enormes a @sheogorath que me ajudou com a parte do dbus e, portanto, forneceu a peça-chave do quebra-cabeça e a solução final! Também agradeço a Maximiliano do projeto gnome por este post que ajudou imensamente .