何日か前に Chromeは、ブラウザの安定したブランチのすべてのユーザーに変更を送信しました これは、デフォルトでは、 Xサーバーを備えたシステムで出力を整理するための新しいコードをアクティブ化します、の使用に基づく «オゾン»と呼ばれる層 これは、グラフィカルサブシステムとの相互作用を抽象化します。
オゾンの使用 同じChromeビルドでX11とWaylandのサポートを提供できます、特定のグラフィックサブシステムに縛られることなく。
オゾンについて
オゾンは、Auraウィンドウシステムの下にあるプラットフォーム抽象化レイヤーです。 これは入力および低レベルのグラフィックスに使用されるため、抽象化は、組み込みのSoCターゲットから、新しい代替ウィンドウシステム、WaylandやMirなどのLinux上のX11に至るまでの基盤となるシステムをサポートし、プラットフォームのインターフェイス実装を提供することでAuraChromiumを表示します。
Chromeはさまざまなプロジェクトで使用されることが望まれるため、新しいプラットフォームへの移行を容易にするための作業が行われています。
この目標をサポートするために、オゾンは次の原則に従います。
- ifdefではなくインターフェース:プラットフォーム間の違いは、条件付きコンパイルを使用する代わりに、インターフェースを介してプラットフォームが提供するオブジェクトを呼び出すことによって処理されます。 プラットフォームの内部コンポーネントはカプセル化されたままであり、パブリックインターフェイスは、プラットフォームの中立的な上位層(オーラ、フリッカー、コンテンツなど)とプラットフォーム固有の下位層の間のファイアウォールとして機能します。
- 柔軟なインターフェース:プラットフォームインターフェースは、プラットフォームの実装に関する最小限の制限と、上位層の使用に関する最小限の制限を使用して、Chromeがプラットフォームから必要とするものを正確にカプセル化する必要があります。
- すべてのプラットフォームのランタイム:上位層での条件付きコンパイルを回避するために、XNUMXつのバイナリで複数のプラットフォームを構築し、実行時にそれらをリンクすることができます。
- 単純な分岐-多くのポートはフォークとして開始され、それらの多くは後でコードをアップストリームにマージしますが、他のポートはツリーの外側で長い寿命を持ちます。 これは問題ありません。フォークを奨励するために、このプロセスを促進する必要があります。
それが理由です さまざまなシステムでグラフィカルインターフェイスを構築する際の特性の独立性 Chromeで動作 独自のAuraクロスプラットフォームグラフィックスタックを使用して実装されます。 Auraはウィンドウマネージャー(Auraシェル)として機能し、独自の複合サーバーを介して実行され、利用可能なGPUツールを使用してグラフィカル操作を高速化します。
インターフェイス要素を生成するには、 AuraUIグラフィックツールキットが使用されています。 これは、独自のウィジェット、ダイアログ、コントロール、およびイベントハンドラーのセットを提供します。 基盤となるグラフィックスタック機能(X11、Wayland、Cocoa、またはWindows)のうち、ルートウィンドウの上部にある出力のみが使用されます。
Linuxグラフィックスタックを使用した特定の操作はすべてXNUMXつのレイヤーに削減されます 簡単に交換可能な抽象的なオゾン。 これまでのところ、オゾンのサポートはオプションの形で提供されており、デフォルトはX11でエンコードされた古いバックエンドです。
X11ビルドをオゾン層を使用するように変換する作業は2020年から行われており、ユーザーの場合、デフォルトでオゾン/ X11バックエンドが段階的に組み込まれるのはChrome92のリリースから始まりました。
つまり、数日前に、すべてのChromeLinuxユーザーに対して新しいバックエンドがアクティブ化されました。 X11とWayland( "–ozone-platform = wayland"と "–ozone-platform = x11")に加えて、Ozoneは、KMS / DRMグラフィックドライバーを介した出力、libcacaライブラリを使用したASCIIグラフィック出力、PNGへのレンダリング用のプラットフォームも開発しています。画像(ヘッドレス)とChromecastデバイスを介したストリーミング。
最後に、 上記のバックエンドが計画されています、X11を介した作業のみをサポートします。 非推奨になり、最終的にコードベースから削除されます (新しいオゾン/ X11バックエンドが機能的に同等に達し、デフォルトで有効にした後、ブラウザーに別のX11バックエンドを保持する意味はありませんでした。)
出典 https://chromium.googlesource.com