1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-23 02:32:10 +02:00
falkonOfficial/src/lib/other/useragentmanager.cpp

53 lines
1.6 KiB
C++
Raw Normal View History

#include "useragentmanager.h"
#include "qupzilla.h"
#include "globalfunctions.h"
#include "settings.h"
UserAgentManager::UserAgentManager()
{
m_fakeUserAgent = QString("Mozilla/5.0 (%1) AppleWebKit/%2 (KHTML, like Gecko) Chrome/10.0 Safari/%2").arg(qz_buildSystem(), QupZilla::WEBKITVERSION);
}
void UserAgentManager::loadSettings()
{
Settings settings;
settings.beginGroup("Web-Browser-Settings");
m_globalUserAgent = settings.value("UserAgent", QString()).toString();
settings.endGroup();
settings.beginGroup("UserAgent-Settings");
m_usePerDomainUserAgent = settings.value("UsePerDomainUA", false).toBool();
QStringList domainList = settings.value("DomainList", QStringList()).toStringList();
QStringList userAgentsList = settings.value("UserAgentsList", QStringList()).toStringList();
settings.endGroup();
m_usePerDomainUserAgent = (m_usePerDomainUserAgent && domainList.count() == userAgentsList.count());
if (m_usePerDomainUserAgent) {
for (int i = 0; i < domainList.count(); ++i) {
m_userAgentsList[domainList.at(i)] = userAgentsList.at(i);
}
}
}
QString UserAgentManager::userAgentForUrl(const QUrl &url)
{
const QString &host = url.host();
if (m_usePerDomainUserAgent) {
QHashIterator<QString, QString> i(m_userAgentsList);
while (i.hasNext()) {
i.next();
if (host.endsWith(i.key())) {
return i.value();
}
}
}
if (host.contains("google")) {
return m_fakeUserAgent;
}
return m_globalUserAgent;
}