diff options
Diffstat (limited to 'src/webengine/webengineprofile.cpp')
-rw-r--r-- | src/webengine/webengineprofile.cpp | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/src/webengine/webengineprofile.cpp b/src/webengine/webengineprofile.cpp index 55af9f2..e69de29 100644 --- a/src/webengine/webengineprofile.cpp +++ b/src/webengine/webengineprofile.cpp @@ -1,214 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: https://neueland.iserlohn-fortress.net/smolbote.hg - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "webengineprofile.h" -#include <QFileInfo> -#include <QSettings> -#include <QWebEngineCookieStore> -#include <QWebEngineSettings> - -WebEngineProfile::WebEngineProfile(QObject *parent) - : QWebEngineProfile(parent) -{ - m_name = tr("Off-the-record"); - -#ifdef QT_DEBUG - qDebug("Creating off-the-record profile"); -#endif - - // Off-the-record profiles have no persistent path -} - -WebEngineProfile::WebEngineProfile(const QString &name, QObject *parent) - : QWebEngineProfile(name, parent) -{ - m_name = name; - -#ifdef QT_DEBUG - qDebug("Creating profile %s", qUtf8Printable(m_name)); -#endif -} - -WebEngineProfile::~WebEngineProfile() = default; - -QString WebEngineProfile::name() const -{ - return m_name; -} - -QUrl WebEngineProfile::homepage() const -{ - return m_homepage; -} - -QUrl WebEngineProfile::newtab() const -{ - return m_newtab; -} - -void WebEngineProfile::loadProfile(QHash<QString, QString> conf, const QString &path) -{ - m_configPath = path; - -#ifdef QT_DEBUG - qDebug("Reading config for profile '%s': %s", qUtf8Printable(m_name), qUtf8Printable(m_configPath)); -#endif - QSettings config(m_configPath, QSettings::IniFormat); - - m_homepage = config.value("homepage", conf["profile.homepage"]).toUrl(); - m_newtab = config.value("newtab", conf["profile.newtab"]).toUrl(); - - config.beginGroup("http"); - setHttpUserAgent(config.value("userAgent", httpUserAgent()).toString()); - setHttpAcceptLanguage(config.value("accept-lang", httpAcceptLanguage()).toString()); - { - QString cacheType = config.value("cacheType").toString(); - if(cacheType == "memory") { - setHttpCacheType(QWebEngineProfile::MemoryHttpCache); - } else if(cacheType == "disk") { - setHttpCacheType(QWebEngineProfile::DiskHttpCache); - } else if(cacheType == "disabled") { - setHttpCacheType(QWebEngineProfile::NoCache); - } - } - setHttpCacheMaximumSize(config.value("cacheSize", httpCacheMaximumSize()).toInt()); - config.endGroup(); // http - - config.beginGroup("policy"); - { - QString cookies = config.value("cookies").toString(); - if(cookies == "disabled") { - setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies); - } else if(cookies == "allow") { - setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies); - } else if(cookies == "force") { - setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies); - } - } - config.endGroup(); // policy - - config.beginGroup("attributes"); - QWebEngineSettings *s = settings(); - s->setAttribute(QWebEngineSettings::AutoLoadImages, - config.value("autoLoadImages", s->testAttribute(QWebEngineSettings::AutoLoadImages)).toBool()); - s->setAttribute(QWebEngineSettings::JavascriptEnabled, - config.value("javascriptEnabled", s->testAttribute(QWebEngineSettings::JavascriptEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, - config.value("javascriptCanOpenWindows", s->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)).toBool()); - s->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, - config.value("javascriptCanAccessClipboard", s->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)).toBool()); - s->setAttribute(QWebEngineSettings::LinksIncludedInFocusChain, - config.value("linksIncludedInFocusChain", s->testAttribute(QWebEngineSettings::LinksIncludedInFocusChain)).toBool()); - s->setAttribute(QWebEngineSettings::LocalStorageEnabled, - config.value("localStorageEnabled", s->testAttribute(QWebEngineSettings::LocalStorageEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, - config.value("localContentCanAccessRemoteUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls)).toBool()); - s->setAttribute(QWebEngineSettings::XSSAuditingEnabled, - config.value("xssAuditingEnabled", s->testAttribute(QWebEngineSettings::XSSAuditingEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, - config.value("spatialNavigationEnabled", s->testAttribute(QWebEngineSettings::SpatialNavigationEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, - config.value("localContentCanAccessFileUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)).toBool()); - s->setAttribute(QWebEngineSettings::HyperlinkAuditingEnabled, - config.value("hyperlinkAuditingEnabled", s->testAttribute(QWebEngineSettings::HyperlinkAuditingEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, - config.value("scrollAnimatorEnabled", s->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::ErrorPageEnabled, - config.value("errorPageEnabled", s->testAttribute(QWebEngineSettings::ErrorPageEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::PluginsEnabled, - config.value("pluginsEnabled", s->testAttribute(QWebEngineSettings::PluginsEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, - config.value("fullscreenSupportEnabled", s->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, - config.value("screenCaptureEnabled", s->testAttribute(QWebEngineSettings::ScreenCaptureEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::WebGLEnabled, - config.value("webglEnabled", s->testAttribute(QWebEngineSettings::WebGLEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, - config.value("accelerated2dCanvasEnabled", s->testAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::AutoLoadIconsForPage, - config.value("autoLoadIconsForPage", s->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)).toBool()); - s->setAttribute(QWebEngineSettings::TouchIconsEnabled, - config.value("touchIconsEnabled", s->testAttribute(QWebEngineSettings::TouchIconsEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, - config.value("focusOnNavigationEnabled", s->testAttribute(QWebEngineSettings::FocusOnNavigationEnabled)).toBool()); - s->setAttribute(QWebEngineSettings::PrintElementBackgrounds, - config.value("printElementBackgrounds", s->testAttribute(QWebEngineSettings::PrintElementBackgrounds)).toBool()); - s->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, - config.value("allowRunningInsecureContent", s->testAttribute(QWebEngineSettings::AllowRunningInsecureContent)).toBool()); - config.endGroup(); // attributes -} - -void WebEngineProfile::saveProfile(const QString &path) -{ - QSettings config(persistentStoragePath() + "/profile.ini", QSettings::IniFormat); - - config.setValue("homepage", homepage().toString()); - config.setValue("newtab", newtab().toString()); - - config.beginGroup("http"); - config.setValue("userAgent", httpUserAgent()); - config.setValue("accept-lang", httpAcceptLanguage()); - switch(httpCacheType()) { - case MemoryHttpCache: - config.setValue("cacheType", "memory"); - break; - case DiskHttpCache: - config.setValue("cacheType", "disk"); - break; - case NoCache: - config.setValue("cacheType", "disabled"); - break; - } - config.setValue("cacheSize", httpCacheMaximumSize()); - config.endGroup(); // http - - config.beginGroup("policy"); - switch(persistentCookiesPolicy()) { - case NoPersistentCookies: - config.setValue("cookies", "disabled"); - break; - case AllowPersistentCookies: - config.setValue("cookies", "allow"); - break; - case ForcePersistentCookies: - config.setValue("cookies", "force"); - break; - } - config.endGroup(); // policy - - QWebEngineSettings *s = settings(); - config.beginGroup("attributes"); - config.setValue("autoLoadImages", s->testAttribute(QWebEngineSettings::AutoLoadImages)); - config.setValue("javascriptEnabled", s->testAttribute(QWebEngineSettings::JavascriptEnabled)); - config.setValue("javascriptCanOpenWindows", s->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)); - config.setValue("javascriptCanAccessClipboard", s->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)); - config.setValue("linksIncludedInFocusChain", s->testAttribute(QWebEngineSettings::LinksIncludedInFocusChain)); - config.setValue("localStorageEnabled", s->testAttribute(QWebEngineSettings::LocalStorageEnabled)); - config.setValue("localContentCanAccessRemoteUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls)); - config.setValue("xssAuditingEnabled", s->testAttribute(QWebEngineSettings::XSSAuditingEnabled)); - config.setValue("spatialNavigationEnabled", s->testAttribute(QWebEngineSettings::SpatialNavigationEnabled)); - config.setValue("localContentCanAccessFileUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)); - config.setValue("hyperlinkAuditingEnabled", s->testAttribute(QWebEngineSettings::HyperlinkAuditingEnabled)); - config.setValue("scrollAnimatorEnabled", s->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled)); - config.setValue("errorPageEnabled", s->testAttribute(QWebEngineSettings::ErrorPageEnabled)); - config.setValue("pluginsEnabled", s->testAttribute(QWebEngineSettings::PluginsEnabled)); - config.setValue("fullscreenSupportEnabled", s->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)); - config.setValue("screenCaptureEnabled", s->testAttribute(QWebEngineSettings::ScreenCaptureEnabled)); - config.setValue("webglEnabled", s->testAttribute(QWebEngineSettings::WebGLEnabled)); - config.setValue("accelerated2dCanvasEnabled", s->testAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled)); - config.setValue("autoLoadIconsForPage", s->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)); - config.setValue("touchIconsEnabled", s->testAttribute(QWebEngineSettings::TouchIconsEnabled)); -#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) - config.setValue("focusOnNavigationEnabled", s->testAttribute(QWebEngineSettings::FocusOnNavigationEnabled)); - config.setValue("printElementBackgrounds", s->testAttribute(QWebEngineSettings::PrintElementBackgrounds)); - config.setValue("allowRunningInsecureContent", s->testAttribute(QWebEngineSettings::AllowRunningInsecureContent)); -#endif - config.endGroup(); // attributes - - config.sync(); -} |