Qt WebEngine デバッグとプロファイリング

コンソールログ

Qt WebEngine 内で実行される JavaScript は、Chrome のコンソール API を使ってコンソールに情報を記録できます。ロギングメッセージは、js logging category 内の Qt のロギング機能に転送されます。ただし、デフォルトでは警告と致命的なメッセージのみが出力されます。これを変更するには、js カテゴリにカスタムルールを設定するか、QWebEnginePage::javaScriptConsoleMessage() を再実装するか、WebEngineView::javaScriptConsoleMessage() に接続することでカスタムメッセージハンドラを提供する必要があります。

すべてのメッセージはQt WebEngine 開発者ツールからもアクセスできます。

Qt WebEngine 開発者ツール

Qt WebEngine モジュールは、ウェブコンテンツのレイアウトやパフォーマンスの問題を簡単に検査し、デバッグできるウェブ開発者ツールを提供します。

開発者ツールは、Chrome ブラウザなどの Chromium またはQt WebEngine ベースのブラウザを使用して、ローカル Web ページとしてアクセスします。

開発者ツールを有効にするには、Qt WebEngine を使用するアプリケーションを、コマンドライン引数--remote-debugging-port=<portnumber> で起動します。

注: WebEngine コマンドラインオプションは、--webEngineArgs オプションの後に指定する必要があります。このオプションは、ユーザーのアプリケーション固有のオプションとWebEngine のオプションを分離するために使用されます。

--webEngineArgs --remote-debugging-port=<portnumber>

<port_number> はローカル・ネットワーク・ポートを指します。ウェブ開発者ツールは、http://localhost:<port_number> のアドレスでブラウザを起動することでアクセスできます。

あるいは、環境変数 QTWEBENGINE_REMOTE_DEBUGGING を設定することもできます。これは、--remote-debugging-port と同様に動作するポートだけを設定することも、ホスト・アドレスとポートの両方を設定することもできます。後者を使用すると、インターフェースをエクスポートするネットワークインターフェースを制御できるため、リモートデバイスから開発者ツールにアクセスできます。

<origin> リモート・デバッグ中の WebSocket エラーを回避するには、追加のコマンドライン引数--remote-allow-origins=<origin>[,<origin>, ...] を追加します。すべてのオリジンからの接続を許可するには、--remote-allow-origins=* を使用します。何も指定しない場合、リモートデバッグが有効になっていると、Qt WebEngine はコマンドライン引数に--remote-allow-origins=* を追加し、すべてのオリジンからのリクエストを許可します。

開発者ツールの機能の詳細については、Chrome DevTools のページを参照してください。

コマンドライン引数の使用

デバッグ中に以下のコマンドライン引数を使用すると、バグレポートに入力できます:

  • --disable-gpu GPU ハードウェア アクセラレーションを無効にします。これは OpenGL の問題を診断するときに便利です。
  • --disable-logging コンソールロギングを無効にします。これはデバッグビルドに便利です。
  • --enable-logging --log-level=0 コンソールロギングを有効にし、ロギングレベルを 0 に設定します。これは、 以上の重大度のメッセージがログに記録されることを意味します。これはデバッグビルドのデフォルトである。その他の可能なログレベルは、警告の場合は 、エラーの場合は 、致命的なエラーの場合は である。info 1 2 3
  • --v=1 ロギング・レベルを が可能なレベル以上に上げ、冗長性レベル までデバッグ・メッセージをロギングできるようにする。これより高い数値は、さらに冗長性を高めますが、ログに記録されるメッセージの数が多くなる可能性があります。デフォルトは (デバッグ・メッセージなし)です。--log-level 1 0
  • --no-sandbox レンダラとプラグインプロセスのサンドボックスを無効にします。サンドボックスを無効にすると、セキュリティ リスクがあることに注意してください。
  • --single-process ブラウザと同じプロセスでレンダラーとプラグインを実行します。これは、レンダラーがクラッシュしたときのスタックトレースを取得するのに便利です。
  • --enable-features=NetworkServiceInProcess メインプロセスでネットワーキングを実行する。QtWebEngineProcess ではなく、アプリケーションの実行ファイルのみをホワイトリストに登録する必要があるため、ファイアウォールの管理に役立ちます。しかし、これはネットワークサービスのサンドボックスのセキュリティを失うことを意味します。

WebEngine コマンドラインオプションは、--webEngineArgs オプションの後に指定する必要があります。 オプションは、ユーザーのアプリケーション固有のオプションと、WebEngine オプションを分離するために使用されます。

--webEngineArgs [WebEngine specific options]

また、環境変数QTWEBENGINE_CHROMIUM_FLAGSを設定することもできます。例えば、mybrowserというアプリケーションのデバッグ中にロギングを無効にするには、次の値を設定します:

QTWEBENGINE_CHROMIUM_FLAGS="--disable-logging" mybrowser

QTWEBENGINE_CHROMIUM_FLAGSは、QtWebEngineQuick::initialize()の前に呼び出すと、アプリケーション内からqputenv

WebEngineContext 情報のダンプ

WebEngineContext 情報をダンプするには、環境変数QT_LOGGING_RULES"qt.webenginecontext.debug=true" に設定します。

出力される情報には、グラフィカルなバックエンドに関する情報と、Qt WebEngine がアプリケーション用に初期化される方法が含まれます。これは特に問題の再現に役立ちます。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.