Отловил ошибку в работе метода nsICookieManager2->Add (xulrunner-1.9.2) для установки сессионной куки (при вызове ее из dll компоненты, не знаю, что будет в скриптовой версии). В SDK о последнем параметре этой функции говорится:

aExpiry
   Holds the expiration date, in seconds since the epoch. Only relevant if aIsSession is false.

Однако, оказалось, что это параметр "relevant" в любом случае! Т.е. если при установке сессионной куки его просто указать равным нулю, то кука не поставится; и поставится она только в том случае, если этот параметр будет больше текущих даты/времени. Более того, не смотря на то, что в менеджере кук, установленная через данную функцию кука будет значится как сессионная, она удалится, как только наступит время aExpiry.

https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
Компонент - Networking: Cookies

плохо читали документацию

Delivron пишет

Т.е. если при установке сессионной куки его просто указать равным нулю, то кука не поставится;

а вы видите где-нибудь у класса метод Delete?
открою вам тайну, уже установленная кука таким образом удалится. т.е. вы перетираете куку на дату в прошлом и она, естественно удаляется. то же самое и с установкой.

Delivron пишет

поставится она только в том случае, если этот параметр будет больше текущих даты/времени.

вы же сами написали

Holds the expiration date, in seconds since the epoch.

+ то, что выше написал

Delivron пишет

Более того, не смотря на то, что в менеджере кук, установленная через данную функцию кука будет значится как сессионная, она удалится, как только наступит время aExpiry.

сессионная кука гарантированно удаляется при завершении сессии, ничего не мешает ей истечь по установленной дате

Shutnik пишет

плохо читали документацию

у вас есть другие варианты перевода слова "relevant" в данном контексте? мой вариант перевода: "aExpiry... Only relevant if aIsSession is false" = значение переменной aExpiry учитывается только в том случае, если aIsSession=false (т.е. в противном случае оно может быть любым и не должно влиять на срок жизни куки, поскольку он и так отмечен концом сессии)

Shutnik пишет

открою вам тайну, уже установленная кука таким образом удалится

в курсе, имеенно так я их и удаляю

Shutnik пишет

сессионная кука гарантированно удаляется при завершении сессии, ничего не мешает ей истечь по установленной дате

и где же это написано в документации, которую я плохо читал??? хотя предвижу ваш ответ: "это подразумевается", и это было бы так, если бы отсутствовало предложение "Only relevant if aIsSession is false", которое и вносит всю путаницу для тех, кто хорошо читает
https://developer.mozilla.org/En/NsICoo … #add%28%29