NavigatorUAData: getHighEntropyValues() メソッド
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
メモ: この機能はウェブワーカー内で利用可能です。
getHighEntropyValues() は NavigatorUAData インターフェイスのメソッドで、ユーザーエージェントが返す 高エントロピー 値を格納した辞書オブジェクトで解決される Promise を返します。
メモ:
「高エントロピー」「低エントロピー」という用語は、これらの値がブラウザーについて明らかにする情報の量を示します。
プロパティとして返される値は、低エントロピーであり、ユーザーを特定する可能性は低いと判断されます。
getHighEntropyValues() が返す値は、より多くの情報を明らかにする可能性があります。
そのため、これらの値は Promise によって取得され、ブラウザーがユーザーの許可を求めたり、他のチェックを行ったりする時間を確保することができます。
構文
getHighEntropyValues(hints)
引数
hints-
返すべきヒントを格納した配列で、 1 つまたは複数を指定します。
"architecture""bitness""formFactor""fullVersionList""model""platformVersion""uaFullVersion"非推奨;"wow64"
返値
以下の値の一部またはすべてを含むオブジェクトに解決する Promise です(リクエストされたヒントに基づく)。
brands-
ブラウザーのブランドとそのバージョン (
NavigatorUAData.brandsが提供する情報と同じもの) を指定したbrandとversionを格納したオブジェクトの配列を返します。 なお、この情報はSec-CH-UAヘッダーでサーバーへ送ることができます(低エントロピークライアントヒント)。 mobile-
ユーザーエージェントがモバイル端末で動作している場合、
trueを返します(NavigatorUAData.mobileが提供するのと同じ情報です)。 なお、この情報はSec-CH-UA-Mobileヘッダーでサーバーへ送ることができます(低エントロピークライアントヒント)。 platform-
"Windows"のようにユーザーエージェントが動作しているプラットフォームを記述した文字列を返します(NavigatorUAData.platformが提供する情報と同じものです)。 なお、この情報はSec-CH-UA-Platformヘッダーでサーバーに送信できることができます(低エントロピークライアントヒント)。 architecture-
プラットフォームアーキテクチャを格納した文字列。例えば
"x86"です。 なお、この情報は、Sec-CH-UA-Archヘッダーでサーバーが明示的にリクエストされた後に、Accept-CHへ送ることができることができます。 bitness-
アーキテクチャのビット数を格納した文字列。例えば
"32"または"64"です。 なお、この情報は、Accept-CHヘッダーでサーバーが明示的にリクエストした場合、Sec-CH-UA-Bitnessヘッダーでサーバーに送ることができます。 formFactor-
端末のフォームファクターを格納する文字列。例えば、
"Tablet"または「VR」など。 サーバーがAccept-CHヘッダーで明示的にリクエストした場合、この情報はSec-CH-UA-Form-Factorヘッダーでサーバーに送信される可能性があることに注意してください。 fullVersionList-
"brand"と"version"というプロパティを持つオブジェクトの配列で、それぞれブラウザー名とフルバージョンを表します。 例えば、{"brand": "Google Chrome", "version": "103.0.5060.134"}, {"brand": "Chromium", "version": "103.0.5060.134"}です。 サイトが修正されたブラウザーのリストに依存しないように、オブジェクトには意図的に不正な情報が含まれている場合があることにご注意ください。サーバーがAccept-CHヘッダーで明示的にリクエストした場合、この情報はSec-CH-UA-Full-Version-Listヘッダーでサーバーに送信される場合があります。 model-
モバイル端末のモデルを格納した文字列。例えば
"Pixel 2XL"です。機器がモバイル端末でない場合、または機器のモデルが不明な場合はmodelは""になります。 なお、この情報は、Accept-CHヘッダーでサーバーが明示的にリクエストすれば、Sec-CH-UA-Modelでサーバーに送信することができます。 platformVersion-
プラットフォームのバージョンを格納した文字列。プラットフォーム名自体は、常に低エントロピーのヒント
platformとして利用することができます。例えば"10.0"です。 なお、この情報は、Accept-CHヘッダーでサーバーが明示的にリクエストすれば、Sec-CH-UA-Platform-Versionヘッダーでサーバーに送ることができます。 uaFullVersion非推奨;-
完全なブラウザーバージョンを格納した文字列。例えば
"103.0.5060.134"です。fullVersionListに取って代わられ、非推奨です。 なお、この情報は、Accept-CHヘッダーでサーバーが明示的にリクエストした場合、Sec-CH-UA-Full-Versionヘッダーでサーバーに送ることができます。 wow64-
64 ビット版の Windows 上でユーザーエージェントのバイナリーが 32 ビットモードで実行されているかどうかを示す論理値。 この情報は、サーバーが
Sec-CH-UA-WoW64ヘッダーで明示的にリクエストした場合、Accept-CHヘッダーでサーバーに送信される可能性があります。
例外
NotAllowedErrorDOMException-
ユーザーエージェントが、リクエストされた
hintsの一つまたはそれ以上を返してはいけないと判断した場合に発生します。
例
以下の例では、getHighEntropyValues() メソッドを使用して多くのヒントがリクエストされます。
プロミスが解決すると、この情報がコンソールに表示されます。
navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platformVersion",
"fullVersionList",
])
.then((values) => console.log(values));
仕様書
| Specification |
|---|
| User-Agent Client Hints> # dom-navigatoruadata-gethighentropyvalues> |
ブラウザーの互換性
Loading…
関連情報
- これらの値は、 HTTP リクエストヘッダー経由でも利用できます。
- 低エントロピーのクライアントヒントは自動的に送信されます。
- サーバーは
Accept-CHヘッダーを使用して、以降のリクエストで高エントロピーのクライアントヒントを受け取るようにリクエストすることができます。