Firefox 44 で Hatena Bookmark 拡張が動かなくなったので、Google Chrome 用の拡張を流用してみた話
Firefox 44 をインストールして Hatena Bookmark 拡張が動かなくなってしまいました。
個人的にはブコメが見られれば良いだけなので自作してみようかとも考えましたが、
ふと、「新しいfirefoxのweb extensionsがChromeExtentionとの互換性そのままだった」 を思い出し、
いけるのでは?と思い立ってやってみました。
Google Chrome 用の拡張をコピー
Windows な方なら Chrome で Hantea Bookmark 拡張 をインストールすると以下に展開されているかと思います。
C:\Users\{自分のユーザー名}\AppData\Local\Google\Chrome\User Data\Default\Extensions\dnlfpnhinnjdgmjfpccajboogcjocdla
記事執筆時点で1.4.4_0 というバージョンが入っていました。
「新しいfirefoxのweb extensionsがChromeExtentionとの互換性そのままだった」 の記事を参考に、
manifest.json に JSON として有効になるようカンマなど漏れがないか注意して以下を記入します。
今回は先頭の方に追加したので、お尻にカンマを付けています。
"applications": { "gecko": { "id": "borderify@mozilla.org" } },
あとはディレクトリ内のファイル一式を zip で圧縮し、拡張子を xpi にしておきます。
これでとりあえずの準備は完了しました。
署名に関する警告を無効化
そのままでは署名に関する警告が出てしまい、インストール出来ません。
安全ではないですが、一時的に設定を変更することでインストールを許可しておきます。
http://blog.halpas.com/archives/8371 を参考に about:config で xpinstall.signatures.required を false にします。
実験が終わったら xpinstall.signatures.required を true に戻すのを忘れないようにしておきます。
で、インストールしてみると・・・
Firefox のアドオンのページに固めた xpi をドラッグドロップしてインストールします。
するとなんだか動きそうな感じが!??
ためしに Google のブコメを開いてみようとすると白紙に・・・。
ブラウザコンソールを開いてみると以下のようなエラーが出ていました。
TypeError: BG.chrome.tabs.getSelected is not a function popup.js:95:9
調べてみると、chrome.tabs.getSelected は廃止予定らしく、Firefox には実装されていないのかもしれません。
https://developer.chrome.com/extensions/tabs#method-getSelected によれば、
Deprecated since Chrome 33. Please use tabs.query {active: true}.
となっているので、そのように書き換えてみます。
先ほど修正した manifest.json のディレクトリを辿っていくと、background/popup.js があるので95行目当たりを以下のように修正してみます。
修正前
if (popupMode) { BG.chrome.tabs.getSelected(null, function(tab) { d.call({ url: tab.url, faviconUrl: tab.faviconUrl, winId: tab.windowId, tabId: tab.id, title: tab.title, }); }); } else {
修正後
if (popupMode) { BG.chrome.tabs.query({active: true, lastFocusedWindow: true}, function(tabs) { // ここと var tab = tabs[0]; // ここ d.call({ url: tab.url, faviconUrl: tab.faviconUrl, winId: tab.windowId, tabId: tab.id, title: tab.title, }); }); } else {
再インストール
で、再度 zip に圧縮して xpi として Firefox にインストールしてみます。
すると・・・
動きました!
ただ、他にも修正しないといけない箇所があるようで、完璧ではありません。
とりあえず「ブコメを見る」という目的は達成できたのでよしとします。
もともと はてなブックマーク Google Chrome 拡張 でソースコードは公開されているようなので、Pull Request などを送ると対応してくれるかもしれません。
が、いろいろ検証するのが面倒なのでどなたかお願いします
m(_ _)m