つうさにメモブログ

つうさにがメモをブログとして書いていくところ

Firefoxに移行する、ついでにWebExtensionsする

ChromeからFirefoxに移行しました。

環境:macOS Mojave

はてなブログを書く用のブラウザ

私は普段Webブラウジング用にmacOSデフォルトのSafariを使っています。しかし、SafariサードパーティCookieを一切許可していないため、hatena.ne.jpでログインしてもhatenablog.comではヘッダメニューにログイン情報が表示されないという問題があります1。これはSafariの環境設定から「サイト越えトラッキングを防ぐ」をオフにすれば改善しますが、これをオフにするつもりはないので、私ははてなブログを書く用のブラウザとしてGoogle Chromeを使っていました。

さて、Chromeは現在最も普及したブラウザ2ですが、Mozilla Firefoxもいいブラウザです。FirefoxはプライバシとWebの標準に重きを置いているようで、Chrome一強を防ぐためにも応援したくなります。私の用途ではChromeから移行して不便になることもなさそうだったので、Firefoxに移行してみました。今のところ少しの設定をしたら不満なく使えています。

Firefox移行後

Firefoxの使用感を試します。また、ちょっとアレだと思ったデフォルトを改善するためにいくつかの設定をします。

はてなブログのヘッダメニュー

Chromeで使っていたときと同様、hatenablog.comでメニューバーにちゃんとログイン情報が表示されます。いいですね。

Pocket無効化、ピンチアウトで拡大の有効化

どうやらPocketFirefoxファミリーの一員らしく色々主張してきます。これを消し去るためにabout:configextensions.pocket.enabledをfalseにします。

また、FirefoxではSafariChromeでは当たり前のように使えるピンチアウトで拡大の機能がデフォルトではありません。これを有効にするためにapz.allow_zoomingをtrueにします。

アドオン(拡張機能

Chromeでは以下の拡張機能をインストールしていました。

  • DuckDuckGo Privacy Essentials
  • GhostText
  • React Developer Tools
  • MetaMask

どれもFirefox版が提供されています。インストールしてChrome版と同様に使えることを確認しました。いくつかはFirefoxでは提供されてないだろうと思っていたので、全部あって意外でした。

また、「Multi-Account Containers拡張機能を試してみました。これはCookieなどのサイトデータの保存場所が異なるコンテナ環境でタブを開けるものです。一つのサービスに複数のアカウントを持っていて、同時にログインしたいときなどに便利です。また、単にタブのグループ分けとしても使えます。コンテナータブはサイトデータが隔離される以外普通のタブと同じで、ブックマークや履歴、拡張機能は共通です。なので、Chromeの複数プロファイル3よりも手軽に使えて、いい感じでした。

WebExtensionsする

ChromeFirefox両対応している拡張機能がどう実現されているか気になりGhostTextのソースを読んでみたら、なんとChromeFirefoxで全く同一のコードを使っていました。FirefoxがサポートするWebExtensions APIChrome由来のAPIと互換性があるからのようです。といったところで、GhostTextのソースやMDNのドキュメントを読んでいたらWebExtensions APIを使って拡張機能を作ってみたくなりました。

ということで作ってみました。

github.com

MDNにあるドキュメントを読んだらすぐ作れる程度のものです。ツールバー上のアイコンをクリックするとWebページがキュートなゆきだるまになります。ただそれだけです。☃︎

f:id:tsuu_mmj:20200416040224p:plain
とってもキュートなゆきだるま

もう一度アイコンをクリックすると元に戻るトグル動作なので、気が向いた時にscsnowmanを見て癒される用途に使ってください。☃︎

終わり

脱線しましたが、これからははてなブログで記事を書くのにFirefoxを使っていこうと思います。


  1. はてなブログとサードパーティCookie - はてなブログ ヘルプ

  2. Browser market share (2020年3月)

  3. Firefoxにも複数プロファイル機能はあります。about:profilesからプロファイルの設定ができます。