-
Notifications
You must be signed in to change notification settings - Fork 2
Limitations
dynamis edited this page Jan 26, 2024
·
40 revisions
Gecko Embedded で移植・サポートしているビルドの主な制限事項をまとめています。
Renesas RZ/G2 上の Gecko で共通の制限事項となっているもの
- MSE による動画ストリーミング再生に未対応 issue #87
- Gecko 68 on RZ/G2M では問題ない。
- フルスクリーン固定ビルドにする必要がある (ウィンドウ動作が不安定) issue #72
- ウィンドウサイズの変更やマルチウィンドウで動作するコンテンツに対応できない
- ピッカー系フォーム機能が使えない issue #78
- 正常動作はするがピッカーで開いたウィンドウを閉じずにブラウザにフォーカスを移すと、ピッカーウィンドウがフルスクリーン固定のブラウザ背後に表示され操作不能になる
- 特にファイルピッカーはモーダル処理であるためブラウザ側も一切操作を受け付けなくなってしまう
- ファイルのダウンロード保存はサポートしない (保存確認のダイアログが出る設定の場合)
- ダウンロードダイアログもブラウザよりの背後に表示されると操作不能になる。但し、設定によりダイアログ表示をせず指定のフォルダに自動ダウンロードするようにしている場合は利用可能
- 実機端末上で開発ツールを別ウィンドウに分離してはならない
- メインウィンドウ内で表示する限り問題なく使えるが、別ウィンドウにしてからブラウザの背後に表示されると操作不能になる (実機上でデバッグする理由が特になければリモートデバッグを推奨)
- Firefox ビルドではブラウザ UI 部分を操作すると不安定
- Firefox ビルドそのままではブラウザアプリとしてはいろいろな UI 操作時にクラッシュする
- フルスクリーンでもロケーションバーなどの操作時にクラッシュしやすい
- マウス利用時に範囲選択・ドラッグ操作を行うとクラッシュすることがある
- 高負荷処理での安定性
- 高負荷ベンチマーク (OrangeMark などでの GPU 高負荷時?) で不正終了することがある
- Service Worker と Push 通知は ESR 60 や ESR 68 ではデフォルトオフ
-
dom.serviceWorkers.enabled
とdom.push.enabled
をtrue
にすると有効化され基本的な動作に支障はありませんが、Mozilla としては安定した機能・実装としてサポートしない扱いとしていることには注意が必要です
-
- WebRender 非対応 (性能面の制約)
- Gecko 60 ではデフォルトオフだが例え設定変更しても WebRender を有効化できない
- Linux では Gecko 91 以降に正式サポート (Wayland 除く)された機能であり Gecko 60,68 での対応予定無し
現時点では Renesas RZ/G2 上の Gecko で共通の制限事項だが解消方法が分かっているか解消の見込みがあるもの
- マウスカーソルアイコンが適切に変化しない issue #79
Renesas RZ/G2 上の Gecko 60 に限った制限事項 (Gecko 68 で解消されるもの)
- MSE による動画ストリーミング再生に未対応 issue #87
- Gecko 60 でのみ問題が発生しているが詳細な原因と解決策については未調査
- ARM64 サポートが不完全 (性能面の制約)
- IonMonkey (最適化 JIT エンジン) を有効化できない
- 実アプリへの影響はそこまでではないが JS ベンチマークの数値は顕著に低くなる
- WebAssembly が利用できない
- IonMonkey (最適化 JIT エンジン) を有効化できない
- e10s (コンテンツのマルチプロセスウィンドウ) 非対応 (性能面の制約)
- APZ (Async Pan-Zoom) に非対応
機能的な制限事項ではないがメンテナンス上の課題:
- Gecko 60.5.0 以降にアップグレードできていない issue #69
Renesas RZ/G2 上の Gecko 68 に限った制限事項
- e10s (コンテンツのマルチプロセスウィンドウ) を有効にしていると WebGL の FPS が頭打ちになり性能が十分でないことがある issue #91
- about:config の
browser.tabs.remote.autostart
を false にするかMOZ_FORCE_DISABLE_E10S=1
付けて起動することで e10s を無効化すると性能低下は生じないため、WebGL の利用を想定するときは e10s を無効化する
- about:config の
以下の機能については動作するが、デフォルトの BSP とデフォルト設定では使えない (BSP 側のビルド設定変更などで解決する)
- 音声
- 音声を出すにはカーネルの設定変更が必要
- WebRTC
- 現状デフォルトの BSP に UVC モジュールが入っていないため使えない (モジュールを入れれば動作する) issue #76
- WebRTC のコーデックとして H.264 はサポートしておらず、VP8,9 等を利用する必要がある
Renesas RZ/G2 上の Gecko 60 における制限事項
- RZ/G1E on VLP 2.1.0 or later にて WebGL が動作しない issue #90
開発ボードがサポートするハードウェアや BSP でサポートするモジュールの制約などにより実機での動作が未検証なものや、動作の確認はしているが組み込みの実際の用途で有用ではないといった理由から、サポート対象としない API は次の通りです (必ずしも動作しないわけではない。WPT テストなどは通っているものも含む):
-
Ambient Light Events
- Gecko 62 からサポートしている機能だが、光センサー搭載デバイス&OS 側の API 実装がある環境がないため未検証
- 組み込み環境では不要な機能と想定しサポート対象外としている (センサー類の値はネイティブ実装からなど別の方法で得るのが一般的)
-
Encrypted Media Extension API
- DRM 対応コンテンツを CDM (Google WideVine など) と組み合わせてデコード・再生するための機能だが、RZ/G プラットフォーム向けの CDM を DRM 開発企業から提供されていないため使えない (CDM さえあれば動作するのかも未検証)
-
Gamepad API
- USB ゲームパッド (SNES Controller など) を接続しても lsusb には追加されるがドライバがないのかブラウザからは認識されない。ゲームパッド用のドライバを用意するなどすれば動作するはず
- 組み込み環境では不要な機能と想定しサポート対象外としているが、需要がある場合は検証・対応を検討する
-
Geolocation API
- GPS や周囲の LTE 基地局や無線ネットワーク情報などから位置を取得する機能。必要な情報の得られるデバイスさえ接続すれば動作するはずだが未検証
-
Notification API
- 動作はするが OS 側で通知機能を用意しているわけではないため、通知ウィンドウが固定位置ではなくランダムな位置に表示される。通知ウィンドウの設定メニュー表示位置もずれる問題もあり実用的ではない。
- 組み込みでは実際には OS 標準 UI に通知する機能を使うのではなく自ら通知メッセージの表示方法まで制御するのが通常であり、サポート対象外として扱う
-
Orientation API, event
- 傾き・加速度センサー搭載端末がないため未確認
- 組み込み環境では不要な機能と想定しサポート対象外としている
-
Payment Request API
- 課金や認証周りは想定用途外で未検証。単にテストしてないだけ。
-
Presentation API
- 別画面の操作は想定していないためテストしていない。単にテストしてないだけ。
-
Resource Timing API
- 動作するハズだが時刻の精度については未検証 (精度を保証しない API なので API 対応自体はしていると言える)
-
Vibration API
- バイブレーター搭載端末がないため未確認
- 組み込み環境では不要な機能と想定しサポート対象外としている (振動モーターなど使うにしても Web API そのままで良いケースは少ない)
-
Web Authn
- Gekco 60 から USB U2F Token のサポートが入ってるはずだが未検証
- WebVR
- RZ/G の BSP でサポートしている VR デバイスがない (あれば動く可能性はある)