Chromium 151.0.7922.71 ベース。build1 と同じエンジン基盤で、版の名乗りと版面メトリクスの公開が入っています。
このビルドで加わったもの
版が正しく名乗られる (#129)
これまで: BlinkGTK/0.1.0 Chrome/143.0.0.0
本版: BlinkGTK/1.2.0 Chrome/151.0.0.0
navigator.userAgent が固定文字列で、エンジンを更新しても追従していませんでした。8 メジャー版古い版を名乗っていたことになります。「古い版を名乗って安全側」ではなく、実際にある機能を無いと判定される方向の誤りです。
版は blink_gtk_get_version() / blink_gtk_get_chromium_version() と同じ単一ソースから出ます。
縦書き版面の実測値を JavaScript から読める (#113)
window.__blinkgtk.verticalFlowMetrics(element)
// → { stride, originX, contentWidth, columnCount, lineCount, generation,
// lines: [{ inlineSize, blockOffset, columnIndex, hasHanging }] }columnIndex はエンジン内部の列添字そのもので、座標比較の結果ではありません。境界ちょうどの行が 1 列ずれる誤りが原理的に起きません。
起動時に --enable-blink-features=CJKVerticalColumnFragmentation が必要です。無効時は window.__blinkgtk 自体が生えないので typeof で検出できます。
制限: 対象要素そのものが「縦書き かつ multicol」である必要があります。外側が横書き multicol・内側が縦書きという二層構造では null が返ります。二層対応は次のビルドです。
ドキュメントのサンプルが記載どおり動く
同梱ドキュメントの C / C++ サンプル 28 件が、書かれたとおりに書くとページを表示しない状態でした。g_application_run() では Chromium のメインループが回りません。コンパイルも起動も通るぶん気付きにくいものでした。
GError *error = NULL;
g_application_register(G_APPLICATION(app), NULL, &error);
g_application_activate(G_APPLICATION(app));
int status = blink_gtk_run_main_loop(); /* g_application_run() ではない */圏点の独自 patch を削除 (#127)
Chromium 151 が上流で同じ問題を解決したため、独自 patch を外して151 標準の挙動に一本化しました。
検証
- V8 三点 15.1.206.10 整合 (libv8 / snapshot_blob / v8_context_snapshot)
- 必須ファイル 12 件、SONAME-versioned
.so+ ICD JSON - RPM: 全 named 依存が Fedora で解決可能、GPG 署名済
- 同梱ドキュメント: ja/en 完備 + WebKitGTK 同等種別 + 版数整合
検証手順
gpg --import BlinkGTK-GPG-KEY.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c SHA256SUMS必要なもの
GTK4 4.6.0+ / GLib 2.70.0+ / Wayland 1.18.0+ (Wayland 専用)