add http/2 switch

This commit is contained in:
Martin Rotter 2022-09-14 15:17:33 +02:00
parent b790fe0c5b
commit d650c6a87c
6 changed files with 28 additions and 3 deletions

View File

@ -40,6 +40,7 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent)
m_ui->m_listTools->setHeaderLabels(QStringList() << tr("Executable") << tr("Parameters"));
m_ui->m_listTools->header()->setSectionResizeMode(0, QHeaderView::ResizeMode::ResizeToContents);
connect(m_ui->m_cbEnableHttp2, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_ui->m_cbIgnoreAllCookies, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_ui->m_checkOpenLinksInExternal, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_proxyDetails, &NetworkProxyDetails::changed, this, &SettingsBrowserMail::dirtifySettings);
@ -155,6 +156,7 @@ void SettingsBrowserMail::selectEmailExecutable() {
void SettingsBrowserMail::loadSettings() {
onBeginLoadSettings();
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());
m_ui->m_checkOpenLinksInExternal
@ -195,6 +197,7 @@ void SettingsBrowserMail::loadSettings() {
void SettingsBrowserMail::saveSettings() {
onBeginSaveSettings();
settings()->setValue(GROUP(Network), Network::EnableHttp2, m_ui->m_cbEnableHttp2->isChecked());
settings()->setValue(GROUP(Network), Network::IgnoreAllCookies, m_ui->m_cbIgnoreAllCookies->isChecked());
settings()->setValue(GROUP(Browser),

View File

@ -28,6 +28,13 @@
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="m_cbEnableHttp2">
<property name="text">
<string>Enable HTTP/2</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="m_tabExternalBrowser">
@ -373,6 +380,7 @@
<tabstop>m_btnExternalBrowserExecutable</tabstop>
<tabstop>m_txtExternalBrowserArguments</tabstop>
<tabstop>m_cmbExternalBrowserPreset</tabstop>
<tabstop>m_checkOpenLinksInExternal</tabstop>
<tabstop>m_grpCustomExternalEmail</tabstop>
<tabstop>m_txtExternalEmailExecutable</tabstop>
<tabstop>m_btnExternalEmailExecutable</tabstop>
@ -382,6 +390,8 @@
<tabstop>m_btnAddTool</tabstop>
<tabstop>m_btnEditTool</tabstop>
<tabstop>m_btnDeleteTool</tabstop>
<tabstop>m_cbIgnoreAllCookies</tabstop>
<tabstop>m_cbEnableHttp2</tabstop>
</tabstops>
<resources/>
<connections/>

View File

@ -47,6 +47,9 @@ DKEY Network::ID = "network";
DKEY Network::SendDNT = "send_dnt";
VALUE(bool) Network::SendDNTDef = false;
DKEY Network::EnableHttp2 = "http2_enabled";
DVALUE(bool) Network::EnableHttp2Def = false;
DKEY Network::IgnoreAllCookies = "ignore_all_cookies";
DVALUE(bool) Network::IgnoreAllCookiesDef = false;

View File

@ -323,6 +323,9 @@ namespace Network {
KEY SendDNT;
VALUE(bool) SendDNTDef;
KEY EnableHttp2;
VALUE(bool) EnableHttp2Def;
KEY IgnoreAllCookies;
VALUE(bool) IgnoreAllCookiesDef;
} // namespace Network

View File

@ -10,7 +10,8 @@
#include <QNetworkReply>
#include <QNetworkRequest>
BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent) : QNetworkAccessManager(parent) {
BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent)
: QNetworkAccessManager(parent), m_enableHttp2(false) {
connect(this, &BaseNetworkAccessManager::sslErrors, this, &BaseNetworkAccessManager::onSslErrors);
loadSettings();
}
@ -37,6 +38,8 @@ void BaseNetworkAccessManager::loadSettings() {
setProxy(QNetworkProxy::applicationProxy());
}
m_enableHttp2 = qApp->settings()->value(GROUP(Network), SETTING(Network::EnableHttp2)).toBool();
qDebugNN << LOGSEC_NETWORK << "Settings of BaseNetworkAccessManager loaded.";
}
@ -54,7 +57,7 @@ QNetworkReply* BaseNetworkAccessManager::createRequest(QNetworkAccessManager::Op
new_request.setAttribute(QNetworkRequest::Attribute::HttpPipeliningAllowedAttribute, true);
#if QT_VERSION >= 0x050F00 // Qt >= 5.15.0
new_request.setAttribute(QNetworkRequest::Attribute::Http2AllowedAttribute, true);
new_request.setAttribute(QNetworkRequest::Attribute::Http2AllowedAttribute, m_enableHttp2);
#endif
#endif

View File

@ -7,7 +7,7 @@
// This is base class for all network access managers.
class BaseNetworkAccessManager : public QNetworkAccessManager {
Q_OBJECT
Q_OBJECT
public:
explicit BaseNetworkAccessManager(QObject* parent = nullptr);
@ -20,6 +20,9 @@ class BaseNetworkAccessManager : public QNetworkAccessManager {
protected:
QNetworkReply* createRequest(Operation op, const QNetworkRequest& request, QIODevice* outgoingData);
private:
bool m_enableHttp2;
};
#endif // BASENETWORKACCESSMANAGER_H