diff --git a/src/librssguard/gui/settings/settingsbrowsermail.cpp b/src/librssguard/gui/settings/settingsbrowsermail.cpp index ea5f694be..f36f0317f 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.cpp +++ b/src/librssguard/gui/settings/settingsbrowsermail.cpp @@ -84,6 +84,8 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent) // Remove WebEngine tab. m_ui->m_tabBrowserProxy->removeTab(2); #else + connect(m_ui->m_cbDisableCache, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_cbDisableCache, &QCheckBox::stateChanged, this, &SettingsBrowserMail::requireRestart); connect(m_ui->m_txtWebEngineChromiumFlags, &QPlainTextEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); connect(m_ui->m_txtWebEngineChromiumFlags, &QPlainTextEdit::textChanged, this, &SettingsBrowserMail::requireRestart); #endif @@ -164,6 +166,7 @@ void SettingsBrowserMail::selectEmailExecutable() { void SettingsBrowserMail::loadSettings() { onBeginLoadSettings(); + m_ui->m_cbDisableCache->setChecked(settings()->value(GROUP(Browser), SETTING(Browser::DisableCache)).toBool()); m_ui->m_cbEnableHttp2->setChecked(settings()->value(GROUP(Network), SETTING(Network::EnableHttp2)).toBool()); m_ui->m_cbIgnoreAllCookies ->setChecked(settings()->value(GROUP(Network), SETTING(Network::IgnoreAllCookies)).toBool()); @@ -209,6 +212,7 @@ void SettingsBrowserMail::loadSettings() { void SettingsBrowserMail::saveSettings() { onBeginSaveSettings(); + settings()->setValue(GROUP(Browser), Browser::DisableCache, m_ui->m_cbDisableCache->isChecked()); settings()->setValue(GROUP(Network), Network::EnableHttp2, m_ui->m_cbEnableHttp2->isChecked()); settings()->setValue(GROUP(Network), Network::IgnoreAllCookies, m_ui->m_cbIgnoreAllCookies->isChecked()); diff --git a/src/librssguard/gui/settings/settingsbrowsermail.ui b/src/librssguard/gui/settings/settingsbrowsermail.ui index f94097cdc..539456b72 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.ui +++ b/src/librssguard/gui/settings/settingsbrowsermail.ui @@ -13,9 +13,6 @@ - - 0 - Network @@ -42,16 +39,23 @@ WebEngine - + Custom "QTWEBENGINE_CHROMIUM_FLAGS" flags - + + + + + Disable cache + + + @@ -409,6 +413,8 @@ m_btnDeleteTool m_cbIgnoreAllCookies m_cbEnableHttp2 + m_cbDisableCache + m_txtWebEngineChromiumFlags diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index c22c4b287..19b95d0fe 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -410,6 +410,9 @@ DKEY Notifications::ID = "notifications"; // Web browser. DKEY Browser::ID = "browser"; +DKEY Browser::DisableCache = "disable_cache"; +DVALUE(bool) Browser::DisableCacheDef = false; + DKEY Browser::WebEngineChromiumFlags = "webengine_chromium_flags"; #if defined(Q_OS_LINUX) && !defined(IS_FLATPAK_BUILD) diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index 057787a89..57f2a4ab2 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -451,6 +451,9 @@ namespace Notifications { namespace Browser { KEY ID; + KEY DisableCache; + VALUE(bool) DisableCacheDef; + KEY WebEngineChromiumFlags; VALUE(QString) WebEngineChromiumFlagsDef; diff --git a/src/librssguard/network-web/webfactory.cpp b/src/librssguard/network-web/webfactory.cpp index 4a6a0ecc0..0852e16ec 100644 --- a/src/librssguard/network-web/webfactory.cpp +++ b/src/librssguard/network-web/webfactory.cpp @@ -32,7 +32,15 @@ WebFactory::WebFactory(QObject* parent) : QObject(parent), m_customUserAgent(QSt m_adBlock = new AdBlockManager(this); #if defined(USE_WEBENGINE) - m_engineProfile = new QWebEngineProfile(QSL(APP_LOW_NAME), this); + if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::DisableCache)).toBool()) { + qWarningNN << LOGSEC_NETWORK << "Using off-the-record WebEngine profile."; + + m_engineProfile = new QWebEngineProfile(this); + } + else { + m_engineProfile = new QWebEngineProfile(QSL(APP_LOW_NAME), this); + } + m_engineSettings = nullptr; m_urlInterceptor = new NetworkUrlInterceptor(this); #endif