リリース日: 2026-09-28 / Chromium: 154.0.8037.57 / 言語: 日本語 | English
レンダリングエンジンを Chromium 154 に更新しました。
BLINKGTK_FRAME_COPY=1 で戻せますblink_web_view_load_html() の
base_uri
が文書に反映されていませんでした。ページのdocument.baseURI と blink_web_view_get_uri()
が base_uri を返すように修正しました。#・%・タブ・改行が含まれると、その位置で切れたり別の文字に変わったりBlinkGTK Permissions.json) を、UI
スレッドで読み込んでいました。gtk_widget_compute_point などの assertion)
が出ていました (ibus#2905)。blink_web_view_switch_render_path())
が、別のサイトへ移動した後にlibVkLayer_khronos_validation.so、libVkICD_mock_icd.so、ebook:// など) で配った 5 MB
以上の音声を <audio>
で開くと、アプリのウィンドウごと<audio> が途中で読むのをやめると、UI
スレッドが待ち続けていました。一時停止中でも再生中でも起きます<audio> が出す範囲の要求は
Range: bytes=0- の 1 回だけで、シークしても次の要求は<audio>
の読み込み方は変わらないので、この版ではfetch() に付けた Range
はハンドラの前まで届きますが、応答は全体です)blink_web_view_print_to_pdf_with_options()
で、用紙・余白・背景・ページ範囲を指定して
書き出せます。callback は PDF
をファイルに書き終えてから
呼ばれ、失敗したときは理由が渡ります。
縦組み・ルビ・傍点・縦中横も PDF の上で組まれます。
BlinkPdfOptions* o = blink_pdf_options_new();
blink_pdf_options_set_paper_size(o, 8.27, 11.69); /* A4 (インチ) */
blink_web_view_print_to_pdf_with_options(view, "/tmp/page.pdf", o, on_pdf, NULL);
blink_pdf_options_free(o);スクロールする容器 (overflow: auto など)
の中の本文は、ページに分けられません。容器に見えている
分だけが 1 ページに入ります (C API リファレンスの「PDF
の書き出し」)。
blink_web_view_set_download_handler()
のハンドラが保存先を返すと、そこに保存します
(NULL なら XDG の Download ディレクトリ、""
なら保存しない)。download-started シグナルで
BlinkDownload
を受け取り、進捗・完了・失敗を知り、blink_download_cancel()
で取り消せます。
ハンドラを付けていないビューでは保存しません。
decide-navigation シグナルで、今のビューで開く / 止める
/ 外部ブラウザで開く / 別のビューで開く /
新しいビューで開く、から選べます。window.open()
で開いたページを新しいビューで受け取ると、
window.opener が保たれます。
getUserMedia() が permission-request
を通るようになりました。許可すると実際に使えます
(1.2.3-build1 までは常に NotSupportedError)。
blink_permission_request_ref() で要求を持ったまま後で
allow / deny できます。
要求元は
blink_permission_request_get_origin()、埋め込み元は
get_embedding_origin()。
blink_permission_request_set_remember()
で決定を覚えさせると、次からは同じ要求が届きません。
blink_web_view_set_auth_handler()
のハンドラに届きます。blink_web_view_auth_response()
で
ユーザー名とパスワードを返します。2 件目以降の認証は、1
件ずつ順に届きます。
blink_web_view_set_font_family()
で明朝・ゴシック・等幅などの既定のフォントを、
blink_web_view_set_minimum_font_size()
で最小文字サイズを指定できます。最小文字サイズは
ルビにも適用されます (本文 16px・下限 12px なら、ルビは 8px から 12px
になります)。
blink_gtk_register_scheme() を
blink_gtk_init() の前に呼ぶと、環境変数
BLINKGTK_EXTRA_SCHEMES
を使わずにスキームを登録できます。そのスキームのページには origin
が付き、
fetch() が使えます。
window.blinkgtk
をページの最初のスクリプトから使えます1.2.3-build1 までは読み込みが終わってから入っていました。
提示ポリシーで画面への表示を止めている間でも、blink_web_view_capture_screenshot_async()
を
呼ぶと 1 枚だけ表示して撮ります (1.2.3-build1 までは 2
秒で失敗していました)。
blink_handoff_meta_serialize()
の戻り値は g_free() で解放しますblink_web_view_get_devtools_url() /
blink_web_view_get_url() などにも書きましたblink_web_view_set_default_encoding()
は 1.2.3-build1 の時点でもページにblink_gtk_sandbox_init()
の注記。Windows 版の devel ZIP の
lib/blinkgtk_sandbox.lib でblink_gtk_init() を使う) を書きましたblink_web_view_print_to_pdf() が実際に PDF
を書き出します。 1.2.3-build1 まではwindow.print()
を呼んで、ファイルを書かずに成功を返していましたlibcups.so.2) が要ります。 RPM・DEB ではcups-libs (Fedora) /
libcups2 (Debian・Ubuntu) を入れてください/usr/bin/blinkgtk-simple-browser
は /usr/bin/blinkgtk-browser になりました。/usr/libexec/blinkgtk-0.1/blinkgtk_browser)
は同じですblink_web_view_set_javascript_enabled()
などの設定が、ページに反映されるように
なりました。1.2.2 までは値を覚えるだけで、FALSE
にしてもページのスクリプトは
実行されていました。
| 関数 | 1.2.3 (出荷形で実測) |
|---|---|
blink_web_view_set_javascript_enabled() |
反映される (FALSE でページのスクリプトが止まる) |
blink_web_view_set_images_enabled() |
反映される (FALSE で画像が読み込まれない) |
blink_web_view_set_local_storage_enabled() |
反映される (FALSE で localStorage
が使えない) |
blink_web_view_set_default_font_size() |
反映される (30 を渡すと本文が 30px) |
blink_web_view_set_default_encoding() |
まだ反映されません (文字コードの指定が無いページは
windows-1252 のまま) |
スクリプトを止めたいページを扱うアプリは、この版に更新してください。
set_default_encoding()
は原因を調べて次の版以降で扱います。
out_mime に
"text/html; charset=utf-8"
のように引数を付けて返しても、<pre>
のテキストとして表示されていました。BLINKGTK_EXTRA_SCHEMES に書いたスキームで、ページから
fetch() が使えるようにapp /
blinkgtk / res /resource / ebook) だけでしたblink_gtk_set_resources_path()
を呼ばなくても、libblinkgtk の置き場所から
icudtl.dat などを探すようになりました。1.2.2
までは実行ファイルの隣しか見ておらず、
rpm / deb 版で自分のアプリを作ると ICU
のエラーで起動できませんでした。
探す順は次のとおりです。
<libdir>/blinkgtk-0.1/chromium/ (rpm / deb)<libdir>/chromium/ (tarball)<libdir>/場所を指定するアプリは、これまでどおり動きます。
日本語入力の経路を、BlinkGTK が決めずに GTK
に任せるようにしました。Wayland では
GTK4 の既定である text-input 経路になり、入力メソッドの側 (IBus)
が推奨する形です。
Fedora 45 / GNOME
の実機で、この経路を選んだときに変換モードが通ることと、ビューを
繰り返し閉じても入力メソッドの警告が出ないことを確かめています (1.2.2
に入れた
切り替えで同じ経路を選んで測りました)。
1.2.2 と同じ動作 (IBus を名指しする)
にしたい場合は、BLINKGTK_IM_MODULE=ibus を
指定してください。この指定が適用されるのは BlinkGTK
のビューだけです。blink_gtk_get_im_module() で
いま設定している値を確かめられます (既定は空文字列 = GTK に任せる)。
blink_gtk_trace_mark("名前")
を呼ぶと、トレースに目印が入ります。イベント名が
その名前になり、Web の performance.mark()
と同じ形で並びます。
// 起動: --trace-startup=toplevel,blink.user_timing
blink_gtk_trace_mark("workload_ready");
/* ... 測りたい区間 ... */
blink_gtk_trace_mark("idle_static_ready");カテゴリ blink.user_timing
を足していなければ、この呼び出しは何もしません。
text-decoration-inset —
下線・上線・打ち消し線を、文字列の端から内側へ<iframe> —
中の文書に合わせて親側で寸法を決められます@font-face の font-width
記述子 — font-stretch の別名です機能の一覧は chromestatus.com の Chromium 154
のものです。当方で実測したのは
上記の縦組みに関わるものではなく、描画・入力・起動の範囲です。
1.2.1 で入れた独自の回避
(縦組みで閉じ括弧が行末に来ると行が途中で切れる件) を
取り除きました。Chromium 153
で上流が同じ症状を修正しており、1.2.2 では回避が
結果を変えていないことを測ったうえで、1.2.2 には残していました
load-failed
シグナルのヘッダの注記が実装と違っていました。ハンドラの正しい形は
次のとおりです (シグナル自体は変えていません)
static void on_load_failed (BlinkWebView *web_view, BlinkLoadError error_code,
const char *failing_uri, gpointer user_data);blink_gtk_init_with_sandbox()
をヘッダは「共有ライブラリにまだ無い」と書いて
いましたが、1.2.2-build4 から入っています。Linux では NULL
を渡すと
blink_gtk_init() と同じ動作です
BLINKGTK_IM_MODULE=ibus で戻せますFALSE
を渡していたアプリでは、set_javascript_enabled(FALSE)
でページのスクリプトが止まることを、fetch()・リソースを指定しないblink_gtk_trace_mark() と
performance.mark() の