summaryrefslogtreecommitdiffstats
path: root/src/webengine
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-11-28 12:00:08 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-02-05 13:56:10 +0000
commit4ef5831a398280cc26cbf359dcbb9878e77ab7fb (patch)
treeadb8b7ac7a42b8130b178d1001a5c008c430d325 /src/webengine
parentfaec509a21b4700dbf271c4dcbb3a993f1c4042f (diff)
Add settings to WebEngineProfiles
This patch adds settings to profiles so common settings might be shared among all pages in a profile. The former global settings are now replaced by the settings of the default profile. Change-Id: I544420e07beeb52ef29b2360bc7929402650cd07 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webengine')
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp13
-rw-r--r--src/webengine/api/qquickwebengineprofile_p.h6
-rw-r--r--src/webengine/api/qquickwebengineprofile_p_p.h9
-rw-r--r--src/webengine/api/qquickwebenginesettings.cpp175
-rw-r--r--src/webengine/api/qquickwebenginesettings_p.h16
-rw-r--r--src/webengine/api/qquickwebenginesettings_p_p.h56
-rw-r--r--src/webengine/api/qquickwebenginesingleton.cpp2
-rw-r--r--src/webengine/api/qquickwebengineview.cpp9
-rw-r--r--src/webengine/webengine.pro1
9 files changed, 94 insertions, 193 deletions
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
index faae850f7..791f39263 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -39,9 +39,12 @@
#include "qquickwebenginedownloaditem_p.h"
#include "qquickwebenginedownloaditem_p_p.h"
#include "qquickwebengineprofile_p_p.h"
+#include "qquickwebenginesettings_p.h"
+
#include <QQmlEngine>
#include "browser_context_adapter.h"
+#include "web_engine_settings.h"
QT_BEGIN_NAMESPACE
@@ -62,12 +65,14 @@ static inline QQuickWebEngineDownloadItem::DownloadState toDownloadState(int sta
}
QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext)
- : m_browserContext(browserContext)
+ : m_settings(new QQuickWebEngineSettings())
+ , m_browserContext(browserContext)
{
if (ownsContext)
m_browserContextRef = browserContext;
m_browserContext->setClient(this);
+ m_settings->d_ptr->initDefaults(browserContext->isOffTheRecord());
}
QQuickWebEngineProfilePrivate::~QQuickWebEngineProfilePrivate()
@@ -394,4 +399,10 @@ QQuickWebEngineProfile *QQuickWebEngineProfile::defaultProfile()
return &profile;
}
+QQuickWebEngineSettings *QQuickWebEngineProfile::settings() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->settings();
+}
+
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebengineprofile_p.h b/src/webengine/api/qquickwebengineprofile_p.h
index dd28d2e18..7a2ff08e1 100644
--- a/src/webengine/api/qquickwebengineprofile_p.h
+++ b/src/webengine/api/qquickwebengineprofile_p.h
@@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE
class QQuickWebEngineDownloadItem;
class QQuickWebEngineProfilePrivate;
+class QQuickWebEngineSettings;
class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineProfile : public QObject {
Q_OBJECT
@@ -115,9 +116,12 @@ signals:
void downloadFinished(QQuickWebEngineDownloadItem *download);
private:
- Q_DECLARE_PRIVATE(QQuickWebEngineProfile);
+ Q_DECLARE_PRIVATE(QQuickWebEngineProfile)
QQuickWebEngineProfile(QQuickWebEngineProfilePrivate *);
+ QQuickWebEngineSettings *settings() const;
+ friend class QQuickWebEngineSettings;
+ friend class QQuickWebEngineSingleton;
friend class QQuickWebEngineViewPrivate;
QScopedPointer<QQuickWebEngineProfilePrivate> d_ptr;
};
diff --git a/src/webengine/api/qquickwebengineprofile_p_p.h b/src/webengine/api/qquickwebengineprofile_p_p.h
index 359db6ede..6b6026abb 100644
--- a/src/webengine/api/qquickwebengineprofile_p_p.h
+++ b/src/webengine/api/qquickwebengineprofile_p_p.h
@@ -47,16 +47,18 @@ class BrowserContextAdapter;
#include <QPointer>
QT_BEGIN_NAMESPACE
+
class QQuickWebEngineDownloadItem;
-class QQuickWebEngineProfilePrivate
- : public BrowserContextAdapterClient
-{
+class QQuickWebEngineSettings;
+
+class QQuickWebEngineProfilePrivate : public BrowserContextAdapterClient {
public:
Q_DECLARE_PUBLIC(QQuickWebEngineProfile)
QQuickWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext);
~QQuickWebEngineProfilePrivate();
BrowserContextAdapter *browserContext() const { return m_browserContext; }
+ QQuickWebEngineSettings *settings() const { return m_settings.data(); }
void cancelDownload(quint32 downloadId);
void downloadDestroyed(quint32 downloadId);
@@ -67,6 +69,7 @@ public:
private:
friend class QQuickWebEngineViewPrivate;
QQuickWebEngineProfile *q_ptr;
+ QScopedPointer<QQuickWebEngineSettings> m_settings;
BrowserContextAdapter *m_browserContext;
QExplicitlySharedDataPointer<BrowserContextAdapter> m_browserContextRef;
QMap<quint32, QPointer<QQuickWebEngineDownloadItem> > m_ongoingDownloads;
diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp
index e46b1a80d..f4c9a656d 100644
--- a/src/webengine/api/qquickwebenginesettings.cpp
+++ b/src/webengine/api/qquickwebenginesettings.cpp
@@ -35,245 +35,184 @@
****************************************************************************/
#include "qquickwebenginesettings_p.h"
-#include "qquickwebenginesettings_p_p.h"
+
+#include "qquickwebengineprofile_p.h"
+#include "web_engine_settings.h"
#include <QtCore/QList>
QT_BEGIN_NAMESPACE
-Q_GLOBAL_STATIC(QList<QQuickWebEngineSettingsPrivate*>, allSettings)
-
-class QQuickWebEngineGlobalSettings {
- QQuickWebEngineSettings globalSettings;
-public:
- QQuickWebEngineGlobalSettings() {
- // globalSettings shouldn't be in that list.
- allSettings->removeAll(globalSettings.d_func());
- globalSettings.d_func()->coreSettings->initDefaults();
- }
-
- QQuickWebEngineSettings *data() { return &globalSettings; }
-};
-
-Q_GLOBAL_STATIC(QQuickWebEngineGlobalSettings, globalInstance)
-
-QQuickWebEngineSettingsPrivate::QQuickWebEngineSettingsPrivate()
- : coreSettings(new WebEngineSettings(this))
-{
- allSettings->append(this);
-}
-
-void QQuickWebEngineSettingsPrivate::apply()
-{
- coreSettings->scheduleApply();
- QQuickWebEngineSettingsPrivate *globals = QQuickWebEngineSettings::globalSettings()->d_func();
- Q_ASSERT((this == globals) != (allSettings->contains(this)));
- if (this == globals)
- Q_FOREACH (QQuickWebEngineSettingsPrivate *settings, *allSettings)
- settings->coreSettings->scheduleApply();
-}
-
-WebEngineSettings *QQuickWebEngineSettingsPrivate::fallbackSettings() const
-{
- return QQuickWebEngineSettings::globalSettings()->d_func()->coreSettings.data();
-}
-
-QQuickWebEngineSettings *QQuickWebEngineSettings::globalSettings()
-{
- return globalInstance()->data();
-}
+QQuickWebEngineSettings::QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings)
+ : d_ptr(new WebEngineSettings(parentSettings ? parentSettings->d_ptr.data() : 0))
+{ }
QQuickWebEngineSettings::~QQuickWebEngineSettings()
-{
- allSettings->removeAll(this->d_func());
-}
+{ }
bool QQuickWebEngineSettings::autoLoadImages() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::AutoLoadImages);
+ return d_ptr->testAttribute(WebEngineSettings::AutoLoadImages);
}
bool QQuickWebEngineSettings::javascriptEnabled() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::JavascriptEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::JavascriptEnabled);
}
bool QQuickWebEngineSettings::javascriptCanOpenWindows() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::JavascriptCanOpenWindows);
+ return d_ptr->testAttribute(WebEngineSettings::JavascriptCanOpenWindows);
}
bool QQuickWebEngineSettings::javascriptCanAccessClipboard() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::JavascriptCanAccessClipboard);
+ return d_ptr->testAttribute(WebEngineSettings::JavascriptCanAccessClipboard);
}
bool QQuickWebEngineSettings::linksIncludedInFocusChain() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::LinksIncludedInFocusChain);
+ return d_ptr->testAttribute(WebEngineSettings::LinksIncludedInFocusChain);
}
bool QQuickWebEngineSettings::localStorageEnabled() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::LocalStorageEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::LocalStorageEnabled);
}
bool QQuickWebEngineSettings::localContentCanAccessRemoteUrls() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls);
+ return d_ptr->testAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls);
}
bool QQuickWebEngineSettings::spatialNavigationEnabled() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::SpatialNavigationEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::SpatialNavigationEnabled);
}
bool QQuickWebEngineSettings::localContentCanAccessFileUrls() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::LocalContentCanAccessFileUrls);
+ return d_ptr->testAttribute(WebEngineSettings::LocalContentCanAccessFileUrls);
}
bool QQuickWebEngineSettings::hyperlinkAuditingEnabled() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::HyperlinkAuditingEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::HyperlinkAuditingEnabled);
}
bool QQuickWebEngineSettings::errorPageEnabled() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->testAttribute(WebEngineSettings::ErrorPageEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::ErrorPageEnabled);
}
QString QQuickWebEngineSettings::defaultTextEncoding() const
{
- Q_D(const QQuickWebEngineSettings);
- return d->coreSettings->defaultTextEncoding();
+ return d_ptr->defaultTextEncoding();
}
void QQuickWebEngineSettings::setAutoLoadImages(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::AutoLoadImages);
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::AutoLoadImages);
// Set unconditionally as it sets the override for the current settings while the current setting
// could be from the fallback and is prone to changing later on.
- d->coreSettings->setAttribute(WebEngineSettings::AutoLoadImages, on);
- if (wasOn ^ on)
+ d_ptr->setAttribute(WebEngineSettings::AutoLoadImages, on);
+ if (wasOn != on)
Q_EMIT autoLoadImagesChanged();
}
void QQuickWebEngineSettings::setJavascriptEnabled(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::JavascriptEnabled);
- d->coreSettings->setAttribute(WebEngineSettings::JavascriptEnabled, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::JavascriptEnabled);
+ d_ptr->setAttribute(WebEngineSettings::JavascriptEnabled, on);
+ if (wasOn != on)
Q_EMIT javascriptEnabledChanged();
}
void QQuickWebEngineSettings::setJavascriptCanOpenWindows(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::JavascriptCanOpenWindows);
- d->coreSettings->setAttribute(WebEngineSettings::JavascriptCanOpenWindows, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::JavascriptCanOpenWindows);
+ d_ptr->setAttribute(WebEngineSettings::JavascriptCanOpenWindows, on);
+ if (wasOn != on)
Q_EMIT javascriptCanOpenWindowsChanged();
}
void QQuickWebEngineSettings::setJavascriptCanAccessClipboard(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::JavascriptCanAccessClipboard);
- d->coreSettings->setAttribute(WebEngineSettings::JavascriptCanAccessClipboard, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::JavascriptCanAccessClipboard);
+ d_ptr->setAttribute(WebEngineSettings::JavascriptCanAccessClipboard, on);
+ if (wasOn != on)
Q_EMIT javascriptCanAccessClipboardChanged();
}
void QQuickWebEngineSettings::setLinksIncludedInFocusChain(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::LinksIncludedInFocusChain);
- d->coreSettings->setAttribute(WebEngineSettings::LinksIncludedInFocusChain, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::LinksIncludedInFocusChain);
+ d_ptr->setAttribute(WebEngineSettings::LinksIncludedInFocusChain, on);
+ if (wasOn != on)
Q_EMIT linksIncludedInFocusChainChanged();
}
void QQuickWebEngineSettings::setLocalStorageEnabled(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::LocalStorageEnabled);
- d->coreSettings->setAttribute(WebEngineSettings::LocalStorageEnabled, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::LocalStorageEnabled);
+ d_ptr->setAttribute(WebEngineSettings::LocalStorageEnabled, on);
+ if (wasOn != on)
Q_EMIT localStorageEnabledChanged();
}
void QQuickWebEngineSettings::setLocalContentCanAccessRemoteUrls(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls);
- d->coreSettings->setAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls);
+ d_ptr->setAttribute(WebEngineSettings::LocalContentCanAccessRemoteUrls, on);
+ if (wasOn != on)
Q_EMIT localContentCanAccessRemoteUrlsChanged();
}
void QQuickWebEngineSettings::setSpatialNavigationEnabled(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::SpatialNavigationEnabled);
- d->coreSettings->setAttribute(WebEngineSettings::SpatialNavigationEnabled, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::SpatialNavigationEnabled);
+ d_ptr->setAttribute(WebEngineSettings::SpatialNavigationEnabled, on);
+ if (wasOn != on)
Q_EMIT spatialNavigationEnabledChanged();
}
void QQuickWebEngineSettings::setLocalContentCanAccessFileUrls(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::LocalContentCanAccessFileUrls);
- d->coreSettings->setAttribute(WebEngineSettings::LocalContentCanAccessFileUrls, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::LocalContentCanAccessFileUrls);
+ d_ptr->setAttribute(WebEngineSettings::LocalContentCanAccessFileUrls, on);
+ if (wasOn != on)
Q_EMIT localContentCanAccessFileUrlsChanged();
}
void QQuickWebEngineSettings::setHyperlinkAuditingEnabled(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::HyperlinkAuditingEnabled);
- d->coreSettings->setAttribute(WebEngineSettings::HyperlinkAuditingEnabled, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::HyperlinkAuditingEnabled);
+ d_ptr->setAttribute(WebEngineSettings::HyperlinkAuditingEnabled, on);
+ if (wasOn != on)
Q_EMIT hyperlinkAuditingEnabledChanged();
}
void QQuickWebEngineSettings::setErrorPageEnabled(bool on)
{
- Q_D(QQuickWebEngineSettings);
- bool wasOn = d->coreSettings->testAttribute(WebEngineSettings::ErrorPageEnabled);
- d->coreSettings->setAttribute(WebEngineSettings::ErrorPageEnabled, on);
- if (wasOn ^ on)
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::ErrorPageEnabled);
+ d_ptr->setAttribute(WebEngineSettings::ErrorPageEnabled, on);
+ if (wasOn != on)
Q_EMIT errorPageEnabledChanged();
}
void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding)
{
- Q_D(QQuickWebEngineSettings);
- const QString oldDefaultTextEncoding = d->coreSettings->defaultTextEncoding();
- d->coreSettings->setDefaultTextEncoding(encoding);
+ const QString oldDefaultTextEncoding = d_ptr->defaultTextEncoding();
+ d_ptr->setDefaultTextEncoding(encoding);
if (oldDefaultTextEncoding.compare(encoding))
Q_EMIT defaultTextEncodingChanged();
}
-QQuickWebEngineSettings::QQuickWebEngineSettings()
- : d_ptr(new QQuickWebEngineSettingsPrivate)
+void QQuickWebEngineSettings::setParentSettings(QQuickWebEngineSettings *parentSettings)
{
+ d_ptr->setParentSettings(parentSettings->d_ptr.data());
+ d_ptr->scheduleApplyRecursively();
}
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h
index 040a5f5fb..6e8bfa219 100644
--- a/src/webengine/api/qquickwebenginesettings_p.h
+++ b/src/webengine/api/qquickwebenginesettings_p.h
@@ -41,10 +41,9 @@
#include <QObject>
#include <QScopedPointer>
-QT_BEGIN_NAMESPACE
+class WebEngineSettings;
-class QQuickWebEngineSettingsPrivate;
-class QQuickWebEngineGlobalSettings;
+QT_BEGIN_NAMESPACE
class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject {
Q_OBJECT
@@ -62,8 +61,6 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject {
Q_PROPERTY(QString defaultTextEncoding READ defaultTextEncoding WRITE setDefaultTextEncoding NOTIFY defaultTextEncodingChanged)
public:
- static QQuickWebEngineSettings *globalSettings();
-
~QQuickWebEngineSettings();
bool autoLoadImages() const;
@@ -107,13 +104,14 @@ signals:
void defaultTextEncodingChanged();
private:
- QQuickWebEngineSettings();
+ explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = 0);
Q_DISABLE_COPY(QQuickWebEngineSettings)
- Q_DECLARE_PRIVATE(QQuickWebEngineSettings)
+ friend class QQuickWebEngineProfilePrivate;
friend class QQuickWebEngineViewPrivate;
- friend class QQuickWebEngineGlobalSettings;
- QScopedPointer<QQuickWebEngineSettingsPrivate> d_ptr;
+ void setParentSettings(QQuickWebEngineSettings *parentSettings);
+
+ QScopedPointer<WebEngineSettings> d_ptr;
};
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebenginesettings_p_p.h b/src/webengine/api/qquickwebenginesettings_p_p.h
deleted file mode 100644
index 05a163b92..000000000
--- a/src/webengine/api/qquickwebenginesettings_p_p.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtWebEngine module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKWEBENGINESETTINGS_P_P_H
-#define QQUICKWEBENGINESETTINGS_P_P_H
-
-#include "web_engine_settings.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickWebEngineSettingsPrivate : public WebEngineSettingsDelegate {
-public:
- QQuickWebEngineSettingsPrivate();
-
- void apply() Q_DECL_OVERRIDE;
- WebEngineSettings *fallbackSettings() const Q_DECL_OVERRIDE;
-
- QScopedPointer<WebEngineSettings> coreSettings;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKWEBENGINESETTINGS_P_P_H
diff --git a/src/webengine/api/qquickwebenginesingleton.cpp b/src/webengine/api/qquickwebenginesingleton.cpp
index 280f5b913..4f1bd32f2 100644
--- a/src/webengine/api/qquickwebenginesingleton.cpp
+++ b/src/webengine/api/qquickwebenginesingleton.cpp
@@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE
QQuickWebEngineSettings *QQuickWebEngineSingleton::settings() const
{
- return QQuickWebEngineSettings::globalSettings();
+ return defaultProfile()->settings();
}
QQuickWebEngineProfile *QQuickWebEngineSingleton::defaultProfile() const
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 02d30af61..85a36df50 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -48,7 +48,6 @@
#include "qquickwebengineprofile_p.h"
#include "qquickwebengineprofile_p_p.h"
#include "qquickwebenginesettings_p.h"
-#include "qquickwebenginesettings_p_p.h"
#include "render_widget_host_view_qt_delegate_quick.h"
#include "render_widget_host_view_qt_delegate_quickwindow.h"
#include "ui_delegates_manager.h"
@@ -86,7 +85,7 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
, v(new QQuickWebEngineViewport(this))
, m_history(new QQuickWebEngineHistory(this))
, m_profile(QQuickWebEngineProfile::defaultProfile())
- , m_settings(new QQuickWebEngineSettings)
+ , m_settings(new QQuickWebEngineSettings(m_profile->settings()))
, contextMenuExtraItems(0)
, loadProgress(0)
, m_isFullScreen(false)
@@ -450,7 +449,7 @@ BrowserContextAdapter *QQuickWebEngineViewPrivate::browserContextAdapter()
WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
{
- return m_settings->d_func()->coreSettings.data();
+ return m_settings->d_ptr.data();
}
void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
@@ -664,7 +663,11 @@ void QQuickWebEngineView::setProfile(QQuickWebEngineProfile *profile)
void QQuickWebEngineViewPrivate::setProfile(QQuickWebEngineProfile *profile)
{
+ if (profile == m_profile)
+ return;
m_profile = profile;
+ m_settings->setParentSettings(profile->settings());
+
if (adapter && adapter->browserContext() != browserContextAdapter()->browserContext()) {
// When the profile changes we need to create a new WebContentAdapter and reload the active URL.
QUrl activeUrl = adapter->activeUrl();
diff --git a/src/webengine/webengine.pro b/src/webengine/webengine.pro
index 275867202..8a6d06c10 100644
--- a/src/webengine/webengine.pro
+++ b/src/webengine/webengine.pro
@@ -39,7 +39,6 @@ HEADERS = \
api/qquickwebengineprofile_p.h \
api/qquickwebengineprofile_p_p.h \
api/qquickwebenginesettings_p.h \
- api/qquickwebenginesettings_p_p.h \
api/qquickwebenginesingleton_p.h \
api/qquickwebengineview_p.h \
api/qquickwebengineview_p_p.h \