diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 1e89d169f..d6c622f2c 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -281,6 +281,8 @@ MainApplication::MainApplication(int &argc, char** argv) Settings::createSettings(DataPaths::currentProfilePath() + QLatin1String("/settings.ini")); + NetworkManager::registerSchemes(); + m_webProfile = isPrivate() ? new QWebEngineProfile(this) : QWebEngineProfile::defaultProfile(); connect(m_webProfile, &QWebEngineProfile::downloadRequested, this, &MainApplication::downloadRequested); diff --git a/src/lib/network/networkmanager.cpp b/src/lib/network/networkmanager.cpp index 773e1161d..0c11aff96 100644 --- a/src/lib/network/networkmanager.cpp +++ b/src/lib/network/networkmanager.cpp @@ -52,17 +52,6 @@ NetworkManager::NetworkManager(QObject *parent) // Create scheme handlers m_extensionScheme = new ExtensionSchemeManager(); -#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 12, 0) - QWebEngineUrlScheme falkonScheme("falkon"); - falkonScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::ContentSecurityPolicyIgnored); - falkonScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path); - QWebEngineUrlScheme::registerScheme(falkonScheme); - QWebEngineUrlScheme extensionScheme("extension"); - extensionScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::ContentSecurityPolicyIgnored); - extensionScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path); - QWebEngineUrlScheme::registerScheme(extensionScheme); -#endif - mApp->webProfile()->installUrlSchemeHandler(QByteArrayLiteral("falkon"), new FalkonSchemeHandler()); mApp->webProfile()->installUrlSchemeHandler(QByteArrayLiteral("extension"), m_extensionScheme); WebPage::addSupportedScheme(QSL("falkon")); @@ -309,6 +298,21 @@ void NetworkManager::shutdown() mApp->webProfile()->setRequestInterceptor(nullptr); } +// static +void NetworkManager::registerSchemes() +{ +#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 12, 0) + QWebEngineUrlScheme falkonScheme("falkon"); + falkonScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::ContentSecurityPolicyIgnored); + falkonScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path); + QWebEngineUrlScheme::registerScheme(falkonScheme); + QWebEngineUrlScheme extensionScheme("extension"); + extensionScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::ContentSecurityPolicyIgnored); + extensionScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path); + QWebEngineUrlScheme::registerScheme(extensionScheme); +#endif +} + QNetworkReply *NetworkManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) { QNetworkRequest req = request; diff --git a/src/lib/network/networkmanager.h b/src/lib/network/networkmanager.h index af7475be6..638b26349 100644 --- a/src/lib/network/networkmanager.h +++ b/src/lib/network/networkmanager.h @@ -48,6 +48,8 @@ public: void loadSettings(); void shutdown(); + static void registerSchemes(); + protected: QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) override;