BlinkGTK v1.2.0-build9
描画経路を、アプリを再起動せずに切り替えられるようになりました。
できるようになったこと
描画経路のライブ切替 (BlinkShift)。 blink_web_view_switch_render_path()
を呼ぶと、動作中のまま描画の出力経路が切り替わります。切替後の描画が確認
できなかった場合は元の経路に自動で戻り、画面は壊れません (完了シグナル
render-path-changed の result が "rollback" で通知されます)。切替は
テスト環境の実測で数百ミリ秒です (従来のプロセス再起動方式は 2〜3 秒)。
切替関数はその切替の通し番号を返し、完了シグナルにも同じ番号が載るため、
切替の前後で採った記録を確実に対応付けられます。
GtkApplication と正しく併用できる 1 関数。 blink_gtk_application_run()。
g_application_run() では Chromium のブラウザループが回らず、コンパイルも
起動も通るのにページが読み込まれません。正しい順序を 1 関数に畳み、最後の
ウィンドウが閉じると自動で終了します。
提示ポリシー。 blink_web_view_set_presentation_policy()。音声だけを
聞く場面など、ビューを今は提示しなくてよいとアプリが宣言すると、画面転送の
費用を省きます。組版と描画 (先読み) は止めません。既定は従来どおりで、
呼ばなければ挙動は変わりません。
修正
- 大きなユーザースクリプト (約 48KB 超) が描画プロセスに届かない問題を
解消しました (受け渡しを fd に変更) - スクリプト注入と 2 回目のナビゲーションの組み合わせで異常終了する問題を
解消しました - 毎フレームの診断ログを既定で止めました
--force-device-scale-factorが指定どおり効くようになりました
同梱ドキュメントの補完
同梱リリースノートに build7・build8 の節が漏れていたのを補いました
(公開文はこのページと GitHub 上の各リリースにありましたが、同梱版が
build6 で止まっていました)。再発防止として、同梱ノートに当該版の節が
あることをリリース前検査で確認するようにしました。
実行部分
Chromium は 151.0.7922.108 のままです。
English
Render paths can now be switched live, without restarting the application.
What you can do now
Live render-path switching (BlinkShift). Call
blink_web_view_switch_render_path() and the rendering output path switches
while the app keeps running. If the new path fails its render check, the
previous path is restored automatically — the screen is never broken (the
render-path-changed signal reports "rollback"). A switch takes a few
hundred milliseconds in our test environment (the process-restart approach
took 2–3 seconds). The function returns the swap's sequence number and the
completion signal carries the same number, so records taken around a switch
can be keyed to the exact swap.
One function for correct GtkApplication integration:
blink_gtk_application_run(). With g_application_run() the Chromium
browser loop never runs — the program compiles and starts, but no page ever
loads. The new function performs the correct sequence and exits
automatically when the last window closes.
Presentation policy: blink_web_view_set_presentation_policy(). Declare
that a view need not be presented right now (an audio-only mode, for
example) and the engine skips the cost of presenting frames. Layout and
rasterization (read-ahead) are not stopped. The default is unchanged
behaviour.
Fixes
- Large user scripts (over ~48KB) never reached the renderer; scripts are
now passed over a file descriptor - Crash when combining script injection with a second navigation
- Per-frame diagnostic logging is now off by default
--force-device-scale-factoris now honoured as specified
Bundled documentation
The bundled release notes were missing their build7 and build8 sections
(the published notes existed on this page, but the bundled copy stopped at
build6). A pre-release check now verifies the bundled notes cover the
current build.
Runtime
Chromium remains at 151.0.7922.108.