もともとFirefoxで提供していたShrotcutKey2URLという拡張機能ですが、WebExtensions版を実装するうえで課題となっていた部分がFirefox60で解決したので、やっとWebExtensions版をリリースすることが出来ました。
ShortcutKey2URL は、ショートカットキーを使用してURLを開いたり、移動したり、JavaScriptを実行できる拡張機能です。
スタートアップキー(デフォルトはCtrl+Period、MacはCommand+Period)であらかじめ設定しておいた動作の一覧を表示し、次のキーでその動作を実行します。この2段階動作が、ShortcutKey2URLの特徴です。
キーとして設定しておける文字は1文字に限定されません。2文字以上で設定することも可能です。これによって、キーの自由度が高まります。たとえば、Googleのサービスは先頭1文字は"G"として、2文字目で各サービスを表すといったような、階層を持たせることができます。
また動作として設定できるものには、下記のようなものがあります。
- URLへの移動。既に開いているURLの場合は、そのタブへ移動し、開かれていない場合には、新しいタブとして開く。
- 新規タブとしてURLを開く。
- 現在のタブにURLを開く。
- 現在のタブで指定したJavaScriptを実行する。
- 新規タブとしてURLを開いて、その後に指定したJavaScriptを実行する。
アドオンのIDはWebExtensions以前と同じものにしていますので、もしも古いものが入ったままで無効となっている人は、更新していただければ新しいもの(バージョン4.0.0)が入ります。なお、実装が大きく変わっていることもあり、設定は引き継がれません。申し訳ありません。
一部Firefox用に調整した部分もありますが、機能的には下記Chrome版と同じです。
Firefox 60 で解決したもの
ShortcutKey2URLのWebExtensions版を実装するうえで課題となっていたのは、下記の2つに関するものでした。
- 1324255 - Opening a popup does not focus the browser frame
- 1421811 - Provide a way for an extension to update the shortcut for its command
1番目は、browser actionで開いたポップアップウインドウにフォーカスが設定されないといった問題で、ShortcutKey2URLは、ポップアップウインドウ上でのキー入力を拾うようになっているため、これができないと先に進めない状態でした。
2番目は、拡張のショートカットキーを変更する仕組みです。ShortcutKey2URLの起動キーは自由に変えられないと使い勝手が悪すぎるので、とても重要な機能です。
なお、Chromeではショートカットキーを変更するUIがありますが、Firefoxはいったん上書きするAPIだけ提供されました。UIの部分は、下記で検討されています。
UI的なものを1から実装するのはかなり面倒なため、今回はPiroさんの下記ライブラリを利用させていただいています。ありがとうございます。