BlinkGTK for Windows — はじめかた

BlinkGTK for Windows は、Chromium の描画エンジン (Blink) を、GTK4 のウィジェットとして C から使えるようにしたライブラリです。
ZIP を展開して bin\blinkgtk_browser.exe を実行すれば、すぐに動きます (管理者権限は要りません)。
Linux 版とほぼ同じ API で、同じコードを両方の OS で使えます (違いは、下の「Linux 版との違い」にまとめました)。

この頁は v1.2.6-build4 (Chromium 157.0.8103.38) の内容です。Windows 11 Pro (build 26300) で、2026-11-06 にビルドと API・描画・表示経路の検査を行いました。ZIP 自体の展開・起動確認も、最終パッケージの検査で確認しています。

目次: どんな方向けか / 動かす / 動いたか確かめる / 動作条件 / 組み込む方 / 前の版から上げる方 / Linux 版との違い / 試験段階の GPU の経路 / 困ったとき


どんな方向けか

何をしたいかで、用意するものが変わります。

したいこと 用意するもの 読むところ
まず動かしてみる ZIP (portable) を展開するだけ。ビルド環境は要りません 動かす
自分のアプリに組み込む devel ZIP と、Visual Studio Build Tools (C++ のコンパイラ)。無ければ入れ方から 組み込む方 と、同梱の docs\building-with-blinkgtk-ja.md の §0
Chromium 本体をビルドする 通常は要りません。 配布の ZIP を使ってください (本体のビルドは、長い時間と大きなディスクが要ります) —

動かす

1. ダウンロードして展開する

blinkgtk-dist の v1.2.6-build4-windows のリリース から、ZIP を取得します。

ファイル 用途
blinkgtk-1.2.6-build4-windows-x64.zip 動かす用 (portable)。まずこちら
blinkgtk-devel-1.2.6-build4-windows-x64.zip 組み込む用 (ヘッダとライブラリ。組み込む方)
SHA256SUMS ZIP の確認用。certutil -hashfile <ZIP> SHA256 の出力と見比べられます

portable ZIP を、任意の場所に展開します。GTK4 と VC++ ランタイムの DLL も入っているので、別に入れるものはありません。インストーラ (MSI) はまだありません。

展開したフォルダ。bin、docs、share の 3 つのフォルダができている

展開すると、bin (実行ファイルと DLL)、docs (文書)、share (GTK4 のデータ) の 3 つのフォルダと、ライセンス文 (LICENSE.chromium、LICENSE.blinkgtk、THIRD_PARTY_NOTICES.html) ができます。

2. 初回は警告が出ることがあります

この配布物にはコード署名がありません。ブラウザで取得して実行すると、Microsoft Defender SmartScreen の警告が出ることがあります。警告が出たら、案内に従って実行を続けてください (一般には、警告の「詳細情報」を選ぶと「実行」が選べます。実際の画面は、この版では撮れていません)。

展開した直後の初回は、起動が遅いことがあります。 Microsoft Defender が、新しく置かれたファイル (DLL が 590 件ほどあります) を検査するためです。2 回目からは速くなります。 当方の確認では (Intel Core i5-1140G7、Defender は既定の設定、2026-10-23)、展開した直後の初回は、窓が出るまで約 11 秒かかり、2 回目以降は約 0.9 秒でした。機種や Defender の設定によって、時間は変わります。待てば起動するので、そのままお待ちください。

開発の作業用に、Windows 11 の Dev Drive (開発者向けのボリューム) を使っている方は、Dev Drive に展開すると、初回も速くなります。Dev Drive では、Defender が「パフォーマンス モード」で動き、ファイルを開くときの検査を後で行うためです (Defender の保護は外れません)。当方の確認では (同じ機種)、窓が出るまで約 3 秒でした。Dev Drive の作り方は、Microsoft の説明を参照してください。

3. 実行する

エクスプローラーで、展開したフォルダの bin を開き、blinkgtk_browser.exe をダブルクリックします。引数なしだと https://google.com/ を開きます (インターネットへの接続が要ります)。

開きたいページを指定するときは、コマンドプロンプト (スタートメニューで「cmd」を検索) で、展開したフォルダの bin へ移ってから実行します。

cd /d "C:\BlinkGTK\blinkgtk-1.2.6-build4-windows-x64\bin"
blinkgtk_browser.exe https://example.com/

1 行目の C:\BlinkGTK\... は例です。自分が展開した先の実際のパスに置き換えてください (エクスプローラーのアドレス欄からパスをコピーできます)。< > を付けたまま貼ると、コマンドプロンプトが記号として解釈して失敗します。

引数に URL を渡すと、そのページを開きます。
blinkgtk_browser は、BlinkGTK を組み込むのに必要なものだけを示す、最小のサンプルです。


動いたか確かめる

> blinkgtk_browser.exe --version
BlinkGTK 1.2.6-build4 (Chromium 157.0.8103.38)

動作条件

OS Windows 10 (64bit) 以降。確かめたのは Windows 11 Pro (build 26200 と 26300) で、Windows 10 では確かめていません
CPU x64 (32bit は対応しません)
空き容量 約 1.4 GiB (ZIP 379 MiB + 展開後 約 1,056 MiB。展開中は両方必要)
GTK4 同梱。別に入れないでください (別の入れ方の GTK4 と混ぜると、同梱のものとリンクできないことがあります)
VC++ ランタイム DLL を同梱 (再頒布可能パッケージのインストーラは不要)

GitHub の Releases の画面は、同じ ZIP を「379 MB」と表示します。1,000,000 バイト単位で数えるツールでは 397 MB と出ます。


組み込む方

devel ZIP (blinkgtk-devel-1.2.6-build4-windows-x64.zip) に、公開 API のヘッダ、インポートライブラリ、GTK4 の開発用ファイルが入っています。

注意が 4 点あります。

  1. 公開 API の前方宣言を、自分では書かないでください (Windows 固有)。ヘッダは __declspec(dllimport) 付きで宣言しているので、付かない宣言を同じ翻訳単位に並べると、clang で警告が出ます。ヘッダだけを使ってください。
  2. 呼び出し側が解放する戻り値は、g_free() で解放してください (例: blink_handoff_meta_serialize())。1.2.3-build2 以降の決まりです。
  3. サンドボックスを使う場合は、静的ライブラリ lib\blinkgtk_sandbox.lib をリンクし、blink_gtk_sandbox_init() を呼びます (Windows 専用です。Linux では呼べないので、両方の OS で同じコードを使うときは #ifdef G_OS_WIN32 で囲んでください)。
  4. メインループが戻ったら、終了する前に blink_gtk_shutdown() を呼んでください。 1.2.5-build1 までの Windows 版では、省略すると、終了に 20 秒以上かかり、最後に異常終了します (1.2.5-build2 からは自動で行いますが、明示的に呼ぶ形を、引き続きすすめます)。呼ぶ位置は、サンプル (blinkgtk_browser-windows.c) の末尾の「6. 終了処理」にあります。

公開 API は 154 本です。この 154 本のうち、Linux 版との違いは 1 本だけで、Wayland 専用の blink_web_view_attach_to_external_surface が Windows にありません (上のサンドボックスの blink_gtk_sandbox_init() は Windows 専用で、この数に入りません)。
そのうち実際に呼んで通ることを確かめたのは 66 本です。数え方と、確かめていない API の一覧の出し方は、同梱の docs\api-windows-notes-ja.md の §0 にあります。


前の版から上げる方

どの版から上げる場合も、手順は同じです。

  1. 新しい ZIP を、別のフォルダに展開して試し、問題がなければ古いフォルダを置き換えます。
  2. 自分のアプリに組み込んでいる場合は、新しい devel ZIP のヘッダとライブラリで再ビルドしてください (前の版の blinkgtk.dll との互換は確かめていません)。

版ごとの注意は、次のとおりです。

1.2.5-build5 から 1.2.6-build4 へ上げる場合:

1.2.5-build3 から 1.2.5-build5 へ上げる場合 (Windows 版は build4 を単独では公開していないので、build4 の内容もここに含みます):

1.2.5-build2 から 1.2.5-build3 へ上げる場合:

1.2.5-build1 から 1.2.5-build2 へ上げる場合:

1.2.4-build4 から 1.2.5-build1 へ上げる場合:

1.2.4-build2 から 1.2.4-build4 へ上げる場合:

1.2.3 以前から上げる場合: 上の共通の手順をそのまま使ってください。Windows 版は 1.2.4-build2 が最初の 1.2.4 で、Chromium が 154 から 155 に変わりました。1.2.3-build4 までは、内部の前提が崩れる場面でプロセスが異常終了することがありました。1.2.4 からは、その検査を無効にしてビルドしています。


Linux 版との違い

Linux Windows
導入 RPM / DEB / tarball ZIP (MSI は今後)
GTK4 OS のパッケージ 同梱
描画結果の GTK への渡し方 software / EGL 既定は software。 EGL は Windows にはありません。試験段階の GPU の経路を、環境変数で選べます (下)
blink_web_view_attach_to_external_surface あり ありません (Wayland 専用)
ぶら下げの組版 あり (1.2.4-build1 から) あり (1.2.5-build1 から)
割注の組版 (1 行に収まるもの) あり (1.2.4-build3 から) あり (1.2.5-build1 から)
日本語縦組みの版面 実験的な調整は既定で無効 同じ (既定で無効)

縦組みの実験的な調整 (段組みの中の縦組みの行を、列の格子に合わせる処理) は、Linux・Windows とも既定で無効です。
有効にするには、実行ファイルのコマンドラインに --enable-blink-features=CJKVerticalColumnFragmentation を付けます (アプリが blink_gtk_init() に引数を渡しても届きません)。
両方の OS の描画結果を並べて比べてはいないので、版面が OS で一致する保証はありません。

環境変数 BLINKGTK_GPU_MODE は、Windows では描画の渡し方を変えません。 egl を指定しても、GTK への渡し方は software と同じです (Chromium の内部の描画は変わりうるので、結果は測っていません)。GPU を試すなら、次の BLINKGTK_WIN_GPU_PATH を使ってください。
cmd で環境変数を指定するときは、set "NAME=値" のように引用符で囲んでください (set NAME=値 && … だと、値の末尾に空白が付きます)。


試験段階の GPU の経路

環境変数 BLINKGTK_WIN_GPU_PATH=vulkan を指定したときだけ、Chromium の GPU 合成の結果を、CPU のメモリへコピーし直さずに (従来は、GPU で描いた画面をいったん CPU のメモリへコピーしていました)、GTK の Vulkan のレンダラーへ渡します。Vulkan に対応した GPU とドライバーが要ります。

set "BLINKGTK_WIN_GPU_PATH=vulkan" && blinkgtk_browser.exe

困ったとき


更新履歴

日付 内容
2026-10-11 1.2.4-build2 (Chromium 155)
2026-10-18 1.2.4-build4 に更新: Vulkan 付きの GTK の同梱、試験段階の GPU の経路、blink_gtk_has_typesetting_feature の答えの修正
2026-10-19 頁の構成を改めた。動かす手順・動いたかの確かめ方・前の版から上げる方への案内を分けた
2026-10-19 「何をしたいかで用意するものが変わる」の表と、ビルド環境の入れ方への案内を追加した
2026-10-21 展開したフォルダ・ブラウザの窓・Visual Studio Installer の画面を追加した
2026-10-21 実行の手順 (ダブルクリック・コマンドプロンプト)、ダウンロードの案内、Visual Studio の画面の説明、WebKitGTK からの名前の対応、前の版から上げる手順を直した
2026-10-21 load-changed の値の並びの違い、コマンドのパスの置き換え方、Visual Studio の画面で確かめる箇所を補った
2026-10-23 1.2.5-build1 に更新した: Chromium 156、ぶら下げと 1 行に収まる割注の取り込み、上げる手順に 1.2.4-build4 からの項を追加
2026-10-24 「展開した直後の初回は起動が遅いことがあります」の説明を足した
2026-10-25 Dev Drive に展開すると初回も速い、の説明を足した
2026-10-26 Windows 1.2.5-build1 での、load-failed・is-loading・set_user_agent・zoom_level の動作の確認の結果と、終了処理 (blink_gtk_shutdown()) の注意を足した
2026-10-27 自動の終了処理が 1.2.5-build2 から入る、の表記に直した
2026-10-27 1.2.5-build2 に更新した: 版数・ファイル名、上げる手順に 1.2.5-build1 からの項 (テーマ追従、自動の終了処理、子プロセス用の実行ファイル) を追加
2026-10-30 1.2.5-build3 に更新した: Chromium 156.0.8078.73 のセキュリティ更新、前版からの更新手順、ライセンス文書の案内
2026-11-02 1.2.5-build5 に更新した: Chromium 156.0.8078.79 のセキュリティ更新、File System Access の保護、前版 (build3) からの更新手順
2026-11-07 1.2.6-build4 に更新した: Chromium 157.0.8103.38、静止した頁の CPU 消費の修正、前版 (build5) からの更新手順