Firefox ユーザーエージェント文字列リファレンス

この文書では、 Firefox 4 以降および Gecko 2.0 以降ベースのアプリケーションで用いられるユーザーエージェント文字列について説明します。 Gecko 2.0 での変更点について詳しくは Final User Agent string for Firefox 4 (blog 記事) をご覧ください。ユーザーエージェントの検出に関する文書や Hacks の投稿もご覧ください。

一般形

Firefox 自身の UA 文字列は、4つの部分に分けられます。

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion

  • Mozilla/5.0 はブラウザーが Mozilla 互換であることを示す一般的なトークンであり、今日のほとんどすべてのブラウザーで共通しています。
  • platform は、ブラウザーが動作しているネイティブプラットフォーム (例: Windows、Mac、Linux、または Android)、およびモバイル端末であるかを表します。 Firefox OS 端末は単に "Mobile" となり、ウェブがプラットフォームです。 platform は "; " (セミコロン) 区切りの複数トークンで構成されることがある点に注意してください。詳細や例については後述します。
  • rv:geckoversion は、Gecko のリリースバージョンを示します (例: "17.0")。最近のブラウザーでは geckoversionfirefoxversion が同じです。
  • Gecko/geckotrail は、ブラウザーが Gecko ベースであることを示します。
  • デスクトップ版では、 geckotrail は固定文字列 "20100101" です。
  • Firefox/firefoxversion はブラウザーが Firefox であることを示すとともに、バージョン番号を提供します (例: "17.0")。
  • モバイル版は Firefox 10 より、 geckotrailfirefoxversion が同じです。
メモ: Gecko ベースのブラウザー向けに推奨するスニッフィング法 (機能の検出を行う代わりにブラウザーエンジンのスニッフィングを行わなければならない場合) は、 "Gecko" および "rv:" の文字列が存在するかの検出です。これは、他ブラウザーの一部に "like Gecko" というトークンが含まれるためです。

Gecko ベースの他製品では下記 2 つの形式のいずれかであり、各トークンの意味は以下に記載した内容を除いて同じです:

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail appname/appversion
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion appname/appversion

  • appname/appversion は、アプリケーションの名称とバージョンを示します。例えばこれは、"Camino/2.1.1" や "SeaMonkey/2.7.1" となります。
  • Firefox/firefoxversion は、Firefox を想定する Web サイトと最大限の互換性を得るために一部の Gecko ベースのブラウザーが組み入れる場合がある、省略可能な互換性トークンです。 firefoxversion は一般的に、導入した Gecko のバージョンに相当する Firefox のリリースを表します。一部の Gecko ベースのブラウザーはこのトークンを使用しないかもしれません。従って、スニッフィングの際は Firefox ではなく Gecko を探してください! このトークンを表示するかは、"general.useragent.compatMode.firefox" という真偽値の設定項目で制御できます。

モバイルおよびタブレットの標示

Firefox 11 以降のみです。

UA 文字列で platform の部分は、 Firefox が携帯電話サイズまたはタブレットの機器で動作しているかを示します。携帯電話フォームファクターの機器で Firefox が動作している場合は、 Mobile; というトークンが UA 文字列で platform の部分に現れます。一方タブレット機器で Firefox が動作している場合は、 Tablet; というトークンが UA 文字列で platform の部分に現れます。例えば:

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0
バージョン番号は重要ではありません。バージョン番号を基に判断しないでください。

ある機器のフォームファクター向けのコンテンツを決めるために好ましい方法は、CSS メディアクエリの使用です。しかし機器のフォームファクターの対象コンテンツを決めるために UA スニッフィングを用いている場合は、携帯電話フォームファクターでは Mobi (Opera Mobile が "Mobile" ではなく "Mobi" と表記するため) を検索するようにして、"Android" と機器のフォームファクターに対応関連があるとは考えないようにしてください。そうすることで Firefox を他の携帯電話やタブレットのオペレーティングシステム向けに公開した場合や Android がラップトップ PC に使用された場合でもコードが動作します。また、タッチ対応デバイスを検出するには "Mobi" や "Tablet" を検索するのではなく、タッチ機能を検出してください。タブレットではないタッチ対応デバイスの場合もあります。

Firefox OS デバイスでは、オペレーティングシステムを示す部分がない形式となります (例: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0")。Web がプラットフォームです。

Windows

Windows のユーザーエージェントには以下のバリエーションがあり、その中で x.y は Windows NT のバージョンを表します (例えば、Windows NT 6.1)。

Windows のバージョン Gecko のユーザーエージェント文字列
x86 環境の Windows NT Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0
x64 環境の Windows NT での Win64 Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0
Windows NT での WOW64 Mozilla/5.0 (Windows NT x.y; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0

Macintosh

ここで x.y は Mac OS X のバージョンを表します (例えば、Mac OS X 10.6)。

Mac OS X のバージョン Gecko のユーザーエージェント文字列
Intel x86 または x86_64 環境の Mac OS X Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0
PowerPC 環境の Mac OS X Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0

Linux

Linux には多様なプラットフォームが存在します。いくつかの一般的な例は以下のとおりです。

Linux のバージョン Gecko のユーザーエージェント文字列
i686 環境の Linux デスクトップ Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0
x86_64 環境の Linux デスクトップ Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
x86_64 環境の i686 Linux デスクトップ Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
Nokia N900 Linux モバイルの Fennec ブラウザー Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0

Android (バージョン 40 以下)

フォームファクター Gecko のユーザーエージェント文字列
携帯電話 Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0
タブレット Mozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0

Android (バージョン 41 以降)

バージョン 41 以降の Android 版 Firefox では platform トークンに Android バージョンが含まれます。相互運用性向上のため、 Android 4 以前のバージョンでブラウザーが動作している場合は 4.4 と出力します。 Android バージョン 4 以降では実際のバージョン番号が出力されます。なお、Gecko エンジンはすべての Android バージョンに対して同じ機能を提供しています。

フォームファクター Gecko のユーザーエージェント文字列
携帯電話 Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
タブレット Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

Focus for Android

バージョン 6 より前では、 Focus for Android は Android WebView によって実現されていたため、以下の UA 文字列形式を使用していました。

Mozilla/5.0 (Linux; <Android Version> <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Version/4.0 Focus/<focusversion> Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>

タブレット版の WebView はモバイルのミラーですが、 Mobile トークンを含みません。

バージョン 6 から、 GeckoView ベースの Focus for Android は GeckoView の UA 文字列を使用して Gecko との互換性を示します。

Focus Version (レンダリングエンジン) ユーザーエージェント文字列文字列
1.0 (WebView Mobile) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36
1.0 (WebView Tablet) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36
6.0 (GeckoView) Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0

Klar for Android

バージョン 4.1 以降、 Klar for Android は Focus for Android と同じ UA 文字列を使用します。バージョン 4.1 より前では、 Klar/<version> product/version のトークンを送っていました。.

Klar バージョン (レンダリングエンジン) iOS 版 Firefox のユーザーエージェント文字列
1.0 (WebView) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Klar/1.0 Chrome/58.0.3029.83 Mobile Safari/537.36
4.1+ (WebView) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/4.1 Chrome/62.0.3029.83 Mobile Safari/537.36
6.0+ (GeckoView) Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0

Fire TV 向け Firefox

Fire TV 向け Firefox の場合は、一部のフィールドが実行時に v3.0 として置き換えられ、ユーザーエージェント文字列は次のようになります。

Mozilla/5.0 (Linux; Android 7.1.2) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/3.0 Chrome/59.0.3017.125 Safari/537.36

Echo Show 向け Firefox

Echo Show 向け Firefox の場合は、一部のフィールドが実行時に v1.1 として置き換えられ、ユーザーエージェント文字列は次のようになります。

Mozilla/5.0 (Linux; Android 5.1.1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.1 Chrome/59.0.3017.125 Safari/537.36

Firefox OS

フォームファクター Gecko のユーザーエージェント文字列
携帯電話 Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0
タブレット Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0
テレビ Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0
デバイス特有 Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0

デバイス特有のユーザーエージェント文字列

Mozilla は強く反対していますが、残念ながら一部の機器メーカーは端末の ID を表すトークンを、ユーザーエージェント文字列に含めています。これに当てはまる場合は Firefox OS のユーザーエージェント文字列が、前出の表で示したように端末特有の文字列になります。 nnnn; が、端末を示すメーカーのコードです (ガイドラインもご覧ください)。私たちは "NexusOne;", "ZTEOpen;", "Open C;" などを見つけました (空白を入れることも非推奨です)。ユーザーエージェント検出のロジックを支援するためにこの情報を提供しますが、 Mozilla はユーザーエージェント文字列でデバイス ID を検出することを推奨しません。

ユーザーエージェント文字列にデバイス ID を持つ場合を含むすべてのモバイルデバイスを検出するであろう、JavaScript の正規表現は以下のとおりです。

/mobi/i

i は大文字・小文字を区別しないことを示し、 mobi がすべてのモバイルブラウザーにマッチします。

国内モデルのユーザーエージェント文字列

Firefox OS のバージョン番号は UA 文字列に含まれませんので、 UA 文字列には Gecko のバージョンからバージョン情報を特定することができます。

Firefox OS のバージョン番号 Gecko のバージョン番号
1.0.1 18.0
1.1 18.1
1.2 26.0
1.3 28.0
1.4 30.0
2.0 32.0
2.1 34.0
2.2 37
2.5 44

この対応関係は Mercurial リポジトリ名から容易に判断できます。mozilla-b2g で始まるリポジトリが Firefox OS のリリースリポジトリであり、Firefox OS と Gecko の両バージョンがその名前に含まれています。

Firefox OS のバージョン番号は 4 つの数字があります: X.X.X.Y. 始めの 2 つの数字は Mozilla の製品チームが管理しており、新機能を伴うバージョンを表します (例: v1.1、1.2 など)。3 番目の番号はセキュリティ更新向けの定期的なバージョンの識別 (最大 6 週間ごと) として増えていきます。4 番目の番号は OEM が管理します。

iOS

iOS 版の Firefox では既定の Mobile Safari の UA 文字列に FxiOS/<version> トークンを追加したものになります。これは Chrome for iOS の UA 定義と同じ形式です

フォームファクター iOS 版 Firefox のユーザエージェント文字列
iPod Mozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPad Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4

Firefox Web Runtime

Web Runtime はデスクトップ版 Firefox と同じユーザーエージェント文字列を使います。

その他の Gecko ベースのブラウザー

以下は、さまざまなプラットフォームの Gecko ベースのブラウザーにおける UA 文字列の一例です。これらの多くはまだ Gecko 2.0 ベースで公開されていないことに注意してください!

ブラウザー Gecko のユーザーエージェント文字列
Maemo 版 Firefox (Nokia N900) Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1
Mac 版 Camino Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1
Windows 版 SeaMonkey Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
Mac 版 SeaMonkey Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
Linux 版 SeaMonkey Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1

アプリケーション、ベンダー、拡張向けの実装上の注意

Firefox 4 および Gecko 2.0 以前では、拡張機能が設定項目 general.useragent.extra.identifier を通してユーザーエージェント文字列を追加することができました (ユーザーエージェント文字列の旧版リファレンス をご覧ください。しかし、これは バグ 581008 により不可能になりました。

以前は特定のプラグイン・アドオン・拡張機能が、自身がインストールされていることを知らせるためにユーザーエージェント文字列を追加していました。現在、やむを得ず必要である場合に推奨される方法 (すべての要求が遅くなることに留意してください) は、カスタム HTTP ヘッダを設定すること です。

関連情報


Comments to mozilla.dev.platform

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, dynamis, hamasaki, yyss, kohei.yoshino, ethertank
最終更新者: mfuji09,