[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