NavigatorUAData: getHighEntropyValues() メソッド

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

メモ: この機能はウェブワーカー内で利用可能です。

getHighEntropyValues()NavigatorUAData インターフェイスのメソッドで、ユーザーエージェントが返す 高エントロピー 値を格納した辞書オブジェクトで解決される Promise を返し案す。

メモ: 「高エントロピー」「低エントロピー」という用語は、これらの値がブラウザーについて明らかにする情報の量を示します。 プロパティとして返される値は、低エントロピーであり、ユーザーを特定する可能性は低いと判断されます。 getHighEntropyValues() が返す値は、より多くの情報を明らかにする可能性があります。 そのため、これらの値は Promise によって取得され、ブラウザーがユーザーの許可を求めたり、他のチェックを行ったりする時間を確保することができます。

構文

js
getHighEntropyValues(hints)

引数

hints

返すべきヒントを格納した配列で、 1 つまたは複数を指定します。

  • "architecture"
  • "bitness"
  • "formFactor"
  • "fullVersionList"
  • "model"
  • "platformVersion"
  • "uaFullVersion" 非推奨;
  • "wow64"

返値

以下の値の一部またはすべてを含むオブジェクトに解決する Promise です(リクエストされたヒントに基づく)。

brands

ブラウザーのブランドとそのバージョン (NavigatorUAData.brands が提供する情報と同じもの) を指定した brandversion を格納したオブジェクトの配列を返します。 なお、この情報は 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 ヘッダーでサーバーに送信される可能性があります。

例外

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

関連情報