Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№101-12-2010 13:54:19

Delivron
Участник
 
Группа: Members
Зарегистрирован: 01-04-2009
Сообщений: 24
UA: Firefox 3.6

Неправильная отработка метода nsICookieManager2->Add (XPCOM dll)

Отловил ошибку в работе метода 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.

Отсутствует

 

№201-12-2010 14:03:53

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771
UA: Firefox 4.0

Re: Неправильная отработка метода nsICookieManager2->Add (XPCOM dll)

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


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№302-12-2010 10:29:48

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 3.6

Re: Неправильная отработка метода nsICookieManager2->Add (XPCOM dll)

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

Delivron пишет

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

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

Delivron пишет

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

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

Holds the expiration date, in seconds since the epoch.

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

Delivron пишет

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

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

Отсутствует

 

№410-08-2011 08:33:25

Delivron
Участник
 
Группа: Members
Зарегистрирован: 01-04-2009
Сообщений: 24
UA: Firefox 4.0

Re: Неправильная отработка метода nsICookieManager2->Add (XPCOM dll)

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

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]