diff options
19 files changed, 222 insertions, 383 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index b46775934..0aaa09814 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -67,7 +67,6 @@ private: WebEngineSettings *m_settings; }; -#include "web_engine_settings.moc" static inline bool isTouchScreenAvailable() { static bool initialized = false; @@ -85,16 +84,23 @@ static inline bool isTouchScreenAvailable() { } -WebEngineSettings::WebEngineSettings(WebEngineSettingsDelegate *delegate) +WebEngineSettings::WebEngineSettings(WebEngineSettings *_parentSettings) : m_adapter(0) - , m_delegate(delegate) , m_batchTimer(new BatchTimer(this)) + , parentSettings(_parentSettings) { - Q_ASSERT(delegate); + if (parentSettings) + parentSettings->childSettings.insert(this); } 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. + Q_FOREACH (WebEngineSettings *settings, childSettings) { + settings->parentSettings = 0; + } } void WebEngineSettings::overrideWebPreferences(content::WebPreferences *prefs) @@ -111,94 +117,86 @@ void WebEngineSettings::overrideWebPreferences(content::WebPreferences *prefs) void WebEngineSettings::setAttribute(WebEngineSettings::Attribute attr, bool on) { m_attributes.insert(attr, on); - m_delegate->apply(); + scheduleApplyRecursively(); } bool WebEngineSettings::testAttribute(WebEngineSettings::Attribute attr) const { - WebEngineSettings *fallback = m_delegate->fallbackSettings(); - Q_ASSERT(fallback); - if (this == fallback) { + if (!parentSettings) { Q_ASSERT(m_attributes.contains(attr)); return m_attributes.value(attr); } - return m_attributes.value(attr, fallback->testAttribute(attr)); + return m_attributes.value(attr, parentSettings->testAttribute(attr)); } void WebEngineSettings::resetAttribute(WebEngineSettings::Attribute attr) { - if (this == m_delegate->fallbackSettings()) + if (!parentSettings) // FIXME: Set initial defaults. return; m_attributes.remove(attr); - m_delegate->apply(); + scheduleApplyRecursively(); } void WebEngineSettings::setFontFamily(WebEngineSettings::FontFamily which, const QString &family) { m_fontFamilies.insert(which, family); - m_delegate->apply(); + scheduleApplyRecursively(); } QString WebEngineSettings::fontFamily(WebEngineSettings::FontFamily which) { - WebEngineSettings *fallback = m_delegate->fallbackSettings(); - Q_ASSERT(fallback); - if (this == fallback) { + if (!parentSettings) { Q_ASSERT(m_fontFamilies.contains(which)); return m_fontFamilies.value(which); } - return m_fontFamilies.value(which, fallback->fontFamily(which)); + return m_fontFamilies.value(which, parentSettings->fontFamily(which)); } void WebEngineSettings::resetFontFamily(WebEngineSettings::FontFamily which) { - if (this == m_delegate->fallbackSettings()) + if (!parentSettings) // FIXME: Set initial defaults. return; m_fontFamilies.remove(which); - m_delegate->apply(); + scheduleApplyRecursively(); } void WebEngineSettings::setFontSize(WebEngineSettings::FontSize type, int size) { m_fontSizes.insert(type, size); - m_delegate->apply(); + scheduleApplyRecursively(); } int WebEngineSettings::fontSize(WebEngineSettings::FontSize type) const { - WebEngineSettings *fallback = m_delegate->fallbackSettings(); - Q_ASSERT(fallback); - if (this == fallback) { + if (!parentSettings) { Q_ASSERT(m_fontSizes.contains(type)); return m_fontSizes.value(type); } - return m_fontSizes.value(type, fallback->fontSize(type)); + return m_fontSizes.value(type, parentSettings->fontSize(type)); } void WebEngineSettings::resetFontSize(WebEngineSettings::FontSize type) { - if (this == m_delegate->fallbackSettings()) + if (!parentSettings) // FIXME: Set initial defaults. return; m_fontSizes.remove(type); - m_delegate->apply(); + scheduleApplyRecursively(); } void WebEngineSettings::setDefaultTextEncoding(const QString &encoding) { m_defaultEncoding = encoding; - m_delegate->apply(); + scheduleApplyRecursively(); } QString WebEngineSettings::defaultTextEncoding() const { - WebEngineSettings *fallback = m_delegate->fallbackSettings(); - Q_ASSERT(fallback); - if (this == fallback) + if (!parentSettings) return m_defaultEncoding; - return m_defaultEncoding.isEmpty()? fallback->defaultTextEncoding() : m_defaultEncoding; + return m_defaultEncoding.isEmpty()? parentSettings->defaultTextEncoding() : m_defaultEncoding; } -void WebEngineSettings::initDefaults() +void WebEngineSettings::initDefaults(bool offTheRecord) { // Initialize the default settings. m_attributes.insert(AutoLoadImages, true); @@ -206,7 +204,7 @@ void WebEngineSettings::initDefaults() m_attributes.insert(JavascriptCanOpenWindows, true); m_attributes.insert(JavascriptCanAccessClipboard, false); m_attributes.insert(LinksIncludedInFocusChain, true); - m_attributes.insert(LocalStorageEnabled, true); + m_attributes.insert(LocalStorageEnabled, !offTheRecord); m_attributes.insert(LocalContentCanAccessRemoteUrls, false); m_attributes.insert(XSSAuditingEnabled, false); m_attributes.insert(SpatialNavigationEnabled, false); @@ -294,3 +292,22 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p prefs->minimum_logical_font_size = fontSize(MinimumLogicalFontSize); prefs->default_encoding = defaultTextEncoding().toStdString(); } + +void WebEngineSettings::scheduleApplyRecursively() +{ + scheduleApply(); + Q_FOREACH (WebEngineSettings *settings, childSettings) { + settings->scheduleApply(); + } +} + +void WebEngineSettings::setParentSettings(WebEngineSettings *_parentSettings) +{ + if (parentSettings) + parentSettings->childSettings.remove(this); + parentSettings = _parentSettings; + if (parentSettings) + parentSettings->childSettings.insert(this); +} + +#include "web_engine_settings.moc" diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h index 42dff4b3c..8ee7d8871 100644 --- a/src/core/web_engine_settings.h +++ b/src/core/web_engine_settings.h @@ -43,6 +43,7 @@ #include <QScopedPointer> #include <QHash> #include <QUrl> +#include <QSet> class BatchTimer; class WebContentsAdapter; @@ -52,14 +53,6 @@ namespace content { struct WebPreferences; } -class QWEBENGINE_EXPORT WebEngineSettingsDelegate { -public: - virtual ~WebEngineSettingsDelegate() {} - virtual void apply() = 0; - // Needs to be a valid pointer, the last available fallback (ex: global settings) should return itself. - virtual WebEngineSettings *fallbackSettings() const = 0; -}; - class QWEBENGINE_EXPORT WebEngineSettings { public: // Attributes. Names match the ones from the public widgets API. @@ -98,8 +91,10 @@ public: DefaultFixedFontSize }; - WebEngineSettings(WebEngineSettingsDelegate*); - virtual ~WebEngineSettings(); + explicit WebEngineSettings(WebEngineSettings *parentSettings = 0); + ~WebEngineSettings(); + + void setParentSettings(WebEngineSettings *parentSettings); void overrideWebPreferences(content::WebPreferences *prefs); @@ -118,16 +113,17 @@ public: void setDefaultTextEncoding(const QString &encoding); QString defaultTextEncoding() const; - void initDefaults(); + void initDefaults(bool offTheRecord = false); void scheduleApply(); + void scheduleApplyRecursively(); + private: void doApply(); void applySettingsToWebPreferences(content::WebPreferences *); void setWebContentsAdapter(WebContentsAdapter *adapter) { m_adapter = adapter; } WebContentsAdapter* m_adapter; - WebEngineSettingsDelegate* m_delegate; QHash<Attribute, bool> m_attributes; QHash<FontFamily, QString> m_fontFamilies; QHash<FontSize, int> m_fontSizes; @@ -135,6 +131,9 @@ private: QScopedPointer<content::WebPreferences> webPreferences; QScopedPointer<BatchTimer> m_batchTimer; + WebEngineSettings *parentSettings; + QSet<WebEngineSettings *> childSettings; + friend class BatchTimer; friend class WebContentsAdapter; }; 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 \ diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index aceac91e3..a59165e8b 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -31,7 +31,6 @@ #include "qwebengineprofile.h" #include "qwebengineprofile_p.h" #include "qwebenginesettings.h" -#include "qwebenginesettings_p.h" #include "qwebengineview.h" #include "qwebengineview_p.h" #include "render_widget_host_view_qt_delegate_widget.h" @@ -173,7 +172,7 @@ QWebEnginePagePrivate::QWebEnginePagePrivate(QWebEngineProfile *_profile) : adapter(new WebContentsAdapter) , history(new QWebEngineHistory(new QWebEngineHistoryPrivate(this))) , profile(_profile ? _profile : QWebEngineProfile::defaultProfile()) - , settings(new QWebEngineSettings) + , settings(new QWebEngineSettings(profile->settings())) , view(0) , isLoading(false) { @@ -857,7 +856,7 @@ void QWebEnginePagePrivate::runFileChooser(WebContentsAdapterClient::FileChooser WebEngineSettings *QWebEnginePagePrivate::webEngineSettings() const { - return settings->d_func()->coreSettings.data(); + return settings->d_func(); } void QWebEnginePage::load(const QUrl& url) diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index 8c4dcb59f..64876bf1a 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -40,9 +40,11 @@ #include "qwebenginedownloaditem_p.h" #include "qwebenginepage.h" #include "qwebengineprofile_p.h" +#include "qwebenginesettings.h" #include "browser_context_adapter.h" #include "web_engine_visited_links_manager.h" +#include "web_engine_settings.h" QT_BEGIN_NAMESPACE @@ -97,16 +99,20 @@ QT_BEGIN_NAMESPACE */ QWebEngineProfilePrivate::QWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext) - : m_browserContext(browserContext) + : m_settings(new QWebEngineSettings()) + , m_browserContext(browserContext) { if (ownsContext) m_browserContextRef = browserContext; m_browserContext->setClient(this); + m_settings->d_ptr->initDefaults(browserContext->isOffTheRecord()); } QWebEngineProfilePrivate::~QWebEngineProfilePrivate() { + delete m_settings; + m_settings = 0; m_browserContext->setClient(0); Q_FOREACH (QWebEngineDownloadItem* download, m_ongoingDownloads) { @@ -438,4 +444,13 @@ QWebEngineProfile *QWebEngineProfile::defaultProfile() return &profile; } +/*! + Returns the default settings for all pages in this profile. +*/ +QWebEngineSettings *QWebEngineProfile::settings() const +{ + const Q_D(QWebEngineProfile); + return d->settings(); +} + QT_END_NAMESPACE diff --git a/src/webenginewidgets/api/qwebengineprofile.h b/src/webenginewidgets/api/qwebengineprofile.h index f06c4ef88..0908862e9 100644 --- a/src/webenginewidgets/api/qwebengineprofile.h +++ b/src/webenginewidgets/api/qwebengineprofile.h @@ -51,6 +51,7 @@ class QWebEngineDownloadItem; class QWebEnginePage; class QWebEnginePagePrivate; class QWebEngineProfilePrivate; +class QWebEngineSettings; class QWEBENGINEWIDGETS_EXPORT QWebEngineProfile : public QObject { Q_OBJECT @@ -95,6 +96,8 @@ public: void clearVisitedLinks(const QList<QUrl> &urls); bool visitedLinksContainsUrl(const QUrl &url) const; + QWebEngineSettings *settings() const; + static QWebEngineProfile *defaultProfile(); Q_SIGNALS: diff --git a/src/webenginewidgets/api/qwebengineprofile_p.h b/src/webenginewidgets/api/qwebengineprofile_p.h index d527f8f13..7c3d2a5e7 100644 --- a/src/webenginewidgets/api/qwebengineprofile_p.h +++ b/src/webenginewidgets/api/qwebengineprofile_p.h @@ -47,15 +47,15 @@ class BrowserContextAdapter; QT_BEGIN_NAMESPACE class QWebEngineSettings; -class QWebEngineProfilePrivate - : public BrowserContextAdapterClient -{ + +class QWebEngineProfilePrivate : public BrowserContextAdapterClient { public: Q_DECLARE_PUBLIC(QWebEngineProfile) QWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext); ~QWebEngineProfilePrivate(); BrowserContextAdapter *browserContext() const { return m_browserContext; } + QWebEngineSettings *settings() const { return m_settings; } void cancelDownload(quint32 downloadId); void downloadDestroyed(quint32 downloadId); @@ -65,6 +65,7 @@ public: private: QWebEngineProfile *q_ptr; + QWebEngineSettings *m_settings; BrowserContextAdapter *m_browserContext; QExplicitlySharedDataPointer<BrowserContextAdapter> m_browserContextRef; QMap<quint32, QPointer<QWebEngineDownloadItem> > m_ongoingDownloads; diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp index e24309153..e126a7e64 100644 --- a/src/webenginewidgets/api/qwebenginesettings.cpp +++ b/src/webenginewidgets/api/qwebenginesettings.cpp @@ -35,13 +35,14 @@ ****************************************************************************/ #include "qwebenginesettings.h" -#include "qwebenginesettings_p.h" -#include <QDebug> +#include "qwebengineprofile.h" +#include "web_engine_settings.h" QT_BEGIN_NAMESPACE -static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::WebAttribute attribute) { +static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::WebAttribute attribute) +{ switch (attribute) { case QWebEngineSettings::AutoLoadImages: return WebEngineSettings::AutoLoadImages; @@ -74,45 +75,27 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web } } -Q_GLOBAL_STATIC(QList<QWebEngineSettingsPrivate*>, allSettings) - -class QWebEngineGlobalSettings { - QWebEngineSettings globalSettings; -public: - QWebEngineGlobalSettings() { - // globalSettings shouldn't be in that list. - allSettings->removeAll(globalSettings.d_func()); - globalSettings.d_func()->coreSettings->initDefaults(); - } - - QWebEngineSettings *data() { return &globalSettings; } -}; - -Q_GLOBAL_STATIC(QWebEngineGlobalSettings, globalInstance) - -QWebEngineSettingsPrivate::QWebEngineSettingsPrivate() - : coreSettings(new WebEngineSettings(this)) +QWebEngineSettings::QWebEngineSettings(QWebEngineSettings *parentSettings) + : d_ptr(new WebEngineSettings(parentSettings ? parentSettings->d_func() : 0)) { + Q_D(QWebEngineSettings); + d->scheduleApplyRecursively(); } -void QWebEngineSettingsPrivate::apply() +QWebEngineSettings::~QWebEngineSettings() { - coreSettings->scheduleApply(); - QWebEngineSettingsPrivate *globals = QWebEngineSettings::globalSettings()->d_func(); - Q_ASSERT((this == globals) != (allSettings->contains(this))); - if (this == globals) { - Q_FOREACH (QWebEngineSettingsPrivate *settings, *allSettings) - settings->coreSettings->scheduleApply(); - } } -WebEngineSettings *QWebEngineSettingsPrivate::fallbackSettings() const { - return QWebEngineSettings::globalSettings()->d_func()->coreSettings.data(); +#if QT_DEPRECATED_SINCE(5, 5) +QWebEngineSettings *QWebEngineSettings::globalSettings() +{ + return defaultSettings(); } +#endif -QWebEngineSettings *QWebEngineSettings::globalSettings() +QWebEngineSettings *QWebEngineSettings::defaultSettings() { - return globalInstance()->data(); + return QWebEngineProfile::defaultProfile()->settings(); } ASSERT_ENUMS_MATCH(WebEngineSettings::StandardFont, QWebEngineSettings::StandardFont) @@ -125,19 +108,17 @@ ASSERT_ENUMS_MATCH(WebEngineSettings::FantasyFont, QWebEngineSettings::FantasyFo void QWebEngineSettings::setFontFamily(QWebEngineSettings::FontFamily which, const QString &family) { Q_D(QWebEngineSettings); - d->coreSettings->setFontFamily(static_cast<WebEngineSettings::FontFamily>(which), family); + d->setFontFamily(static_cast<WebEngineSettings::FontFamily>(which), family); } QString QWebEngineSettings::fontFamily(QWebEngineSettings::FontFamily which) const { - Q_D(const QWebEngineSettings); - return d->coreSettings->fontFamily(static_cast<WebEngineSettings::FontFamily>(which)); + return d_ptr->fontFamily(static_cast<WebEngineSettings::FontFamily>(which)); } void QWebEngineSettings::resetFontFamily(QWebEngineSettings::FontFamily which) { - Q_D(QWebEngineSettings); - d->coreSettings->resetFontFamily(static_cast<WebEngineSettings::FontFamily>(which)); + d_ptr->resetFontFamily(static_cast<WebEngineSettings::FontFamily>(which)); } ASSERT_ENUMS_MATCH(WebEngineSettings::DefaultFixedFontSize, QWebEngineSettings::DefaultFixedFontSize) @@ -147,75 +128,57 @@ ASSERT_ENUMS_MATCH(WebEngineSettings::MinimumLogicalFontSize, QWebEngineSettings void QWebEngineSettings::setFontSize(QWebEngineSettings::FontSize type, int size) { - Q_D(const QWebEngineSettings); - d->coreSettings->setFontSize(static_cast<WebEngineSettings::FontSize>(type), size); + Q_D(QWebEngineSettings); + d->setFontSize(static_cast<WebEngineSettings::FontSize>(type), size); } int QWebEngineSettings::fontSize(QWebEngineSettings::FontSize type) const { Q_D(const QWebEngineSettings); - return d->coreSettings->fontSize(static_cast<WebEngineSettings::FontSize>(type)); + return d->fontSize(static_cast<WebEngineSettings::FontSize>(type)); } void QWebEngineSettings::resetFontSize(QWebEngineSettings::FontSize type) { Q_D(QWebEngineSettings); - d->coreSettings->resetFontSize(static_cast<WebEngineSettings::FontSize>(type)); + d->resetFontSize(static_cast<WebEngineSettings::FontSize>(type)); } -QWebEngineSettings::QWebEngineSettings() - : d_ptr(new QWebEngineSettingsPrivate) -{ - Q_D(QWebEngineSettings); - allSettings->append(d); - d->coreSettings->scheduleApply(); -} - - -QWebEngineSettings::~QWebEngineSettings() -{ - Q_D(QWebEngineSettings); - allSettings->removeAll(d); -} - void QWebEngineSettings::setDefaultTextEncoding(const QString &encoding) { Q_D(QWebEngineSettings); - d->coreSettings->setDefaultTextEncoding(encoding); + d->setDefaultTextEncoding(encoding); } QString QWebEngineSettings::defaultTextEncoding() const { Q_D(const QWebEngineSettings); - return d->coreSettings->defaultTextEncoding(); + return d->defaultTextEncoding(); } void QWebEngineSettings::setAttribute(QWebEngineSettings::WebAttribute attr, bool on) { Q_D(QWebEngineSettings); WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr); - if (webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings) - return d->coreSettings->setAttribute(webEngineAttribute, on); - qDebug() << Q_FUNC_INFO << "Missing support for:" << attr; + Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings); + d->setAttribute(webEngineAttribute, on); } bool QWebEngineSettings::testAttribute(QWebEngineSettings::WebAttribute attr) const { Q_D(const QWebEngineSettings); WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr); - if (webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings) - return d->coreSettings->testAttribute(webEngineAttribute); - - - - qDebug() << Q_FUNC_INFO << "Missing support for:" << attr; - return false; + Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings); + return d->testAttribute(webEngineAttribute); } void QWebEngineSettings::resetAttribute(QWebEngineSettings::WebAttribute attr) { - setAttribute(attr, globalSettings()->testAttribute(attr)); + Q_D(QWebEngineSettings); + WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr); + Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings); + d->resetAttribute(webEngineAttribute); } QT_END_NAMESPACE diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h index 29825f5a4..48cc3107c 100644 --- a/src/webenginewidgets/api/qwebenginesettings.h +++ b/src/webenginewidgets/api/qwebenginesettings.h @@ -25,13 +25,13 @@ #include <QtCore/qscopedpointer.h> #include <QtCore/qstring.h> +class WebEngineSettings; + QT_BEGIN_NAMESPACE class QIcon; class QPixmap; class QUrl; -class QWebEngineSettingsPrivate; -class QWebEngineGlobalSettings; class QWEBENGINEWIDGETS_EXPORT QWebEngineSettings { public: @@ -66,7 +66,10 @@ public: DefaultFixedFontSize }; +#if QT_DEPRECATED_SINCE(5, 5) static QWebEngineSettings *globalSettings(); +#endif + static QWebEngineSettings *defaultSettings(); void setFontFamily(FontFamily which, const QString &family); QString fontFamily(FontFamily which) const; @@ -85,13 +88,15 @@ public: private: Q_DISABLE_COPY(QWebEngineSettings) - Q_DECLARE_PRIVATE(QWebEngineSettings); + typedef WebEngineSettings QWebEngineSettingsPrivate; + QWebEngineSettingsPrivate* d_func() { return d_ptr.data(); } + const QWebEngineSettingsPrivate* d_func() const { return d_ptr.data(); } QScopedPointer<QWebEngineSettingsPrivate> d_ptr; friend class QWebEnginePagePrivate; - friend class QWebEngineGlobalSettings; + friend class QWebEngineProfilePrivate; - QWebEngineSettings(); ~QWebEngineSettings(); + explicit QWebEngineSettings(QWebEngineSettings *parentSettings = 0); }; QT_END_NAMESPACE diff --git a/src/webenginewidgets/api/qwebenginesettings_p.h b/src/webenginewidgets/api/qwebenginesettings_p.h deleted file mode 100644 index 12464fa02..000000000 --- a/src/webenginewidgets/api/qwebenginesettings_p.h +++ /dev/null @@ -1,63 +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 QWEBENGINESETTINGS_P_H -#define QWEBENGINESETTINGS_P_H - -#include "web_engine_settings.h" -#include <QtCore/qcompilerdetection.h> -#include <QtCore/QScopedPointer> - -QT_BEGIN_NAMESPACE - -class QWebEngineSettingsPrivate : public WebEngineSettingsDelegate { - -public: - QWebEngineSettingsPrivate(); - - void apply() Q_DECL_OVERRIDE; - WebEngineSettings *fallbackSettings() const Q_DECL_OVERRIDE; - - QScopedPointer<WebEngineSettings> coreSettings; - - // This should only contain things specific to WebEngineWidgets which we don't want exposed to the core layer. - // For instance, the icon database would most likely be implemented at that level. - -}; - -QT_END_NAMESPACE - -#endif // QWEBENGINESETTINGS_P_H diff --git a/src/webenginewidgets/webenginewidgets.pro b/src/webenginewidgets/webenginewidgets.pro index 8d1930667..82908bfd0 100644 --- a/src/webenginewidgets/webenginewidgets.pro +++ b/src/webenginewidgets/webenginewidgets.pro @@ -32,7 +32,6 @@ HEADERS = \ api/qwebengineprofile.h \ api/qwebengineprofile_p.h \ api/qwebenginesettings.h \ - api/qwebenginesettings_p.h \ api/qwebengineview.h \ api/qwebengineview_p.h \ render_widget_host_view_qt_delegate_widget.h |