diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-11-28 12:00:08 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-02-05 13:56:10 +0000 |
commit | 4ef5831a398280cc26cbf359dcbb9878e77ab7fb (patch) | |
tree | adb8b7ac7a42b8130b178d1001a5c008c430d325 /src/webengine | |
parent | faec509a21b4700dbf271c4dcbb3a993f1c4042f (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.cpp | 13 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile_p.h | 6 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile_p_p.h | 9 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings.cpp | 175 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings_p.h | 16 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings_p_p.h | 56 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesingleton.cpp | 2 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 9 | ||||
-rw-r--r-- | src/webengine/webengine.pro | 1 |
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 \ |