Qt WebEngine の変更点
Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。
私たちは各リリースにおいて、すべての公開 API のバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするために避けられない変更もあります。
このトピックでは、QtWebEngine におけるそれらの変更点を要約し、それらを扱うためのガイダンスを提供します。
移動したクラス
Qt WebEngine モジュール
Qt WebEngineQuick モジュールに名前が変更されました。これは、スーパーモジュールの名前と衝突しないようにするためと、他の Quick モジュールとの一貫性を保つためです。
Qt Quick アプリケーションを移植する場合は、qmake プロジェクトファイルで新しいモジュール名を使用することを忘れないでください。
QT += webenginequick
Qt WebEngineWidgets から Qt WebEngineCore へのクラスの移動
Widgets モジュールを使用していないいくつかのクラスは、Qt WebEngineWidgets から Qt WebEngineCore に移動されました。ほとんどの場合、インクルードヘッダーにモジュール名が含まれていない限り、この変更はソース互換性があります。
最小限の変更で移動したクラス
- QWebEngineHistory
- QWebEngineProfile
- QWebEngineScript
- QWebEngineScriptCollection
- QWebEngineClientCertificateSelection
- QWebEngineSettings
- QWebEngineFullScreenRequest
QWebEngineCertificateError
QML 版と C++ 版でエラーが統一され、クラスのメソッドでエラーの受け付け/拒否ができるようになりました。
QWebEngineContextMenuData
Core に移動され、QWebEngineContextMenuRequest という名前に変更されました。
QWebEngineDownloadItem
Core に移動され、名前がQWebEngineDownloadRequest に変更されました。
QWebEnginePage
Core に移動され、QWebEngineView またはQPrinter で動作していた API は移動され、QWebEngineView からのみアクセスできるようになりました。 変更された API を参照してください。
Qt WebEngineQuick から Qt WebEngineCore に移動したクラス
WebEngineNavigationRequest
がQWebEngineNavigationRequest に変更され、C++ API からもアクセスできるようになり、より情報量の多いQWebEnginePage::acceptNavigationRequest() が追加されました。
WebEngineNewViewRequest
WebEngineNewWindowRequest QWebEnginePage::createWindow および が追加され、C++ API からもアクセスできるようになりました。QWebEngineNewWindowRequest
変更された API
C++
QWebEnginePage::certificateError()
派生メソッドの代わりにシグナルになりました。エラーは、QWebEngineCertificateError クラスのメソッドによって受理または拒否されます。
QWebEnginePage::print()
QWebEngineView::print() に移動され、コールバック引数を受け取らなくなりましたが、代わりにQWebEngineView::printFinished() で終了を知らせるようになりました。同時に 2 つのアクティブな印刷ジョブを持つことはできませんでした。
QWebEnginePage::view()
QWebEnginePage とQWebEngineView が異なるモジュールになったため、削除されました。ページに関連付けられたビューには、静的ヘルパーQWebEngineView::forPage() を使用してアクセスできます。
QWebEngineProfile::defaultProfile() が削除されました。
が削除されました。デフォルトのプロファイルは記録外のプロファイルになり、明示的なプロファイルなしでQWebEnginePage が作成された場合にのみ使用されます。Qt 5 のような動作を維持するには、"Default" というグローバルプロファイルを作成し、すべてのQWebEnginePage を作成するときにそれを使用してください。
QML
WebEngineNavigationRequest
ナビゲーションリクエストは、他のリクエストオブジェクトと同様に accept() メソッドや reject() メソッドを使って受け付けたり拒否したりできるようになりました。
WebEngineNewViewRequest
WebEngineNewWindowRequest という名前に変更されました。
変更された動作
デフォルトプロファイル
デフォルトのプロファイルは記録されなくなりました。ディスクキャッシュやクッキーを含む標準的なブラウザのプロファイルを使用するには、独自のプロファイルを作成し、それを明示的に使用することをお勧めします。
QRCスキーム
デフォルトではカスタムスキームからアクセスできなくなり、ローカルコンテンツに直接アクセスすることもできなくなりました。Qt 5 の動作が必要な場合は、qrc スキームをカスタム URL スキームのように登録し、CorsEnabled と LocalAccessAllowed のアクセスフラグを設定することで元に戻すことができます。
QWebEngineUrlScheme qrcScheme(QByteArrayLiteral("qrc")); qrcScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::LocalAccessAllowed | QWebEngineUrlScheme::CorsEnabled | QWebEngineUrlScheme::ViewSourceAllowed); QWebEngineUrlScheme::registerScheme(qrcScheme);
OCSP 証明書の失効チェック
Qt 5 では、QWebEngineProfile::setUseForGlobalCertificateVerification(true) を使用して、Linux 上で OCSP を有効化することができました(QWebEngineProfile)。 Qt6 では、この特定の形式の OCSP は良くないと考えられているため、これは削除されました。Qt 6.2 では、Linux で失効した証明書をチェックする新しいメソッドはまだ追加されていません。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。