質問: 2 つめの WebExtension - Mozilla | MDNの`choose_beast.js`のコード中で`chrome`となっている部分が、英語版では`browser`となっています。どちらも同じように動作するようですが、これら2つの違いは何なのでしょうか?
回答: どちらもJavaScript APIの名前空間ですが、`chrome`はGoogle Chrome向けに作られた拡張機能の移植のために用意されています。より具体的には、`browser`では非同期処理のために`Promise`及びコールバックベースのAPIが利用できますが、`chrome`ではコールバックベースのAPIしか利用できないという違いがあります。 ちなみにGoogle Chromeでは`chrome`を、Edgeでは`browser`を使いますが、どちらもコールバックのみで`Promise`はサポートされていません。 参考: Google Chrome: JavaScript APIs - Google Chrome Microsoft Edge: Extensions - Supported APIs - Microsoft Edge Development | Microsoft Docs Mozilla Firefox: JavaScript APIs - Mozilla | MDN