ACME-755 Clear FB cookies by removing cookies from the .facebook.com domain
parent
0254b74abf
commit
7b56020d66
|
|
@ -87,6 +87,16 @@ std::string LLPluginCookieStore::Cookie::getKey() const
|
|||
return result;
|
||||
}
|
||||
|
||||
std::string LLPluginCookieStore::Cookie::getDomain() const
|
||||
{
|
||||
std::string result;
|
||||
if(mDomainEnd > mDomainStart)
|
||||
{
|
||||
result += mCookie.substr(mDomainStart, mDomainEnd - mDomainStart);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool LLPluginCookieStore::Cookie::parse(const std::string &host)
|
||||
{
|
||||
bool first_field = true;
|
||||
|
|
@ -662,3 +672,19 @@ void LLPluginCookieStore::removeCookie(const std::string &key)
|
|||
}
|
||||
}
|
||||
|
||||
void LLPluginCookieStore::removeCookiesByDomain(const std::string &domain)
|
||||
{
|
||||
cookie_map_t::iterator iter = mCookies.begin();
|
||||
while(iter != mCookies.end())
|
||||
{
|
||||
if(iter->second->getDomain() == domain)
|
||||
{
|
||||
delete iter->second;
|
||||
iter = mCookies.erase(iter);
|
||||
}
|
||||
else
|
||||
{
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ public:
|
|||
// quote or unquote a string as per the definition of 'quoted-string' in rfc2616
|
||||
static std::string quoteString(const std::string &s);
|
||||
static std::string unquoteString(const std::string &s);
|
||||
|
||||
void removeCookiesByDomain(const std::string &domain);
|
||||
|
||||
private:
|
||||
|
||||
|
|
@ -79,6 +81,7 @@ private:
|
|||
|
||||
// Construct a string from the cookie that uniquely represents it, to be used as a key in a std::map.
|
||||
std::string getKey() const;
|
||||
std::string getDomain() const;
|
||||
|
||||
const std::string &getCookie() const { return mCookie; };
|
||||
bool isSessionCookie() const { return mDate.isNull(); };
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "llresmgr.h" // LLLocale
|
||||
#include "llsdserialize.h"
|
||||
#include "llloadingindicator.h"
|
||||
#include "llplugincookiestore.h"
|
||||
#include "llslurl.h"
|
||||
#include "lltrans.h"
|
||||
#include "llsnapshotlivepreview.h"
|
||||
|
|
@ -759,8 +760,8 @@ void LLSocialAccountPanel::onConnect()
|
|||
{
|
||||
LLFacebookConnect::instance().checkConnectionToFacebook(true);
|
||||
|
||||
//Clears browser cookies so that the user must enter their FB creds when connecting/re-connecting
|
||||
LLViewerMedia::clearAllCookies();
|
||||
//Clear only the facebook browser cookies so that the facebook login screen appears
|
||||
LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");
|
||||
}
|
||||
|
||||
void LLSocialAccountPanel::onDisconnect()
|
||||
|
|
|
|||
Loading…
Reference in New Issue