Microsoft Edge (Chromium 版) の User Agent Overrides

## User Agent Overrides とは

- Microsoft Edge (Chromium 版) には特定の Web サイトにアクセスする際に標準のユーザーエージェントとは別のものに書き換える User Agent Overrides 機能がある
- 現時点 (2019年12月25日現在) では User Agent Overrides 機能はベータ版だけに導入されている。Canary (デイリービルド版) と Dev (ウィークリービルド版) では導入されていない。

## ユーザーエージェントが書き換えられるウェブサイト

edge://compat/useragent で確認できる。

<img width="745" alt="microsoft-edge-ua-orverride.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139365/853146a8-6741-7920-e8ef-623d7b00d136.png">

## Microsoft Edge (Chromium 版) のデフォルト UA 文字列

[Microsoft Edge User Agent String \- Microsoft Edge Development \| Microsoft Docs](https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-string) にユーザーエージェント文字列の例が載っている。

> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43

## User Agent Overrides についての Microsoft 公式資料

[Microsoft Edge User Agent String \- Microsoft Edge Development \| Microsoft Docs](https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-string)

> Sometimes, a website does not recognize the updated version of the Microsoft Edge UA. As a result, a set of the features of that website may not work correctly. When Microsoft is notified about these types of issues, website owners are contacted and informed about the updated UA.
> 
> The sites often need some time to update and test the UA detection logic to address the issues that Microsoft reports to site owners. In these cases, Microsoft uses a list of UA overrides in our Beta channel to maximize compatibility for users who access these sites. The overrides specify new UA values that Microsoft Edge should send instead of the default UA for specific sites. You are able to view the list of UA overrides that are currently being applied by navigating to edge://compat/useragent in Microsoft Edge Beta.
> 
> Our Canary and Dev channels do not currently receive UA overrides so that web developers have an environment where they can easily reproduce issues on their sites that are caused by the default Microsoft Edge UA. If for some reason you require the ability to disable UA overrides in Microsoft Edge Beta, you may run msedge.exe using the following command line argument:
> 
> --disable-domain-action-user-agent-override

## 公式資料の意訳

ウェブサイトが新しい Microsoft Edge UA のバージョンを認識しない場合があります。
その結果、そのウェブサイトの一連の機能が正しく動作しない場合があります。
これらの問題を Microsoft に届け出ると、ウェブサイトの所有者に新しい UA について連絡します。

往々にして、これらのウェブサイトは UA 検出ロジックの修正とテストに時間がかかります。
このような場合、ユーザーがウェブサイトにアクセスする際の互換性を最大化するために、ベータ版 (6週間ごとのビルド版) にある UA オーバーライドのリストを使います。
オーバーライドは、デフォルト UA の代わりに、特定のウェブサイト用に設定された新しい UA を使います。
Microsoft Edge Beta 版では edge://compat/useragent にアクセスすると、現在適用されている UA オーバーライドのリストを表示します。

現在、Canary (デイリービルド版) および Dev (ウィークリービルド版) では UA オーバーライドを使用していないため、デフォルトの Microsoft Edge UA によって発生する問題を手軽に再現できます。
何らかの理由で UA オーバーライドを無効にしたい場合は、msedge.exe にコマンドライン引数 --disable-domain-action-user-agent-override を指定することでできます。

## 参考資料
- [新しい Microsoft Edge と Bing のご紹介 \- Windows Blog for Japan](https://blogs.windows.com/japan/2019/11/13/introducing-the-new-microsoft-edge-and-bing/)
- [Microsoft Edge Insider Channels をダウンロード](https://www.microsoftedgeinsider.com/ja-jp/download)
- [Microsoft Edge \(Chromium 版\) のユーザーエージェント \- Qiita](https://qiita.com/niwasawa/items/c9f8f61fab4f0203dead)