fix webengine functionality on linux appimage builds

This commit is contained in:
Martin Rotter 2023-01-19 08:07:44 +01:00
parent ee1841d3e0
commit 570973fdcc
3 changed files with 20 additions and 10 deletions

View file

@ -215,15 +215,7 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin
QTimer::singleShot(1000, system(), &SystemFactory::checkForUpdatesOnStartup);
auto ideal_th_count = QThread::idealThreadCount();
if (ideal_th_count > 1) {
QThreadPool::globalInstance()->setMaxThreadCount((std::min)(32, 2 * ideal_th_count));
}
// NOTE: Do not expire threads so that their IDs are not reused.
// This fixes cross-thread QSqlDatabase access.
QThreadPool::globalInstance()->setExpiryTimeout(-1);
setupGlobalThreadPool();
qDebugNN << LOGSEC_CORE << "OpenSSL version:" << QUOTE_W_SPACE_DOT(QSslSocket::sslLibraryVersionString());
qDebugNN << LOGSEC_CORE << "OpenSSL supported:" << QUOTE_W_SPACE_DOT(QSslSocket::supportsSsl());
@ -952,6 +944,18 @@ void Application::setupCustomDataFolder(const QString& data_folder) {
m_customDataFolder = data_folder;
}
void Application::setupGlobalThreadPool() {
auto ideal_th_count = QThread::idealThreadCount();
if (ideal_th_count > 1) {
QThreadPool::globalInstance()->setMaxThreadCount((std::min)(32, 2 * ideal_th_count));
}
// NOTE: Do not expire threads so that their IDs are not reused.
// This fixes cross-thread QSqlDatabase access.
QThreadPool::globalInstance()->setExpiryTimeout(-1);
}
void Application::onAdBlockFailure() {
qApp->showGuiMessage(Notification::Event::GeneralEvent,
{tr("AdBlock needs to be configured"),

View file

@ -187,7 +187,7 @@ class RSSGUARD_DLLSPEC Application : public SingleApplication {
// Processes incoming message from another RSS Guard instance.
void parseCmdArgumentsFromOtherInstance(const QString& message);
void parseCmdArgumentsFromMyInstance(const QStringList& raw_cli_args, QString &custom_ua);
void parseCmdArgumentsFromMyInstance(const QStringList& raw_cli_args, QString& custom_ua);
void displayLog();
@ -223,6 +223,7 @@ class RSSGUARD_DLLSPEC Application : public SingleApplication {
#endif
void setupCustomDataFolder(const QString& data_folder);
void setupGlobalThreadPool();
void determineFirstRuns();
void eliminateFirstRuns();
void displayLogMessageInDialog(const QString& message);

View file

@ -405,7 +405,12 @@ DKEY Notifications::ID = "notifications";
DKEY Browser::ID = "browser";
DKEY Browser::WebEngineChromiumFlags = "webengine_chromium_flags";
#if defined(Q_OS_LINUX) && !defined(IS_FLATPAK_BUILD)
DVALUE(QString) Browser::WebEngineChromiumFlagsDef = QSL("--disable-gpu --no-sandbox --enable-smooth-scrolling");
#else
DVALUE(QString) Browser::WebEngineChromiumFlagsDef = QSL("--enable-smooth-scrolling");
#endif
DKEY Browser::OpenLinksInExternalBrowserRightAway = "open_link_externally_wo_confirmation";
DVALUE(bool) Browser::OpenLinksInExternalBrowserRightAwayDef = false;