はてなブックマーク拡張をいじってみた

extensionなんてタグつけるの、おこがましいけど……


はてなブックマーク拡張、すごく便利なんだけど、Tab Mix Plusの設定を以下の様にしてると、


ステータスバーのはてなブックマーク数クリックで表示されるはてなブックマークのエントリーページ*1が、最終タブの直後に追加される。


はてブのエントリーページ見た後に元のタブに戻ろうとしても、タブを大量に開いてたりすると、タブバー左の「<」をクリックして元のタブを表示させる操作を必要とする事がままあって、結構不便。
TMPの設定の「現在のタブと関連があるときのみ」のチェックを外せばカレントタブの直後に追加されるんだけど、そうすると、ロケーションバーに直接url入力した時や、検索バーから検索した時もカレントタブの直後にタブが追加される。自分的にはこれはイヤ。TMPの設定は今のままで、ステータスバーのはてブ数をクリックした時だけ、カレントタブ直後に追加されてほしい。

という訳で

はてなブックマーク拡張をいじってみれば自分の思い通りに出来るはずと考え、色々調べた結果、はてなブックマーク拡張の以下jsファイル

C:\Users\アカウント\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxx.default\extensions\bookmark@hatena.ne.jp\chrome\content\common\08-hOpenUILink.js

の11行目辺りの

        TreeStyleTabService.readyToOpenChildTab(getTopWin().gBrowser.currentTab, false);

の次の行に以下を追加したところ、思い通りアクティブタブ直後にタブが追加される様になった。

    let id = ev.target.parentNode.id;
    if (id === 'hBookmark-status-count' || id === 'hBookmark-statusBarPanel') {
        getBrowser().selectedTab = getBrowser().addTab(link, {
                                        referrerURI          : null,
                                        charset              : 'UTF-8',
                                        postData             : null,
                                        inBackground         : false,
                                        allowThirdPartyFixup : false,
                                        fromExternal         : false,
                                        relatedToCurrent     : true //アクティブなタブの右隣にタブを開く時はtrue
        });
        //addTabしたタブをカレントタブの右隣に移動させるやり方
        /*
        let browser = getBrowser();
        let newTab = browser.addTab(link);
        let movePos = browser.mCurrentTab._tPos + 1;
        browser.moveTabTo(newTab, movePos);
        browser.selectedTab = newTab;
        */
        return;
    }


俺得なだけの修正だし、ここまでせずに、TMPの設定変更だけでいけるのかもしれないけど、Firefoxの拡張作りの一片を垣間見た気もして、自分的には満足。

宿題

  • 変数がletで宣言されてたので、追加したソースもletにしたけど、varとletの違いについてはまだよく理解できてない。
  • 訳のわからないメソッドプロパティてんこ盛りなので、おいおい調べていく。

関係無いけど

自分のはてダのエントリーをふと見てみたら、なんか広告が表示されてる。
なんでだろう?って思って調べてみたら、90日間更新しないとエントリーの最後に広告が表示される様になってみたい。
90日以上更新のないはてなダイアリーに、広告を掲載します - はてなダイアリー日記
このエントリー書いたので、広告も消えるはず。

*1:いわゆるブコメページ