BlinkGTK Settings API リファレンス

バージョン: 1.2.0-build2
最終更新: 2026-07-29
言語: 日本語 |

English


このページについて

BlinkWebView の挙動を変える API です。JavaScript の実行、画像の読み込み、
ローカルストレージ、User-Agent を切り替えられます。

使い方

blink_web_view_new() の直後、ページを読み込む前に呼びます。

GtkWidget *view = blink_web_view_new();

blink_web_view_set_javascript_enabled(BLINK_WEB_VIEW(view), FALSE);
blink_web_view_set_images_enabled(BLINK_WEB_VIEW(view), FALSE);

blink_web_view_load_uri(BLINK_WEB_VIEW(view), "https://example.com/");

設定は BlinkWebView ごとに独立しています。

一覧

設定 変更 取得 既定値
JavaScript blink_web_view_set_javascript_enabled() blink_web_view_get_javascript_enabled() 有効
画像の読み込み blink_web_view_set_images_enabled() blink_web_view_get_images_enabled() 有効
ローカルストレージ blink_web_view_set_local_storage_enabled() blink_web_view_get_local_storage_enabled() 有効
User-Agent blink_web_view_set_user_agent() blink_web_view_get_user_agent() Chromium の既定値

Python (PyGObject) や Rust (gtk-rs) からも同じ設定を使えます。

WebKitGTK から移る場合

WebKitGTK では WebKitSettings オブジェクトを介しますが、BlinkGTK は
BlinkWebView に直接設定します。関数名も呼び出し方も異なります
対応表はこのページの後半にあります。


JavaScript制御

JavaScriptの有効/無効を設定します。

シグネチャ:

void blink_web_view_set_javascript_enabled(BlinkWebView* web_view, gboolean enabled);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |
| enabled | gboolean | TRUE = 有効、FALSE = 無効 |

戻り値: なし

デフォルト値: TRUE(有効)

使用例:

#include <blink_gtk/blink_gtk.h>

// JavaScript無効でセキュアなコンテンツ表示
GtkWidget* web_view = blink_web_view_new();
blink_web_view_set_javascript_enabled(web_view, FALSE);
blink_web_view_load_uri(web_view, "https://example.com");

WebKitGTK互換:

// WebKitGTK
WebKitSettings* settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(web_view));
webkit_settings_set_enable_javascript(settings, FALSE);

// BlinkGTK(同等)
blink_web_view_set_javascript_enabled(web_view, FALSE);

利用可能バージョン: v1.1.0 以降


JavaScriptが有効かどうかを取得します。

シグネチャ:

gboolean blink_web_view_get_javascript_enabled(BlinkWebView* web_view);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |

戻り値: gboolean - TRUE = 有効、FALSE = 無効

使用例:

if (blink_web_view_get_javascript_enabled(web_view)) {
    g_print("JavaScript is enabled\n");
} else {
    g_print("JavaScript is disabled\n");
}

利用可能バージョン: v1.1.0 以降


User-Agent制御

カスタムUser-Agent文字列を設定します。

シグネチャ:

void blink_web_view_set_user_agent(BlinkWebView* web_view, const char* user_agent);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |
| user_agent | const char* | User-Agent 文字列。NULL または空文字を渡すと override を解除し Chromium 既定の User-Agent に戻る |

戻り値: なし

デフォルト値: Chromium のデフォルト User-Agent(override 未設定の状態)

注意: 値は HTTP ヘッダ値として妥当である必要があります。CR / LF / NUL を含む文字列は
無視され、override は変更されません(不正なヘッダの送出を防ぐため)。

設定は以後に起動する Renderer にも引き継がれます(override_in_new_tabs=true)。

使用例:

// カスタムUser-Agent設定
blink_web_view_set_user_agent(web_view, "MyApp/1.0 (Linux; BlinkGTK)");
blink_web_view_load_uri(web_view, "https://httpbin.org/user-agent");

実用例 - モバイルUser-Agent:

// モバイル端末として振る舞う
const char* mobile_ua = "Mozilla/5.0 (Linux; Android 10) "
                        "AppleWebKit/537.36 (KHTML, like Gecko) "
                        "Chrome/151.0.0.0 Mobile Safari/537.36";
blink_web_view_set_user_agent(web_view, mobile_ua);

WebKitGTK互換:

// WebKitGTK
WebKitSettings* settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(web_view));
webkit_settings_set_user_agent(settings, "MyApp/1.0");

// BlinkGTK(同等)
blink_web_view_set_user_agent(web_view, "MyApp/1.0");

利用可能バージョン: v1.1.0 以降


現在のUser-Agent文字列を取得します。

シグネチャ:

gchar* blink_web_view_get_user_agent(BlinkWebView* web_view);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |

戻り値: gchar* - blink_web_view_set_user_agent() で設定した override 文字列。
override 未設定時は NULL(Chromium 既定の User-Agent を使用中であることを意味する)。
非 NULL の場合、呼び出し側で g_free() が必要。

使用例:

gchar* user_agent = blink_web_view_get_user_agent(BLINK_WEB_VIEW(web_view));
if (user_agent) {
    g_print("User-Agent override: %s\n", user_agent);
    g_free(user_agent);  /* 重要: メモリ解放 */
} else {
    g_print("override なし (Chromium 既定の User-Agent を使用中)\n");
}

メモリ管理:
注意 重要: 戻り値は呼び出し側でg_free()により解放する必要があります。

利用可能バージョン: v1.1.0 以降


画像読み込み制御

画像の自動読み込みを制御します。

シグネチャ:

void blink_web_view_set_images_enabled(BlinkWebView* web_view, gboolean enabled);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |
| enabled | gboolean | TRUE = 自動読み込み、FALSE = 無効 |

戻り値: なし

デフォルト値: TRUE(自動読み込み有効)

使用例:

// 画像読み込みを無効化(テキストのみ表示)
blink_web_view_set_images_enabled(web_view, FALSE);
blink_web_view_load_uri(web_view, "https://example.com");

実用例 - 軽量ブラウジング:

// データ使用量削減モード
void enable_data_saver_mode(GtkWidget* web_view) {
    blink_web_view_set_images_enabled(web_view, FALSE);
    blink_web_view_set_javascript_enabled(web_view, FALSE);
    g_print("Data saver mode enabled\n");
}

WebKitGTK互換:

// WebKitGTK
webkit_settings_set_auto_load_images(settings, FALSE);

// BlinkGTK(同等)
blink_web_view_set_images_enabled(web_view, FALSE);

利用可能バージョン: v1.1.0 以降


画像の自動読み込み設定を取得します。

シグネチャ:

gboolean blink_web_view_get_images_enabled(BlinkWebView* web_view);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |

戻り値: gboolean - TRUE = 自動読み込み有効、FALSE = 無効

使用例:

if (blink_web_view_get_images_enabled(web_view)) {
    g_print("Images will be loaded\n");
} else {
    g_print("Images are blocked\n");
}

利用可能バージョン: v1.1.0 以降


ローカルストレージ制御

HTML5 LocalStorageの有効/無効を設定します。

シグネチャ:

void blink_web_view_set_local_storage_enabled(BlinkWebView* web_view, gboolean enabled);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |
| enabled | gboolean | TRUE = 有効、FALSE = 無効 |

戻り値: なし

デフォルト値: TRUE(有効)

使用例:

// ローカルストレージ無効化(プライバシー保護)
blink_web_view_set_local_storage_enabled(web_view, FALSE);
blink_web_view_load_uri(web_view, "https://example.com");

実用例 - プライバシーモード:

// プライバシー保護モード
void enable_privacy_mode(GtkWidget* web_view) {
    blink_web_view_set_javascript_enabled(web_view, FALSE);
    blink_web_view_set_local_storage_enabled(web_view, FALSE);
    g_print("Privacy mode enabled\n");
}

WebKitGTK互換:

// WebKitGTK
webkit_settings_set_enable_local_storage(settings, FALSE);

// BlinkGTK(同等)
blink_web_view_set_local_storage_enabled(web_view, FALSE);

利用可能バージョン: v1.1.0 以降


LocalStorage設定を取得します。

シグネチャ:

gboolean blink_web_view_get_local_storage_enabled(BlinkWebView* web_view);

パラメータ:
| パラメータ | 型 | 説明 |
|-----------|---|------|
| web_view | BlinkWebView* | BlinkWebView(BLINK_WEB_VIEW() でキャスト) |

戻り値: gboolean - TRUE = 有効、FALSE = 無効

使用例:

if (blink_web_view_get_local_storage_enabled(web_view)) {
    g_print("LocalStorage is enabled\n");
} else {
    g_print("LocalStorage is disabled\n");
}

利用可能バージョン: v1.1.0 以降


モードとポリシー

GPU モード

描画経路を取得・設定します。通常は既定 (software) のままで動作します。

typedef enum {
  BLINK_GPU_MODE_SOFTWARE    = 0,  /* CPU 描画 (既定、GPU 不要) */
  BLINK_GPU_MODE_SWIFTSHADER = 1,  /* CPU による GL エミュレーション (WebGL/WebGPU) */
  BLINK_GPU_MODE_EGL         = 2,  /* ネイティブ GPU 描画 (WebGL/WebGPU、GPU 必須) */
} BlinkGpuMode;

GtkWidget*   blink_web_view_new_with_gpu_mode(BlinkGpuMode mode);
BlinkGpuMode blink_web_view_get_gpu_mode(BlinkWebView* web_view);

GPU モードは WebView の生成時に指定します (blink_web_view_new()
代わりに new_with_gpu_mode() を使う)。生成後の切り替えはできません。
また現在の実装ではモードはプロセス単位で、同一プロセスに異なるモードの
WebView を作った場合は最初の WebView のモードが使われます。

コンテンツポリシー

コピー・保存・印刷・選択などをビットフラグで禁止できます。電子書籍
リーダーやキオスク端末で、コンテンツ保護の挙動を保証する用途です。

blink_web_view_set_content_policy(view, BLINK_CONTENT_POLICY_EBOOK_READER);

BlinkContentPolicy p = blink_web_view_get_content_policy(view);
主なフラグ 禁止するもの
BLINK_CONTENT_POLICY_ALLOW_ALL (制限なし、既定)
BLINK_CONTENT_POLICY_NO_COPY クリップボードへのコピー
BLINK_CONTENT_POLICY_NO_SAVE ページの保存
BLINK_CONTENT_POLICY_NO_IMAGE_SAVE 画像の保存
BLINK_CONTENT_POLICY_NO_SELECTION テキスト選択
BLINK_CONTENT_POLICY_EBOOK_READER 電子書籍向けプリセット
BLINK_CONTENT_POLICY_KIOSK キオスク向けプリセット

フラグの全一覧はヘッダ blink_gtk.hBlinkContentPolicy を参照して
ください。


実用的な組み合わせ例

データセーバーモード

帯域幅を節約したい場合:

void setup_data_saver(GtkWidget* web_view) {
    blink_web_view_set_images_enabled(web_view, FALSE);
    blink_web_view_set_javascript_enabled(web_view, FALSE);
}

最大セキュリティモード

セキュリティを最優先する場合:

void setup_secure_mode(GtkWidget* web_view) {
    blink_web_view_set_javascript_enabled(web_view, FALSE);
    blink_web_view_set_local_storage_enabled(web_view, FALSE);
    blink_web_view_set_images_enabled(web_view, FALSE);
}

モバイルエミュレーション

モバイル端末として振る舞う場合:

void setup_mobile_emulation(GtkWidget* web_view) {
    const char* mobile_ua = "Mozilla/5.0 (Linux; Android 10) "
                            "AppleWebKit/537.36 Chrome/151.0.0.0 Mobile";
    blink_web_view_set_user_agent(web_view, mobile_ua);
}

WebKitGTK移行ガイド

API対応表

WebKitGTK BlinkGTK 互換性
webkit_settings_set_enable_javascript() blink_web_view_set_javascript_enabled() 同じ動作
webkit_settings_get_enable_javascript() blink_web_view_get_javascript_enabled() 同じ動作
webkit_settings_set_user_agent() blink_web_view_set_user_agent() 同じ動作
webkit_settings_get_user_agent() blink_web_view_get_user_agent() 同じ動作
webkit_settings_set_auto_load_images() blink_web_view_set_images_enabled() 同じ動作
webkit_settings_get_auto_load_images() blink_web_view_get_images_enabled() 同じ動作
webkit_settings_set_enable_local_storage() blink_web_view_set_local_storage_enabled() 同じ動作
webkit_settings_get_enable_local_storage() blink_web_view_get_local_storage_enabled() 同じ動作

移行コード例

Before (WebKitGTK):

WebKitWebView* web_view = webkit_web_view_new();
WebKitSettings* settings = webkit_web_view_get_settings(web_view);
webkit_settings_set_enable_javascript(settings, FALSE);
webkit_settings_set_user_agent(settings, "MyApp/1.0");

After (BlinkGTK):

GtkWidget* web_view = blink_web_view_new();
blink_web_view_set_javascript_enabled(web_view, FALSE);
blink_web_view_set_user_agent(web_view, "MyApp/1.0");

差分:


設定を適用するタイミング

設定は blink_web_view_new() の直後、URL を読み込む前に適用します。

GtkWidget *view = blink_web_view_new();

/* ページを読み込む前に設定する */
blink_web_view_set_javascript_enabled(BLINK_WEB_VIEW(view), FALSE);
blink_web_view_set_images_enabled(BLINK_WEB_VIEW(view), FALSE);
blink_web_view_set_user_agent(BLINK_WEB_VIEW(view), "MyApp/1.0");

blink_web_view_load_uri(BLINK_WEB_VIEW(view), "https://example.com/");

同梱サンプル blinkgtk_browser は設定を変更しない最小構成です。設定を試す
場合は、上記のように呼び出しを足してビルドし直してください
(examples/Makefile でそのままビルドできます)。


関連ドキュメント

APIリファレンス

チュートリアル

移行ガイド


バージョン履歴

バージョン リリース日 変更内容
v0.9.28-dev 2026-01-01 Build 174: 相互リンク追加
v0.9.27-dev 2026-01-01 Build 173: Settings APIドキュメント完成
v0.9.26-dev 2025-12-31 Build 172: 画像読み込み、ローカルストレージ制御追加
v0.9.25-dev 2025-12-31 Build 171: JavaScript制御、User-Agent設定追加

ライセンス: BSD-3-Clause
プロジェクト: BlinkGTK
メンテナー: BlinkGTK Lead daisy19@gmail.com