diff options
Diffstat (limited to 'src/core/web_engine_settings.cpp')
-rw-r--r-- | src/core/web_engine_settings.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 93c822f2f..693c6f6fb 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -112,9 +112,8 @@ WebEngineSettings::~WebEngineSettings() if (parentSettings) parentSettings->childSettings.remove(this); // In QML the profile and its settings may be garbage collected before the page and its settings. - for (WebEngineSettings *settings : qAsConst(childSettings)) { - settings->parentSettings = 0; - } + for (WebEngineSettings *settings : qAsConst(childSettings)) + settings->parentSettings = nullptr; } void WebEngineSettings::overrideWebPreferences(content::WebContents *webContents, content::WebPreferences *prefs) @@ -141,11 +140,15 @@ void WebEngineSettings::setAttribute(QWebEngineSettings::WebAttribute attr, bool bool WebEngineSettings::testAttribute(QWebEngineSettings::WebAttribute attr) const { - if (!parentSettings) { - Q_ASSERT(s_defaultAttributes.contains(attr)); - return m_attributes.value(attr, s_defaultAttributes.value(attr)); - } - return m_attributes.value(attr, parentSettings->testAttribute(attr)); + auto it = m_attributes.constFind(attr); + if (it != m_attributes.constEnd()) + return *it; + + if (parentSettings) + return parentSettings->testAttribute(attr); + + Q_ASSERT(s_defaultAttributes.contains(attr)); + return s_defaultAttributes.value(attr); } bool WebEngineSettings::isAttributeExplicitlySet(QWebEngineSettings::WebAttribute attr) const |