データ永続化

XULの要素の状態を保存、復元できます。それ以外の情報については、ユーザー設定で管理できます。

永続化の方法

たとえばwindow要素のサイズを保存するならば、その要素にpersist属性を指定し、そこで保存したい属性の名前を空白区切りで列挙します。

<window
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    id="test-window"
    persist="width height">

こうするだけでウィンドウを閉じたときに指定した属性の値が保存され、再度ウィンドウを開いたときには、その値が属性に自動で設定されるようになります。

永続化の対象とできる要素や属性に制限はなく、すべての要素のすべての属性を保存できます。必要なのは、persist属性を設定する要素にid属性が設定されていることだけです。

永続化されたデータの実体

データはプロファイル フォルダlocalstore.rdfに、RDF形式で保存されます。Localstore.rdf - MozillaZine Knowledge Base

Firefox 34以降このlocalstore.rdfは、xulstore.jsonに置き換えられています。

<RDF:Description RDF:about="chrome://myPackage/content/sample.xul#test-window"
    width="300"
    height="200" />

xulstore.json

Firefox 34以降では従来のlocalstore.rdfに代わり、xulstore.jsonJSON形式で保存されるようになりました。

{"chrome://myPackage/content/sample.xul":{
    "test-window":{
        "width":"300",
        "height":"200"}}}
Firefoxアドオンの情報サイトから、まとめて検索