1. catfist

    No comment

    catfist
Changes in body
Source | HTML | Preview

Windows前提。

OneTabの中身をクロスブラウザで同期したい

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だと

  1. 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