
普段MacでSafariを使ってインターネットを楽しんでいる人もたくさんいることでしょう。最初からSafari備わっているからついつい使ってしまいますよね。だけど、Safariを使っていくと気になるのが拡張機能の少なさ・・・ChromeやFirefoxを使ったことのある人ならわかると思うけど、拡張機能が段違いに少ない。
だけどその拡張機能を増やすことができる方法があったりする。そうそれがChrome拡張機能の移植。便利なものはやっぱりSafariでも使っていきたいですよね。今回はそんなChromeの拡張機能をSafariで使う方法を見ていくよ。
BigSurならChromeの拡張機能をSafariに移植できる
Chromeの拡張機能をSafariに移植するにはMacOSがBigSurなら行うことができる。AppleのページにもChromeの機能拡張をSafariに移植できますと書かれていますね。
WebExtensions APIに対応
WebExtensions APIの新しいサポートと移行ツールを使って、デベロッパはChromeの機能拡張をSafariに移植できます。お気に入りのデベロッパによる新しいSafariの機能拡張を使って、ウェブ体験をカスタマイズでき
ます。
自分のMacOSが気になる場合は、りんごのマークから「このMacについて」をクリックして確認してみよう。
アップデートしていない場合は、ソフトウェア・アップデートから新しいアップデートがないか確認してみるといいぞ。
拡張機能の移植にはXcodeを使うよ
Chromeから拡張機能をSafariに移植するにはXcodeが必要になってくる。
- Xcodeプロジェクトを作成します
- Safariに拡張機能をインストールするmacOSアプリやiOSアプリを使用してXcodeプロジェクトを構成します
- Xcodeプロジェクトの拡張ファイルを使用してSafariWeb拡張を構成します
XcodeはiPhoneアプリを作る時なんかに使ったりするものだけど、AppStoreからダウンロードすることができるよ。ただXcode容量大きいんだよね、だからインストールなんかにもそれなりに時間がかかると思います。とはいえ拡張機能を移植するのに必要だからインストールしておこう。
Chrome拡張機能をSafariに移植する流れ
Chromeの拡張機能をSafariに移植するには移植するコマンドを実行すればOK。
コンバーターを実行するには、ターミナルアプリを開き、オプションを指定して
xcrun
コマンドを実行safari-web-extension-converter
し、既存の拡張ファイルのパスを指定します。
xcrun safari-web-extension-converter /path/to/extension
/path/to/extensionは移植したいChrome拡張機能のパスを指定してあげないといけないけど、Chromeの拡張機能の保存場所が分からないと知ることができないな。どこに保存されているんだ?
Chrome拡張機能の保存場所
Chromeの拡張機能の保存場所なんだけど、以下のパスに保存されている。
- '/Users/(ユーザー名)/Library/Application Support/Google/Chrome/Default/Extensions'
Finderから中身を除いてみると色々入っているけど、意味のわからない英語の羅列で何がなんの拡張機能なのか全く分からん。
これはそれぞれ拡張機能のIDで管理されているから分からなくなってるね。拡張機能のIDはChromeの拡張機能を管理から見ることができる。試しにFireShotのIDを見てみよう。
このidがFinderでも見られたわけですね。Finderから同じものがないか見てみるとありました。
これがFireShotのID、FireShotをSafariに移行したかったらこのパスをコマンドに指定してやればいいわけです。パスってなんだよ?って感じだけど、これはターミナル開いてドラッグ&ドロップすれば簡単にみることができる。
ここで表示されたものをコピーしておいて後で使おう。
コマンドを実行して拡張機能を移植する
移植するコマンドはこれだったから、このパスをさっきコピーしたFireShotのパスにして試してみよう。
xcrun safari-web-extension-converter /path/to/extension
直下にmanifest.jsonがないとダメみたい
FireShotの拡張機能のフォルダを指定したつもりだけど、manifest.jsonをparseできねえとかでエラー起きましたね。
Unable to parse manifest.json at file:///Users/U/Library/Application%20Support/Google/Chrome/Default/Extensions/mcbpblocgmgfnpjjppndjkmgjaogfceg/
フォルダの中身を見てみると、中にもバージョンのようなフォルダがあってその中にmanifest.jsonがあった。
このフォルダを指定しないとダメみたいだから、同じようなエラーが起きたら指定したフォルダの直下にmanifest.jsonがあるか確認してみるといいかもしれない。
コマンドを実行する
さあコマンドを実行しよう。そうすると以下の質問がされるけどyesと回答して進む。
- Is this correct?・・・yes
- [Y/n]・・・Y
ビルドを実行する
Xcodeが開かれるけど、アプリケーションをビルドして実行する必要があるみたいだから左上の再生ボタンを押してビルドする。
「Buid Success」と表示されれば成功だよ!!
Safariで拡張機能を使えるようにする
ビルドに成功したらSafariを開いてメニューの[開発]から[未署名の拡張機能を許可]をクリック。
そしたらSafari拡張機能にChromeから移植したFireShotが追加されました。こいつにチェックを入れてやろう。
追加した拡張機能を使ってみる
これでSafriで移植した拡張機能を使うことができるはずだから使ってみよう。FireShotのアイコンが左上に追加されていますね。
実際に使ってみると普通に使える!!
素晴らしいですね。これでSafariでスクショを簡単に撮ることができるようになってしまった。
まとめ
Chromeの拡張機能をSafariで使うことができるのは便利ですね。今回はChromeの拡張機能であるFireShotをSafariに移植して使えるようにしたけど、他のものも同じようにSafariに移植できると考えるとかなり使いやすくなりますね。
Safari使いたいけど、拡張機能少ないから他のブラウザ使っているっていう人は移植するといいかもしれない。