Windows前提。
OneTabの中身をクロスブラウザで同期したい
- Sync OneTab tabs on Chrome across different PC's - Super User
- Chrome ⇔ kinzaのインポート・エクスポートについて / 新機能や改善の要望 / Kinza 要望やバグ報告
KinzaはChromiumブラウザであるため、Chrome用の拡張がそのまま利用できる。従って、拡張の保持するデータは基本的に共通形式のはずである。
今回は、メインブラウザがKinzaであり、もともとChromeではOneTabを利用していなかったため、KinzaのデータをChromeにインポートする形になる。
複数ブラウザ間でOneTabの情報を同期し、かつバックアップするため、データ本体をDropboxに置いて、各ブラウザからシンボリックリンクで参照する。
やりかた
Chrome/Kinzaの両方にOneTabをインストールする。
Chrome/Kinzaの拡張機能タブで「デベロッパーモード」にチェック。OneTabの拡張機能IDを確認する。「chlffgpmiacpedhhbkiomidkjlcfhogd」であることがわかる。
ChromeとKinzaを終了する。(Chromeアプリも含む)
OneTabのデータは、各ブラウザのLocal Storageディレクトリに格納されている。
c:\Users<ユーザ名>\AppData\Local\Google\Chrome\User Data\Default\Local Storage
c:\Users<ユーザ名>\AppData\Local\Kinza\User Data\Default\Local Storage
それぞれに、以下のファイルがあることを確認。
chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage-journal
chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage
Dropboxにsync\OneTab\Chromeフォルダを作成。そこにKinzaのほうから上記2ファイルを移動する。
Dropbox\sync\OneTab\Chromeから各ブラウザのUser Dataディレクトリにシンボリックリンクを貼る。
今回はMSYS2から行った。
$ cd "/c/Users/<ユーザ名>/AppData/Local/Google/Chrome/User Data/Default/Local Storage"
$ ln -s /c/Users/<ユーザ名>/Dropbox/sync/OneTab/Chrome/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage "$(pwd)"/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage
$ ln -s /c/Users/<ユーザ名>/Dropbox/sync/OneTab/Chrome/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage-journal "$(pwd)"/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage-journal
$ cd "/c/Users/<ユーザ名>/AppData/Local/Kinza/User Data/Default/Local Storage"
$ ln -s /c/Users/<ユーザ名>/Dropbox/sync/OneTab/Chrome/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage "$(pwd)"/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage
$ ln -s /c/Users/<ユーザ名>/Dropbox/sync/OneTab/Chrome/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage-journal "$(pwd)"/chrome-extension_chphlpgkkbolifaimnlloiipkdnihall_0.localstorage-journal
Link Shell Extensionとかkobake/lnhdr: リンク作成シェル拡張 (Link Creation Shell Extension)を使うと簡単だと思われる。
Chrome/Kinzaを起動してOneTabの内容を確認したところ、同期できていた。
Firefoxと同期?
やりたかったがむりぽ。
Firefoxの場合、データが以下のパスに格納されている。
C:\Users<ユーザ名>\AppData\Roaming\Mozilla\Firefox\Profiles\5gg9n3ed.default\storage\permanent\indexeddb+++extension-at-one-tab-dot-com\idb\1832832054obnaet.sqlite
OneTab Help - Firefox Restoreだと
- Log into your online backup provider or other backup system, and see if it has backed up the following
file:
C:\Users\Username\AppData\Roaming\Mozilla\Firefox\Profiles\Profile Folder\jetpack\extension@one-tab.com\simple-storage\store.json
とか書いてあるのだがこれは情報が古い。(参照:Firefox のアドオン OneTab のデータ消失に備えるために Dropbox でバージョン管理 | すぐに忘れる脳みそのためのメモ)
ともあれ、データ形式が異なるため、Firefox⇔Chrome(Chromium)間の同期は不可能な模様。
Firefox⇔Chrome(Chromium)間のImport/Exportであれば、フツーにOneTabの機能でできる。
とりあえずDropboxでバックアップだけしておきたいので、同様に、このファイルをDropbox/sync/Firefoxに移動して、シンボリックリンクを張る。
$ cd /c/Users/<ユーザ名>/AppData/Roaming/Mozilla/Firefox/Profiles/5gg9n3ed.default/storage/permanent/indexeddb+++extension-at-one-tab-dot-com/idb
$ ln -s /c/Users/<ユーザ名>/Dropbox/sync/OneTab/Firefox/1832832054obnaet.sqlite "$(pwd)"/1832832054obnaet.sqlite