Faz alguns dias O Chrome enviou uma mudança a todos os usuários do branch estável do navegador que, por padrão, ativa um novo código para organizar a saída em sistemas com um servidor X, com base no uso de uma camada chamada «ozônio» que abstrai a interação com o subsistema gráfico.
Usando Ozônio permite fornecer suporte para X11 e Wayland na mesma construção do Chrome, sem estar vinculado a um subsistema gráfico específico.
Sobre Ozônio
O ozônio é uma camada de abstração da plataforma abaixo do sistema de janelas Aura que é usado para entrada e gráficos de baixo nível, portanto, a abstração suporta sistemas subjacentes que variam de alvos SoC integrados a novos sistemas alternativos de janelas para X11 no Linux como Wayland ou Mir para exibir Aura Chromium fornecendo uma implementação de interface da plataforma.
Uma vez que se deseja que o Chrome seja usado em uma ampla variedade de projetos, um trabalho está sendo feito para facilitar a migração para novas plataformas.
Para apoiar esse objetivo, o Ozônio segue os seguintes princípios:
- Interfaces, não ifdefs: as diferenças entre as plataformas são tratadas chamando um objeto fornecido pela plataforma por meio de uma interface em vez de usar compilação condicional. Os componentes internos da plataforma permanecem encapsulados e a interface pública atua como um firewall entre as camadas neutras superiores da plataforma (aura, flicker, conteúdo, etc.) e as camadas específicas da plataforma inferior.
- Interfaces flexíveis: as interfaces da plataforma devem encapsular exatamente o que o Chrome precisa da plataforma, com restrições mínimas na implementação da plataforma, bem como restrições mínimas no uso das camadas superiores.
- Tempo de execução para todas as plataformas: para evitar a compilação condicional nas camadas superiores, ele nos permite construir várias plataformas em um binário e vinculá-las em tempo de execução.
- Ramificação simples - muitas portas começam como bifurcações e muitas delas posteriormente mesclam seu código upstream, outras terão uma longa vida útil fora da árvore. Isso é bom e devemos facilitar esse processo para incentivar os garfos.
É por isso que a independência das peculiaridades da construção de uma interface gráfica em vários sistemas operando no Chrome ele é implementado usando sua própria pilha de gráficos de plataforma cruzada Aura. O Aura atua como um gerenciador de janelas (shell Aura), executando através de seu próprio servidor composto e usando as ferramentas GPU disponíveis para acelerar as operações gráficas.
Para gerar elementos de interface, o kit de ferramentas de gráficos Aura UI é usado, que fornece seu próprio conjunto de widgets, diálogos, controles e manipuladores de eventos. Dos recursos subjacentes da pilha de gráficos (X11, Wayland, Cocoa ou Windows), apenas a saída na parte superior da janela raiz é usada.
Todas as operações específicas com a pilha de gráficos do Linux se resumem a uma camada ozônio abstrato facilmente substituível. Até agora, o suporte ao Ozone foi fornecido na forma de uma opção e o padrão é o backend antigo, codificado em X11.
O trabalho de tradução dos builds do X11 para usar a camada de ozônio vem acontecendo desde 2020 e, para os usuários, a inclusão gradual do back-end Ozone / X11 por padrão começou com o lançamento do Chrome 92.
Ou seja, há alguns dias, o novo back-end foi ativado para todos os usuários do Chrome Linux. Além de X11 e Wayland ("–ozone-platform = wayland" e "–ozone-platform = x11"), a Ozone também desenvolve plataformas para saída por meio de drivers gráficos KMS / DRM, saída de gráficos ASCII usando a biblioteca libcaca, renderização em PNG imagens (sem cabeça) e streaming via dispositivos Chromecast.
Finalmente, é mencionado que o backend acima é planejado, que só suporta trabalho apenas com o X11, será descontinuado e eventualmente removido da base de código (Depois que o novo back-end Ozone / X11 atingiu a paridade de funcionalidade e a habilitou por padrão, não havia sentido em manter outro back-end X11 no navegador.)
fonte: https://chromium.googlesource.com