Closed dynamis closed 3 years ago
必須ではないがついでに変更すると嬉しい振る舞い:
戻るショートカットキー back の有効無効も環境変数で切り替え可能に (デフォルトオン)
WEBVIEWER_ENABLE_BACK=0 webviewer
browser.startup.homepage
prefs 設定のページを起動時及びホームページショートカットキー Alt + Home で読み込む (デフォルトオフ)
WEBVIEWER_ENABLE_HOMEPAGE=1 webviewer
環境変数以外に webviewer.back.enable=true
, webviewer.homepage.enable=true
, webviewer.quit.enable=false
などの prefs での有効無効切り替え (環境変数優先) があると環境変数設定の省略ができて楽
note: ショートカットキー https://support.mozilla.org/ja/kb/keyboard-shortcuts-perform-firefox-tasks-quickly#w_nabigeshiyon
@NaokiNoguchi 実装方針ですが、browser.js で処理を実装、それを呼び出す commandset/keyset を xul 側で登録するというのが xul 時代のブラウザ実装でした。webviewer はシンプルになってますが firefox もコードを見れば実装は同じと分かるかと思います (xul tutorial とかでも説明があるはず)
html 化して xul 的流儀は不要になってるのであれば html 側には何もせず browser.js 側でイベントリスナ登録するだけで良いのかも知れません。
そのあたりは @hATrayflood のレビューを受けてくださいませ。
環境変数の操作は Cc["@mozilla.org/process/environment;1"]
っぽいので Fx78 時代の利用例を検索するとこんな感じで出てくるのでこの辺りで環境変数の有無、値を見る方法が分かるかと:
https://searchfox.org/mozilla-esr78/source/browser/components/migration/FirefoxProfileMigrator.jsm#184-192 https://searchfox.org/mozilla-esr78/source/browser/components/attribution/AttributionCode.jsm#192-198 https://searchfox.org/mozilla-esr78/source/browser/components/migration/content/migration.js#43-47
隠しショートカットキーとして欲しいものを改めて考えてみた。 組込用途で勝手に変えられると不味いケースが主だと思うので以下全てデフォルトオフ。
なお、欲しいことがあるかも知れない機能でもコマンドラインオプションが存在する機能は重複して入れてはならないことに注意 https://developer.mozilla.org/ja/docs/Mozilla/Command_Line_Options この辺りは webviewer デモ動くのか確認した上で https://github.com/webdino/amethyst/wiki/Tips にも記載しておきたい。
note: backspace = 戻る は Firefox 91 では廃止済みになるため WebViewer 91 では削除が必要になることに注意 (ショートカット表に入ってなかったのはそういうことか) https://www.mozilla.org/en-US/firefox/87.0/releasenotes/
To prevent user data loss when filling out forms, we’ve disabled the Backspace key as a navigation shortcut for the back navigation button. To re-enable the Backspace keyboard shortcut, you can change the about:config preference browser.backspace_action to 0. You can also use the recommended Alt + Left arrow (Command + Left arrow on Mac) shortcut instead.
下記のキーと機能で対応
・Ctrl+home → about:homeを開く ・Ctrl+[,Alt+⇦ →戻る ・Ctrl+],Alt+⇨ →進む ・F5 or Ctrl+R →リロード ・Ctrl+F5 or Ctrl+Shift+R→キャッシュを使わないリロード ・Ctrl + + →拡大 ・Ctrl + - →縮小 ・Ctrl + 0 →リセット ・Ctrl+ , →about:preferences ・Ctrl + . →about:about ・Ctrl + / →about:config ・Ctrl + Q →終了
有効にする場合は objDir/bin/distにて「export WEBVIEWER_ENABLE_HOMEPAGE=1 webviewer」を実行
実際の利用時にはキーボードなどからの終了方法は存在してはならないため削除している/実装していないが、試験時には終了ができないと OS 再起動をするしかなくなるケースが存在する (ボード/BSP 側でスクリーン切り替え時にフリーズする問題などがあるとシリアルコンソール経由以外でターミナルに切り替える手段がなくなるなど)。
デフォルトオフだが特定の環境変数が有効になっていると Ctrl+Q (Firefox のブラウザ終了ショートカットキー) と同一のキーで終了が可能になるようにしたい。
Firefox だと終了前の確認とかが実装されてるがこちらは通常提供しない機能かつ試験時にのみ有効化するものなので確認ダイアログの表示などは不要
環境変数名は MOZ_ENABLE_WAYLAND とか NSS_xxx とか GDKxxx に倣って WEBVIEWER xxxじゃなくて WV_xxx と短くしても良いかも。他に使ってる人がいなければ。