thrakt's tech blog

コードとかやってる事の話。エモい話とかも含める。

はてなブックマーク数を表示させるWebExtensions対応のfirefoxアドオン作った

2017-09-28 追記 公式アドオンが出るらしい

bookmark.hatenastaff.com

公式のアドオンが更新されるらしいので、多分それが出次第以下は役割を終えるはずです。


addons.mozilla.org

機能は、ツールバーはてなブックマークのボタンを出し、今開いているタブのはてなブックマーク件数を表示します。

f:id:thrakt:20170830200646p:plain

という感じ。1,000件以上の場合 HOT と表示します。温度感高目ですね、ええ。

また、ツールバーのボタンを押したときにポップアップではてブページを表示します。

ツールバーに出すアイコンは公式で公開されている物を利用。

hatenacorp.jp

httpsのページでも件数を表示するようにしているので注意

元々のはてブ拡張とかの仕様では、httpsページでは件数を取得しません。

これは、はてブ件数を取得する時にはてなにURLを送る必要があるためで、httpsの場合は秘匿情報となるURLが外部に漏れるためだと考えられます。はてなは大丈夫でも経路が問題で、公衆無線LANだとダダ漏れとかそういう事になる。昔はcookieが使えない環境でURLにセッションIDが入っていた事もあり、センシティブな情報が含まれる可能性はある。

ただ、webの全ページSSL時代に突入する昨今この仕様は合っていないのではという印象があり、自分は不便だったのでこのように変えました。

背景

はてなはてなブックマークfirefox拡張を全くメンテしておらず、マルチプロセスとか有効にならなくて困っていたため。

元々の拡張が機能的にかなり充実しているけど、そこははてブ件数をすぐ確認できる事だけできればいいと割り切った。サイドバーで自分のブクマ見れるのとか地味に使ってたんですが、まぁサイト開けばいいかと。

e10s有効になったらめちゃめちゃ早くなった。いままでこんなにスロウリィだったのかという驚き。やったぜ!

はてブページがポップアップで開くの使いづらい

自分も本当は別タブで開く形にしたかった。ただ、firefoxのWebExtensionsのAPIでタブを作ると、どうも順序とか崩れて使いづらくなってしまう。あと自分はツリー型タブを使ってるけど、うまくマッチしないという問題があった。

developer.mozilla.org

これでopenerTabIdというのを指定すればいい感じにいけそうだけど、firefoxが対応してない。なので常に親子関係のないタブを開かれ困る。このオプションにfirefoxが対応したら、普通に別タブで開くように戻します。

ポップアップ、雑に出してみたら意外とマッチしたのでイケる! と思ったけど、何かとスクロール位置がトップに戻ってしまう。どうも新しい要素が増える(例えば、全てのコメントで追加でコメントを取る時)とダメのようでした。はてブAPI読んでコメント一覧取得して自前で表示すれば解決するけど、そこまで労力をかける気も今のところなく。じっくりみたい時は別タブで開いて見てください。xxx users のリンクから別タブで開けます。

コード

github.com

思いついている機能追加はissueにあげてます。(やるとは言ってない)