1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-22 02:02:10 +02:00

Update to latest Qt 5.6 QtWebEngine

This commit is contained in:
David Rosca 2016-01-30 11:41:39 +01:00
parent 06b2414d80
commit 960a46daef
3 changed files with 34 additions and 19 deletions

View File

@ -1,6 +1,6 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
* Copyright (C) 2010-2016 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -34,13 +34,10 @@ CookieJar::CookieJar(QObject* parent)
, m_client(mApp->webProfile()->cookieStore())
{
loadSettings();
m_client->loadAllCookies();
connect(m_client, &QWebEngineCookieStore::cookieAdded, this, &CookieJar::cookieAdded);
connect(m_client, &QWebEngineCookieStore::cookieRemoved, this, &CookieJar::cookieRemoved);
m_client->setCookieFilter([this](QWebEngineCookieStore::FilterRequest &req) {
req.accepted = acceptCookie(req.firstPartyUrl, req.cookieLine, req.cookieSource);
});
connect(m_client, &QWebEngineCookieStore::cookieAdded, this, &CookieJar::slotCookieAdded);
connect(m_client, &QWebEngineCookieStore::cookieRemoved, this, &CookieJar::slotCookieRemoved);
}
void CookieJar::loadSettings()
@ -60,9 +57,9 @@ void CookieJar::setAllowCookies(bool allow)
m_allowCookies = allow;
}
void CookieJar::getAllCookies(const QWebEngineCallback<const QByteArray &> callback)
QVector<QNetworkCookie> CookieJar::getAllCookies() const
{
m_client->getAllCookies(callback);
return m_cookies;
}
void CookieJar::deleteAllCookies()
@ -97,6 +94,23 @@ bool CookieJar::listMatchesDomain(const QStringList &list, const QString &cookie
return false;
}
void CookieJar::slotCookieAdded(const QNetworkCookie &cookie)
{
if (rejectCookie(QString(), cookie, cookie.domain())) {
m_client->deleteCookie(cookie);
return;
}
m_cookies.append(cookie);
emit cookieAdded(cookie);
}
void CookieJar::slotCookieRemoved(const QNetworkCookie &cookie)
{
if (m_cookies.removeOne(cookie))
emit cookieRemoved(cookie);
}
bool CookieJar::acceptCookie(const QUrl &firstPartyUrl, const QByteArray &cookieLine, const QUrl &cookieSource) const
{
const QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(cookieLine);

View File

@ -1,6 +1,6 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
* Copyright (C) 2010-2016 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -18,7 +18,7 @@
#ifndef COOKIEJAR_H
#define COOKIEJAR_H
#include <QFile>
#include <QVector>
#include <QStringList>
#include <QWebEngineCookieStore>
@ -37,7 +37,7 @@ public:
void setAllowCookies(bool allow);
void getAllCookies(const QWebEngineCallback<const QByteArray&> callback);
QVector<QNetworkCookie> getAllCookies() const;
void deleteAllCookies();
signals:
@ -49,6 +49,9 @@ protected:
bool listMatchesDomain(const QStringList &list, const QString &cookieDomain) const;
private:
void slotCookieAdded(const QNetworkCookie &cookie);
void slotCookieRemoved(const QNetworkCookie &cookie);
bool acceptCookie(const QUrl &firstPartyUrl, const QByteArray &cookieLine, const QUrl &cookieSource) const;
bool rejectCookie(const QString &domain, const QNetworkCookie &cookie, const QString &cookieDomain) const;
@ -58,7 +61,9 @@ private:
QStringList m_whitelist;
QStringList m_blacklist;
QWebEngineCookieStore *m_client;
QVector<QNetworkCookie> m_cookies;
};
#endif // COOKIEJAR_H

View File

@ -1,6 +1,6 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
* Copyright (C) 2010-2016 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -88,12 +88,8 @@ CookieManager::CookieManager()
connect(mApp->cookieJar(), &CookieJar::cookieRemoved, this, &CookieManager::removeCookie);
// Load cookies
mApp->cookieJar()->getAllCookies([this](const QByteArray &res) {
const QList<QNetworkCookie> &allCookies = QNetworkCookie::parseCookies(res);
foreach (const QNetworkCookie &cookie, allCookies) {
foreach (const QNetworkCookie &cookie, mApp->cookieJar()->getAllCookies())
addCookie(cookie);
}
});
QzTools::setWmClass("Cookies", this);
}