Собсвенно суть проблемы в следующем. Я разрабатываю компонент для использования мозиллы в AWT/SWING Java приложениях (наподобие WebClient) используется xulrunner движок 1.9. Мне нужно не использовать профайл который лежит в user каталоге т.к. при наличии установленных продуктов mozilla могут возникакть кофликты.
Короче говоря я хочу создавать профайл в подкаталоге откуда запущенна моя Java программа. Для этих целей мне бы отлично подошол сервис nsIProfile он имплементиттся классом @mozilla.org/profile/manager;1. Однако при попытке его получить из nsIServiceManager я получаю ошибку 0x80040154 т.е. Class is not registered.
Мой вопрос в следующем кто нибудь пробовал регисрировать классы самостоятельно, из кода? И если да ток как мне это осуществить?
К величайшему моему сожалению по custom profiles  embeding FAQ сияет блестящими каментами //TODO: :dumb:

custom profiles  embeding FAQ сияет блестящими каментами //TODO:

Todo: Directory service provider

Должно быть, имеется в виду необходимость реализации nsIDirectoryServiceProvider.

Вообще проблема разрешилась без регистрации класса с помощью указания nsIPrefBranch куда ложить профайл
Но тем не мение всеже необходимость в регистрацци классов пока еще не отпадает

А вообще custom profiles можно создать из Java вот так:

Делаете класс который имплиментит IAppFileLocProvider из MozillaGlue.jar
  Потом так

Выделить код

Код:

public File getFile(String aProp, boolean[] aPersistent) {
          //Тут так-же все остальные настройки  каталогов по умолчанию  
         if (aProp.equals(NS_APP_USER_PROFILE_50_DIR)) {
                return new File("Каталог где сохранять профайл");
         }
  }

И регистрируете в момент ининциализации приложения

Выделить код

Код:

File grePath = new File(System.getProperty("GRE_PATH"));
  mozilla.initialize(grePath);
  mozilla.initEmbedding(grePath, grePath, locProvider);

grePath - переменная окружения на каталог в котором лежит собранный xulrunner
locProvider - класс который имплиментит IAppFileLocProvider

Короче смотрите суда http://www.nabble.com/Overriding-nsIPromptService-t4203057.html и скажите спасибо  моему начальнику.