Web lists-archives.com

Re: strange behavior of KCookieServer

El divendres, 13 de juliol de 2018, a les 17:20:10 CEST, Stefano Crocco va escriure:
> Hello to everyone,

Hi, given that KCookieServer is part of the KIO framework I am suggesting you resend this email to kde-frameworks-devel@xxxxxxx where the KIO people are more prone to read this.


> in my ongoing attempt to integrate Konqueror and QWebEngine, I'm still 
> struggling with a way to share cookies between QWebEngineCookieStore and 
> KCookieServer. While investigating this issue, I found a problem when adding 
> cookies to KCookieServer by hand which doesn't seem happen when using 
> Konqueror with either KHTML or KWebKitPart. I think I know how I could solve 
> (or work around) this issue but I don't understand why it's happening and I'd 
> like some insight about this.
> The isssue I noticed concerns cookies with an "expire" field and I believe, 
> after looking at the code for KCookieJar and KCookieServer, it is related to 
> time zone handling by KCookieJar.
> I live in Italy, so my time zone is CEST, which (unless I'm mistaken) means 
> GTM+2. If now (16:30 CEST, 14:30 GMT), a web page sent me a cookie which 
> should expire in 30 minutes (17:00 CEST, 15:00 GMT), it would have an 
> "expires" field like "expires: Fri, 13-Jul-2018 15:00:00 GMT".
> I tried to add such a cookie from the command line, like this:
> qdbus org.kde.kcookiejar5 /modules/kcookiejar addCookies http://xyz.it "Set-
> Cookie: test=hello; expires=Fri, 13-Jul-2018 15:00:00 GMT; domain=.xyz.it; 
> path=/" 0
> but in the cookies page in System Settings doesn't show the cookie. If I 
> change the "expires" field in the cookie so that the hour becomes 17:00:00, the 
> cookie is added.
> The problem, I believe, is that KCookieJar::parseDate calls 
> QLocale::toDateTime, which seems to create a QDateTime with the local time 
> zone (in my case, CEST). This means that the cookie expire date, which was in 
> GMT, is interpreted as if it were in CEST and, of course, the cookie is 
> considered expired.
> Thanks in advance for any help in understanding what's happening.
> Stefano