summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-05 09:52:47 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-06 09:32:06 +0200
commit4ff58f93db3e78d6d309f2648c3dd3152fe63168 (patch)
tree331faf68bdbaee31dbd61cf2a75777b2fb0de8fb
parent3d80c914693e27dd118d4e07e2eda22713722c90 (diff)
Optimize WebEngineSettings::testAttribute
Do not look up fallback values before they are needed. Change-Id: I8bb21e261e8d218c658ac2a08e3cdc30b2cea47d Reviewed-by: Michal Klocek <michal.klocek@qt.io>
-rw-r--r--src/core/web_engine_settings.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index edd72a117..957fe2b7d 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(WebEngineSettings::Attribute attr, bool on)
bool WebEngineSettings::testAttribute(WebEngineSettings::Attribute 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(Attribute attr) const