diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-14 17:45:07 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-15 14:10:26 +0200 |
commit | 2694ec6605891271ed99f69a03b3929178655963 (patch) | |
tree | e34426d92ffced7db70f7a3e4b8ba95ffa67c1e6 /src/core/web_engine_settings.cpp | |
parent | 4fec7134b45c61422acb63043b70b3bb0456d690 (diff) |
Fix a crash in WebEngineSettings when opening a new window
A new window means that the QWebEnginePage gets its WebContentsAdapter
swapped and that the pointer in WebEngineSettings must be updated.
Do the WebContentsAdapter-to-WebEngineSettings binding in
WebContentsAdapter::initialize to cover both cases.
This also refactors the way that QWebEngineSettings is created by
removing the need to pass a QWebEngineSettingsPrivate instance to be
adopted, and also move the global settings construction logic in
the singleton accessor instead of relying on the fact that it uses
a different contructor.
Change-Id: I6f8a2ed1407a4b25f9898526db9432721c354ddf
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'src/core/web_engine_settings.cpp')
-rw-r--r-- | src/core/web_engine_settings.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 4d0e727e3..507866e56 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -82,14 +82,6 @@ WebEngineSettings::WebEngineSettings(WebEngineSettingsDelegate *delegate) Q_ASSERT(delegate); } -WebEngineSettings::WebEngineSettings(WebEngineSettingsDelegate *delegate, WebContentsAdapter *adapter) - : m_adapter(adapter) - , m_delegate(delegate) - , m_batchTimer(new BatchTimer(this)) -{ - Q_ASSERT(delegate); -} - WebEngineSettings::~WebEngineSettings() { } @@ -252,8 +244,8 @@ void WebEngineSettings::doApply() // FIXME: batch sequential calls to apply? applySettingsToWebPreferences(webPreferences.data()); - if (m_adapter) - m_adapter->updateWebPreferences(*webPreferences.data()); + Q_ASSERT(m_adapter); + m_adapter->updateWebPreferences(*webPreferences.data()); } void WebEngineSettings::applySettingsToWebPreferences(WebPreferences *prefs) |