NavigatorUAData.getHighEntropyValues()
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
getHighEntropyValues()
は NavigatorUAData
インターフェイスのメソッドで、、ユーザーエージェントが返す 高エントロピー 値を格納した辞書オブジェクトで解決される Promise
を返し案す。
メモ: 「高エントロピー」「低エントロピー」という用語は、これらの値がブラウザーについて明らかにする情報の量を示します。
プロパティとして返される値は、低エントロピーであり、ユーザーを特定する可能性は低いと判断されます。
NavigatorUAData.getHighEntropyValues()
が返す値は、より多くの情報を明らかにする可能性があります。
そのため、これらの値は Promise
によって取得され、ブラウザーがユーザーの許可を求めたり、他のチェックを行ったりする時間を確保することができます。
構文
js
getHighEntropyValues(hints)
引数
hints
-
返すべきヒントを格納した配列で、 1 つまたは複数を指定します。
"architecture"
"bitness"
"model"
"platformVersion"
"uaFullVersion"
非推奨"fullVersionList"
返値
以下の値の一部またはすべてを含むオブジェクトに解決する Promise
です(リクエストされたヒントに基づく)。
brands
-
ブラウザーのブランドとそのバージョン (
NavigatorUAData.brands
が提供する情報と同じもの) を指定したbrand
とversion
を格納したオブジェクトの配列を返します。 なお、この情報はSec-CH-UA
(en-US) ヘッダーでサーバーへ送ることができます(低エントロピークライアントヒント)。 mobile
-
ユーザーエージェントがモバイル端末で動作している場合、
true
を返します(NavigatorUAData.mobile
が提供するのと同じ情報です)。 なお、この情報はSec-CH-UA-Mobile
(en-US) ヘッダーでサーバーへ送ることができます(低エントロピークライアントヒント)。 platform
-
"Windows"
のようにユーザーエージェントが動作しているプラットフォームを記述した文字列を返します(NavigatorUAData.platform
が提供する情報と同じものです)。 なお、この情報はSec-CH-UA-Platform
(en-US) ヘッダーでサーバーに送信できることができます(低エントロピークライアントヒント)。 architecture
-
プラットフォームアーキテクチャを格納した文字列。例えば
"x86"
です。 なお、この情報は、Sec-CH-UA-Arch
(en-US) ヘッダーでサーバーが明示的にリクエストされた後に、Accept-CH
へ送ることができることができます。 bitness
-
アーキテクチャのビット数を格納した文字列。例えば
"32"
または"64"
です。 なお、この情報は、Accept-CH
ヘッダーでサーバーが明示的にリクエストした場合、Sec-CH-UA-Bitness
(en-US) ヘッダーでサーバーに送ることができます。 model
-
モバイル端末のモデルを格納した文字列。例えば
"Pixel 2XL"
です。機器がモバイル端末でない場合、または機器のモデルが不明な場合はmodel
は""
になります。 なお、この情報は、Accept-CH
ヘッダでサーバーが明示的にリクエストすれば、Sec-CH-UA-Model
(en-US) でサーバーに送信することができます。 platformVersion
-
プラットフォームのバージョンを格納した文字列。プラットフォーム名自体は、常に低エントロピーのヒント
platform
として利用することができます。例えば"10.0"
です。 なお、この情報は、Accept-CH
ヘッダーでサーバーが明示的にリクエストすれば、Sec-CH-UA-Platform-Version
(en-US) ヘッダーでサーバーに送ることができます。 uaFullVersion
非推奨-
完全なブラウザーバージョンを格納した文字列。例えば
"103.0.5060.134"
です。fullVersionList
に取って代わられ、非推奨です。 なお、この情報は、Accept-CH
ヘッダーでサーバーが明示的にリクエストした場合、Sec-CH-UA-Full-Version
(en-US) ヘッダーでサーバーに送ることができます。 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
(en-US) ヘッダーでサーバーに送ることができます。
例外
NotAllowedError
DOMException
-
ユーザーエージェントが、リクエストされた
hints
の一つまたはそれ以上を返してはいけないと判断した場合に発生します。
例
以下の例では、getHighEntropyValues()
メソッドを使用して多くのヒントがリクエストされます。
プロミスが解決すると、この情報がコンソールに表示されます。
js
navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platformVersion",
"fullVersionList",
])
.then((values) => console.log(values));
仕様書
Specification |
---|
User-Agent Client Hints # dom-navigatoruadata-gethighentropyvalues |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- これらの値は、 HTTP リクエストヘッダー経由でも利用できます。
- 低エントロピーのクライアントヒントは自動的に送信されます。
- サーバーは
Accept-CH
ヘッダーを使用して、以降のリクエストで高エントロピーのクライアントヒントを受け取るようにリクエストすることができます。