[devel] I: firefox & thunderbird

Andrei Bulava =?iso-8859-1?q?abulava_=CE=C1_altlinux=2Eru?=
Ср Ноя 10 15:53:48 MSK 2004


Alexey Gladkov пишет:
> Привет!

Hi!

> Проведя за опакечиванием новых версий subj я пришел к выводу, что мне не 
> подсилу это сделать. И речь не столько об самих этих проектах, сколько 
> об их расшрениях (xpi). В этой области проблем гораздо больше, чем решений.
> Назову наиболее серьезные:
> 1) Отстутствие контроля за создаваемыми файлами в ходе установки xpi.
> 2) Отсутствие контроля за характером модификации файлов в ходе установки 
> xpi. Например, некоторый расширения любят прописываться в меню, но не 
> все оттуда удаляются. Это приводит к неработоспособности всего приложения.
> 3) Отсутствие контроля за удалением расширения (Это следует из п. 1 и 2 ).
> 
> С проблемой #1 помог разобраться Алексей Морозов. Но с остальными 
> проблемами я не знаю что делать.
> 
> Если у кого-нибудь есть идеи по решению проблем с опакечиванием 
> расширений, то буду рад их услышать.

Вряд ли порадую чем-нибудь хорошим - после прочтения комментариев из 
нижеследующего куска кода (взятого из ChatZilla 0.9.66d, файл static.js) 
я долго пил валерьянку... Во мне растёт уверенность, что подавляющее 
большинство разработчиков ff и расширений к нему в процессе разработки и 
по жизни работают а) под Microsoft(R) Windows(TM) и/или б) пользователем 
с правами локального системного администратора.

Приведённый ниже кусок кода пытается сработать при первой загрузке 
ChatZilla и установить несколько иконок в 
$FF_INSTALL_DIR/chrome/icons/default. Всё бы прошло хорошо, если б я 
поставил ff где-нибудь в $HOME, но он у меня стоит в /usr/local/lib

Так что могу только добавить к перечисленным legion@ пунктам

4) Невозможность гарантировать, что установка xpi действительно действие 
окончательное и не дополняется пост-инсталляционными действиями при 
первом запуске расширения.

<code>

function initIcons()
{
     // Make sure we got the ChatZilla icon(s) in place first.
     const iconName = "chatzilla-window";
     const suffixes = [".ico", ".xpm", "16.xpm"];

     /* when installing on Mozilla, the XPI has the power to put the 
icons where
      * they are needed - in Firefox, it doesn't. So we move them here, 
instead.
      */
     if (client.host != "Firefox")
         return;

     var sourceDir = getSpecialDirectory("ProfD");
     sourceDir.append("extensions");
     sourceDir.append("{" + __cz_guid + "}");
     sourceDir.append("defaults");

     var destDir = getSpecialDirectory("AChrom");
     destDir.append("icons");
     destDir.append("default");
     if (!destDir.exists())
         mkdir(destDir);

     for (var i = 0; i < suffixes.length; i++)
     {
         var iconDest = destDir.clone();
         iconDest.append(iconName + suffixes[i]);
         var iconSrc = sourceDir.clone();
         iconSrc.append(iconName + suffixes[i]);

         if (iconSrc.exists() && !iconDest.exists())
             iconSrc.copyTo(iconDest.parent, iconDest.leafName);
     }
}

</code>

P.S. "Маразм крепчал, съезжала крыша" (c) Это кто ж додумался 
посоветовать "move them here, instead."?!!

-- 
// AB1002-UANIC



Подробная информация о списке рассылки Devel