Chrome用の機能拡張をSafariでも使いたい!変換してインストールしてみた

macOS Big Sur 11.0から、Chrome用の機能拡張をSafari用に変換して使えるようになりました。Chromeで使っていて便利なツールが、Safariでもそもまま使えるのは嬉しいですし、豊富なChromeライブラリーから選べるのも心強いところ。変換作業もカンタンです。

[追記 21/06/06]もしかすると、機能拡張の仕様が統一されるかもしれないので、大いに期待しています :D
Apple、Google、Mozilla、Microsoftが協力してブラウザ拡張の改良を推進 - ソフトアンテナブログ
https://softantenna.com/wp/software/apple-google-mozilla-microsoft-universal-web-browser-extensions/

なぜ、Chrome用の機能拡張をSafariで使いたいのか?

ここ最近、久しぶりにSafariをメインブラウザーに戻していますが、元々、私がメインで使っていたのはChrome互換ブラウザー(いわゆるChromium)のSRWare Ironです。これは、Chromeをベースに、セキュリティーやメディア再生の余計な機能を削り落としたドイツ製ブラウザー。Chromeとして振る舞うので、厳格にブラウザーをチェックするサービス以外、普段のブラウズにはほとんど支障はありませんでした。

ところが、Googleの方針でChromeのセキュリティー設定が厳格になったために、Chromiumでは、複数のデバイス間の同期ができなくなってしまいました。それまでは、Googleアカウントを経由して、初期設定やブックマーク、閲覧履歴、機能拡張などが自動で同期できていて便利だっただけに、ちょっと残念。

Chrome互換ブラウザーでは機能拡張や設定が同期できない
Chrome互換ブラウザーでは機能拡張や設定が同期できない

また、Chromeのリリースサイクルも短くなることがアナウンスされ、そうでなくてもユーザーが少ないIronのアップデートが、スムーズにキャッチアップできるとも思えません。
そもそも、Chrome系は、レスポンスよく動作させるために、その時使えるメモリを思い切り使うので、写真やビデオ編集アプリケーションと同時に起動していると、動作が厳しい時もありました。
そんないくつかの状況が重なり、Apple M1のMacBook Airを導入したこともあって、思い切ってメインのWebブラウザーをSafariに戻したというわけです。

しかし、そこで困ったのが、それまでよく使っていた機能拡張にSafari用がないこと。普段、何気なく頻繁に使っていたので、それらがないと作業効率が落ちてしまいます。だったら、変換して使ってみよう、というわけです。

Chrome用の機能拡張をSafari用に変換すると、幸せになれる人

  • macOS Big Sur 11.0で、デフォルトブラウザーにSafariを使っていている、使うかもしれない人
  • 使っていたり、使いたいChrome用の機能拡張があるものの、同等のことが実現できるSafari用の機能拡張がなくて困っている
  • ターミナルとXcodeに抵抗がないユーザー

Chrome用の機能拡張をSafari用に変換するとココがいい!

  • Chrome用の機能拡張をそのままSafariでも使える
  • ターミナルとXcodeでビルドするだけと、作業はいたってシンプル
  • もちろん、追加コストなし

Chrome用の機能拡張をSafari用に変換するときの注意点

  • macOS Big Sur 11.0のみ。試しに、macOS Catalina 10.15で変換したり、macOS Big Sur 11.0で変換済みの機能拡張を同期したところ、Safariが一時的に起動しなくなった(わざわざやってみた)。
  • 元の機能拡張のアップデートは通知されない。アップデートされていれば、再度、Chromeでアップデートし、変換する作業が必要。
  • 公式に許可された機能拡張ではないため、セキュリティー上のリスクがゼロではない。
  • サポートなし。

Chrome用の機能拡張をSafari用に変換する手順

今回は、こちらの2つの記事を参考にしつつ、自分に必要な操作をプラスしました。では、やってみましょう。

  1. Chromeを起動し、機能拡張の一覧を表示させる。
    chrome://extensions/
  2. 念のため、機能拡張を更新するために[更新]ボタンをクリック。Safari用に変換したい機能拡張を見つけ、IDを確認し、メモしておく。Chromeは一旦終了。
Chrome機能拡張一覧でIDをメモ
Chrome機能拡張一覧でIDをメモしておく

【注意】
前述のように、Chromeのセキュリティー設定が厳格になり、ChromiumではGoogleアカウントを経由した、機能拡張や設定の同期ができなくなってしまいました。そのため、複数のデバイスでChromiumを使っている時に、デバイスによって機能拡張のバージョンが違う可能性があります。また、Chromeと併用している(したことがあった)場合も、Chromeにインストールしている機能拡張とで、バージョンがズレたり、配布が終了している可能性があります。どれが最新か、事前にチェックしておくことをオススメします。

  1. Finderで、機能拡張が保存されている場所を開く。

Chromeの場合
/Users/(ユーザー名)/Library/Application Support/Google/Chrome/Default/Extensions

Chromiumの場合
/Users/(ユーザー名)/Library/Application Support/Chromium/Default/Extensions

  1. IDと一致するフォルダを見つける。複数の機能拡張がある場合、変換したい機能拡張にはタグを付けて識別しておくと便利。フォルダを開くと一つ下の階層に、バージョンナンバーが付いたフォルダがある。後で変換に使う機能拡張のフォルダはこれ。
  2. ターミナルを起動し、以下のコマンドを入力する(このままコピー&ペーストできます、最後にある半角スペースを忘れず!)。
xcrun safari-web-extension-converter 
  1. コマンドの行の最後に、任意の機能拡張フォルダの一つ下にあった、バージョンナンバーのフォルダをドラッグ&ドロップする。returnキーを押して、コマンドを実行する。
  2. その機能拡張で正しいか確認されるので、yes と入力してreturnキーを押し、コマンドを続行する。
  1. 変換しようとしている機能拡張の中のファイルが、現在のSafariのマニフェストに準じていない警告が表示される。同時に、Xcodeが起動する。
  2. ウインドウ左上の[▶]ボタンをクリックして、機能拡張をビルドする。ビルドが成功すると、機能拡張(としてのアプリケーション)が作られる。アラートが表示されるので、ボタンをクリックしてこのアプリケーションを終了する。
    なお、作られた機能拡張が置かれる場所はここ。
    /Users/(ユーザー名)/Library/Developer/Xcode/DerivedData/
  1. Safariが起動し、「環境設定」>「機能拡張」が開く。
  2. Safariで、「開発」>「未署名の機能拡張を許可」する。管理者パスワードを入力して[OK]ボタンをクリックする。
「開発」>「未署名の機能拡張を許可」
「開発」>「未署名の機能拡張を許可」
  1. 変換した機能拡張が「機能拡張」ウインドウに追加されるので(Safariは起動したままでOK)、チェックボックスをオンにする。
  1. Safariのバーに表示される機能拡張のアイコンには、小さな▲!のアラートが表示される。任意のサイトで機能拡張を選択すると、アクセス権を確認するダイアログボックスが表示されるので、アクセスを許可して、動作を確認する。

今回、以下の5つの機能拡張を変換してみました。

AutoPagerize:複数に分かれたページを、自動的に1つのページに統合して連続表示
https://chrome.google.com/webstore/detail/autopagerize/igiofjhpmpihnifddepnpngfjhkfenbp

Pushbullet:URLを他のデバイスに送信したり、残したり
https://chrome.google.com/webstore/detail/pushbullet/chlffgpmiacpedhhbkiomidkjlcfhogd

Simple URL Copy:ページタイトルとURLをまとめてコピー
https://chrome.google.com/webstore/detail/simple-url-copy/cefkgjbbpagcilodnhboolbppdjlplip

Twitter Block Chain:任意のTwitterユーザーのフォロワーをまとめてブロック
https://chrome.google.com/webstore/detail/twitter-block-chain/dkkfampndkdnjffkleokegfnibnnjfah

緊急地震速報 by Extension β:最速の地震通知
https://chrome.google.com/webstore/detail/%E7%B7%8A%E6%80%A5%E5%9C%B0%E9%9C%87%E9%80%9F%E5%A0%B1-by-extension-%CE%B2/bcglkbdnloineibninnnofdaahgmjfme

ただ、AutoPagerizeは、気になる挙動が表示されたので、変換してインストールはしたものの、試す前に削除しました。一応、これが本当にリスクがあるのか、正規の使い方ではない処理をしたことが原因なのかまでは分かっていません。
また、期待の(?)Twitter Block Chainは動作しませんでしたが、他の3つについては、一部、挙動が少し変わっているようなところはありますが、今のところ大きな問題はありません。

[追記 2021/12/18] macOS Monterey 12でも試してみましたが、やはりTwitter Block Chainはダメでした :'(

…と、最後にどんでん返ししますが、実は、デフォルトWebブラウザーをSafariからBraveに変えて1ヶ月ほど使っています。さらに、Sidekickという新顔のブラウザーもテスト中。どちらもChrome互換のChromiumですが、結構いい感じなんです。これについてはまたレポートします 😉