Re: strange behavior of KCookieServer
- Date: Wed, 18 Jul 2018 23:31:38 +0200
- From: Albert Astals Cid <aacid@xxxxxxx>
- Subject: 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.