Создаю дополнение [firefox]
Хотел, чтобы раз в 30 сек. переменные из about:config сохранялись в pref.js (Обычно сохраняется только при выключении FF)
Создал файлы
install.rdf
chrome.manifest
chrome\content\flush.js

Больше файлов нет.

Содержание install.rdf

<?xml version="1.0"?>

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:em="http://www.mozilla.org/2004/em-rdf#">

  <Description about="urn:mozilla:install-manifest">
    <em:id>pref@flush.moz</em:id>
    <em:name>PrefFlush</em:name>
    <em:description>Save pref.js</em:description>
    <em:version>1.0</em:version>
    <em:creator>Mosbot</em:creator>
    <em:homepageURL>mosbot.ru</em:homepageURL>
    <em:type>2</em:type>

    <!-- Mozilla Firefox -->
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>4.0</em:minVersion>
        <em:maxVersion>10.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>


содержание chrome.manifest
content     flush     chrome/content/

Содержание chrome\content\flush.js

setInterval(flush, 30000);
function flush()
{
    Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).savePrefFile(null);
}

Архивирую расширение ZIP'ом меняю расширение файла на xpi. Перетаскиваю в окно FF, получаю ошибку. Это дополнение не может быть установлено, так как оно, по-видимому, повреждено.
Подскажите пожалуйста что нужно сделать, что заработало.

Для загрузки скрипта нужен xul с оверлеем (и ссылкой на этот скрипт). Даже если оверлей не содержит элементов UI.

Спасибо, разобрался.
Добавил XUL с оверлеем и ссылкой на скрипт. Всё заработало.