summaryrefslogtreecommitdiffstats
path: root/src/core/cookie_monster_delegate_qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/cookie_monster_delegate_qt.cpp')
-rw-r--r--src/core/cookie_monster_delegate_qt.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/core/cookie_monster_delegate_qt.cpp b/src/core/cookie_monster_delegate_qt.cpp
index d40abf13e..6b808e76c 100644
--- a/src/core/cookie_monster_delegate_qt.cpp
+++ b/src/core/cookie_monster_delegate_qt.cpp
@@ -44,6 +44,8 @@
#include "api/qwebenginecookiestoreclient_p.h"
#include "type_conversion.h"
+#include <QStringBuilder>
+
namespace QtWebEngineCore {
static GURL sourceUrlForCookie(const QNetworkCookie &cookie) {
@@ -55,6 +57,18 @@ static void onSetCookieCallback(QWebEngineCookieStoreClientPrivate *client, qint
client->onSetCallbackResult(callbackId, success);
}
+static void onDeleteCookiesCallback(QWebEngineCookieStoreClientPrivate *client, qint64 callbackId, int numCookies) {
+ client->onDeleteCallbackResult(callbackId, numCookies);
+}
+
+static void onGetAllCookiesCallback(QWebEngineCookieStoreClientPrivate *client, qint64 callbackId, const net::CookieList& cookies) {
+ QByteArray rawCookies;
+ for (auto&& cookie: cookies)
+ rawCookies += toQt(cookie).toRawForm() % QByteArrayLiteral("\n");
+
+ client->onGetAllCallbackResult(callbackId, rawCookies);
+}
+
CookieMonsterDelegateQt::CookieMonsterDelegateQt()
: m_client(0)
, m_cookieMonster(0)
@@ -72,6 +86,12 @@ bool CookieMonsterDelegateQt::hasCookieMonster()
return m_cookieMonster.get();
}
+void CookieMonsterDelegateQt::getAllCookies(quint64 callbackId)
+{
+ net::CookieMonster::GetCookieListCallback callback = base::Bind(&onGetAllCookiesCallback, m_client->d_func(), callbackId);
+ m_cookieMonster->GetAllCookiesAsync(callback);
+}
+
void CookieMonsterDelegateQt::setCookie(quint64 callbackId, const QNetworkCookie &cookie, const QUrl &origin)
{
Q_ASSERT(hasCookieMonster());
@@ -99,6 +119,24 @@ void CookieMonsterDelegateQt::deleteCookie(const QNetworkCookie &cookie, const Q
m_cookieMonster->DeleteCookieAsync(gurl, cookie.name().toStdString(), base::Closure());
}
+void CookieMonsterDelegateQt::deleteSessionCookies(quint64 callbackId)
+{
+ Q_ASSERT(hasCookieMonster());
+ Q_ASSERT(m_client);
+
+ net::CookieMonster::DeleteCallback callback = base::Bind(&onDeleteCookiesCallback, m_client->d_func(), callbackId);
+ m_cookieMonster->DeleteSessionCookiesAsync(callback);
+}
+
+void CookieMonsterDelegateQt::deleteAllCookies(quint64 callbackId)
+{
+ Q_ASSERT(hasCookieMonster());
+ Q_ASSERT(m_client);
+
+ net::CookieMonster::DeleteCallback callback = base::Bind(&onDeleteCookiesCallback, m_client->d_func(), callbackId);
+ m_cookieMonster->DeleteAllAsync(callback);
+}
+
void CookieMonsterDelegateQt::setCookieMonster(net::CookieMonster* monster)
{
m_cookieMonster = monster;