> On 2010-11-16 11:21:29, David Faure wrote:
> > /trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookieserver.cpp, line 499
> > <http://svn.reviewboard.kde.org/r/4927/diff/4/?file=40257#file40257line499>
> >
> >     Same here. Why use Asynchronous if you make it sync anyway?
> >     
> >     I see you handle re-entrancy in this particular method, but I'm still 
> > worried about re-entrancy at a higher level.
> >     
> >     Please consider either
> >     1) reworking this to be fully async, or
> >     2) using the Sync API from KWallet, even though this will time out if 
> > the user takes too much time to enter his wallet password.
> >     
> >     To make it all async, you can solve the problem of synchronous DBus 
> > calls by using dbus transactions -- although one tends to hit the 
> > stupidly-low DBus timeout quite often this way, again if the user takes too 
> > much time to react, so this doesn't gain much.
> >     
> >     The "real" solution is probably to add an async API to kcookieserver, 
> > although even javascript requires synchronous access to cookies IIRC... so 
> > this might not work.
> >     
> >     You're hitting one of the most complex issues with Qt (and DBus) - once 
> > something low-level is async, everything on top of it needs to be async 
> > too, which can be pretty difficult.
> >     
> >     Anyway. I'd much rather see dbus calls time out (due to using the 
> > kwallet sync API), then the user can just hit reload after entering his 
> > wallet password, than seeing complex-to-debug crashes due to unexpected 
> > re-entrancy due to the use of QEventLoop.

Just a short hint regarding the synchronous use of KWallet:
While kwalletd still has synchronous D-Bus calls those aren't exposed in the 
public KWallet::Wallet API. To work around the timeouts (which in fact will be 
around 5-20s on most distributions) KWallet::Wallet itself uses the 
asynchronous D-Bus calls and a nested event-loop.

@David: I think the problem with synchronous KWallet calls timing out is that 
if a call to KWallet hits a timeout, the call to KCookieJar will have timed out 
already as it's kioslave->KCookieJar->KWallet. The only solution to this would 
be setting a lower timeout on the KCookieJar->KWallet call than there is on the 
kioslave->KCookieJar call - which seems like a really ugly hack.


- Michael


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/4927/#review8753
-----------------------------------------------------------


On 2010-10-26 01:24:01, José Millán Soto wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/4927/
> -----------------------------------------------------------
> 
> (Updated 2010-10-26 01:24:01)
> 
> 
> Review request for kdelibs.
> 
> 
> Summary
> -------
> 
> Currently cookies are stored in a plain text file. This patch allows 
> KCookieJar to store the cookies securely using KWallet.
> 
> The main problem I had writing this patch was that when a web page is 
> requested, KIO ask for the cookies to kded using dbus. In the first 
> implementations that I wrote, if the user took too long to open the wallet, 
> KIO received a dbus timeout.
> 
> To prevent this, if it takes more than 10 seconds to open the wallet, the web 
> page will be requested without sending the cookies (or sending the available 
> cookies if there's still the plain text cookie file). If the wallet is opened 
> after that, the cookies stored in the wallet will be available since then.
> 
> Because of this, the feature is disabled by default.
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdebase/apps/konqueror/settings/kio/kcookiespolicies.cpp 1189829 
>   /trunk/KDE/kdebase/apps/konqueror/settings/kio/kcookiespoliciesdlg.ui 
> 1189829 
>   /trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookiejar.h 1189787 
>   /trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookiejar.cpp 1189787 
>   /trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookieserver.h 1189787 
>   /trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookieserver.cpp 1189787 
> 
> Diff: http://svn.reviewboard.kde.org/r/4927/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> José
> 
>

Reply via email to