As per libsoup documentation, SoupCookie->expires is NULL for session cookies. However, the soup implementation for getRawCookies() does not check for NULL case before passing the value to soup_date_to_time_t(). This leads to the following warnings:
(process:27280): libsoup-CRITICAL **: soup_date_to_time_t: assertion `date != NULL' failed
We should also pass true for WebCore::Cookie's session argument if SoupCookie->expires is NULL. The current implementation reports the cookie as a session one if soup_cookie_jar_is_persistent(jar) returns true, which is inaccurate. Note that this does not currently affect Web Inspector as it ignores the session member in CookieParser.js WebInspector.Cookies.buildCookieProtocolObject().
Instead, Web Inspector currently uses the following rule:
// RFC 2965 suggests using Discard attribute to mark session cookies, but this does not seem to be widely used.
// Check for absence of explicitly max-age or expiry date instead.
return !("expires" in this._attributes || "max-age" in this._attributes);
Yeah I planned to fix that some time ago but I end up forgetting about it.
Created attachment 191757 [details]
Comment on attachment 191757 [details]
Clearing flags on attachment: 191757
Committed r144936: <http://trac.webkit.org/changeset/144936>
All reviewed patches have been landed. Closing bug.