よくあるご質問

作成者: BlinkGTK Project
バージョン: 1.2.0-build2

導入をご検討中の方から、実際に使い始めた方まで、よくいただくご質問をまとめました。

ここに無いことは 困ったときは をご覧いただくか、
contact@blinkgtk.org までお気軽にお尋ねください。

BlinkGTK について

BlinkGTK とは何ですか

Chromium のレンダリングエンジン (Blink) を、GTK4 のウィジェットとして
使えるようにした
ライブラリです。

BlinkWebView を窓に入れれば、そこに Web ページが表示されます。GTK の
ボタンやラベルと同じ感覚で扱えます。

GtkWidget *view = blink_web_view_new();
gtk_window_set_child(GTK_WINDOW(window), view);
blink_web_view_load_uri(BLINK_WEB_VIEW(view), "https://example.com/");

何に使えますか

Web の技術で画面を作りたい場面すべてです。実際に検討・利用されている領域には、
電子書籍リーダー、車載の情報画面、産業機器の操作パネル、デジタルサイネージ、
店頭端末などがあります。

詳しくは BlinkGTK は何に使えるか をご覧ください。

WebKitGTK とどう違いますか

いちばん大きな違いはエンジンです。BlinkGTK は Chromium と同じ Blink を
使うので、Chrome で見えるとおりに表示されます。

BlinkGTK WebKitGTK
エンジン Blink (Chromium) WebKit
表示の基準 Chrome と同じ Safari に近い
DevTools Chrome DevTools が使える Web Inspector

ウィジェットとしての扱い方はよく似ていますが、関数名は異なります
移行される場合は WebKitGTK からの移行
に対応表があります。

「どちらが優れているか」という話ではありません。Chrome を基準に確認しながら
作りたい、Chrome DevTools を使いたい、という場合に BlinkGTK が向いています。

まだ新しいプロジェクトですか

はい。公開して間もないプロジェクトです。

そのぶん、ご報告いただいた不具合には早く手が入ります。実際、利用者の方から
いただいた指摘がそのまま次のビルドに反映されています。お気付きの点は
どんな小さなことでもお知らせください。

ライセンスは何ですか

BSD 3-Clause です。商用利用も可能です。

同梱している Chromium 由来のコンポーネントには、それぞれのライセンスが
適用されます。配布物に THIRD_PARTY_NOTICES を同梱していますので、
再配布される際はそちらもあわせてお使いください。


使えるかどうか

どの言語から使えますか

C から使うのが基本です。加えて GObject Introspection に対応しているので、
Python・Rust・JavaScript・Vala などからも呼べます。

import gi
gi.require_version('BlinkGTK', '0.1')
from gi.repository import BlinkGTK

view = BlinkGTK.WebView.new()
view.load_uri('https://example.com/')

チュートリアルは Python
Rust をご用意しています。

X11 でも動きますか

いいえ。Wayland 専用です。

現在の主要なデスクトップ環境 (GNOME・KDE Plasma・Sway など) は既定で Wayland
なので、通常はそのまま動きます。X11 セッションでお使いの場合は、Wayland での
ログインに切り替えてください。

どのディストリビューションで動きますか

RPM (Fedora 系) と DEB (Debian / Ubuntu 系)、それに tarball を配布しています。
tarball は展開したその場で動くので、どのディストリビューションでもお試し
いただけます。

インストール に手順があります。

GPU は必要ですか

必須ではありません。CPU だけで描画する経路があり、既定でも動きます。

GPU が使える環境では、BLINKGTK_GPU_MODE=egl で GPU 描画に切り替えられます。
環境によってどちらが速いかは変わるので、実機でお試しいただくのが確実です。

どのくらいメモリを使いますか

Chromium がプロセスを分けて動く都合上、WebView 1 つあたり数百 MB
見込んでください。組み込み機器でお使いの場合は、この点を設計に織り込んで
いただく必要があります。


作るとき

最初は何を読めばよいですか

最初のアプリをビルドして動かす が入口です。
実際に動くところまで通しで書いてあります。

その次は、やりたいことに応じて
逆引き索引 から引くのが早いです。

GtkApplication と組み合わせられますか

はい。ただしメインループにひとつ注意点があります。

g_application_run() は Chromium 側のループを回さないため、これだけでは
ページが表示されません。窓を出したあとに blink_gtk_run_main_loop()
回してください。

書き方は アプリに組み込む にあります。
これは実際に利用者の方から「記載どおりに書いたのに動かない」とご指摘を
いただいて整備した箇所です。

日本語の縦書きは使えますか

使えます。むしろ力を入れている領域です。

縦書き・ルビ・圏点・縦中横・禁則処理に対応しています。JLReq (日本語組版処理の
要件) に沿った組版を目指しており、Chromium 本体への貢献も行っています。

期待どおりに組まれない箇所を見つけられた場合は、ぜひお知らせください。
再現用の HTML をいただければ、そのまま検証に使わせていただきます。

アプリ内のコンテンツをどう配信しますか

独自の URL スキームを登録できます。myapp:// のような形でアプリ内のデータを
配信でき、file:// を使うより安全で扱いやすい方法です。

詳しくは アプリ連携 API
「カスタム URL スキーム」をご覧ください。

ページの JavaScript とやり取りできますか

できます。双方向です。

こちらも アプリ連携 API
まとまっています。

コピーや印刷を禁止できますか

できます。電子書籍リーダーや店頭端末のように、コンテンツを保護したい用途を
想定した設定があります。

設定 API をご覧ください。


運用するとき

どのくらいの頻度で更新されますか

Chromium の安定版が上がるのに合わせて追従しています。加えて、不具合の修正は
その都度ビルドを出しています。

更新の履歴は 改版履歴 に、Chromium の版が上がって
何ができるようになったかは
Chromium 新機能史 にまとめています。

古い版を使い続けても大丈夫ですか

動作は変わりませんが、Web ブラウザは更新をおすすめします。Chromium の
更新には脆弱性の修正が含まれるためです。インターネット上のページを表示する
用途では、なるべく新しい版をお使いください。

閉じたネットワークでお使いの場合は、この限りではありません。

アプリと一緒に配布できますか

できます。必要なファイルを同梱して、単体で動く形にまとめられます。

手順は ポータブルアプリとして配布する
あります。

商用製品に組み込めますか

はい。BSD 3-Clause なので、商用製品への組み込みに制限はありません。

導入のご相談や、特定の環境向けの調整については contact@blinkgtk.org まで
お問い合わせください。


お困りのときは

「こんなことを聞いてよいのだろうか」と迷われる必要はありません。
お気軽にお尋ねください。