#えむけーろぐ

間違った事を書いていたらやさしく教えてください

特定のページを常に固定タブ状態にするChrome拡張機能を作った

はじめに

特定のページを常に固定タブ状態にするChrome拡張機能を作った。

chrome.google.com

使い方

一度タブを固定化すると、次回以降そのページを開いた時にも自動で固定タブにしてくれます。

こんな感じ。

f:id:mktakuyax:20160604084041g:plain

逆に、固定タブを解除すると次回以降そのページを開いても固定タブにはなりません。

f:id:mktakuyax:20160604084148g:plain

なんでSave pin tab "2"なの?

実は、同じ機能を持ったSave pin tabというChrome拡張機能があって、前々からお世話になっていたのだけど……。ある時、Chromeの設定をリセットしたら、それ以降使えなくなってしまった。Chromeストアからインストールボタンを押してもインストールできない。

本家様のGitHubリポジトリも発見したのでソースを見てみたけど、どうやらmanifest version 2に対応していなかったみたい。リポジトリの最終更新日は5年前で、メンテナンスされていなかったっぽいので、じゃあ練習がてら自分で作るか、ということで今回のChrome拡張機能を作ることになった。

ちょうど、POSTDの記事でこんな文章を読んだ後だったのもある。

初心者に関して言えば、車輪を再発明することを恐れるべきではありません。学習や練習のために行うなら、車輪を作ることは完全にオーケーで、重要な学びの一部です。

「プログラムの書き方は知っているが、何をプログラムしていいか分からない」 | キャリア・働き方 | POSTD

仕組み

ソースはGitHubに置いてある。

github.com

仕組みは単純で、配列にURLが格納されてあって、現在のタブのURLがその配列に含まれていたらタブを固定化する、ってだけ。

ただ配列を変数で持っているだけだと、URLのリストを永続化出来ないので、永続化にはlocalStorageを使っています。ホントはchrome.storageを使って、どのマシンのChromeからもURLのリストを共有できる仕組みを作りたかったけど、うまく動かなかった。気が向いたらあとで調査してみる。

おわりに

Chrome拡張機能を作ったのは2度目。簡単に作ることが出来て、簡単に公開できるのは良いですね。

メールやfacebookTwitterなどいつも使うタブは固定タブにしておくと、他のタブとごちゃごちゃにならなくて便利。

f:id:mktakuyax:20160604091158g:plain

テスト期間の良い息抜きになった。頑張ろう。。。