summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/favicon_manager.cpp16
-rw-r--r--src/core/web_engine_settings.cpp2
-rw-r--r--src/core/web_engine_settings.h4
-rw-r--r--src/webengine/api/qquickwebenginesettings.cpp42
-rw-r--r--src/webengine/api/qquickwebenginesettings_p.h12
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.cpp4
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.h4
-rw-r--r--src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc5
8 files changed, 83 insertions, 6 deletions
diff --git a/src/core/favicon_manager.cpp b/src/core/favicon_manager.cpp
index 8469f054e..16a087efc 100644
--- a/src/core/favicon_manager.cpp
+++ b/src/core/favicon_manager.cpp
@@ -42,6 +42,7 @@
#include "type_conversion.h"
#include "web_contents_adapter_client.h"
+#include "web_engine_settings.h"
#include "base/bind.h"
#include "content/public/browser/favicon_status.h"
@@ -176,12 +177,15 @@ void FaviconManagerPrivate::propagateIcon() const
{
Q_Q(const FaviconManager);
+ WebEngineSettings *settings = m_viewClient->webEngineSettings();
+ bool touchIconsEnabled = settings->testAttribute(WebEngineSettings::TouchIconsEnabled);
+
QUrl iconUrl;
const QList<FaviconInfo> &faviconInfoList = q->getFaviconInfoList(true /* candidates only */);
unsigned bestArea = 0;
for (auto it = faviconInfoList.cbegin(), end = faviconInfoList.cend(); it != end; ++it) {
- if (it->type != FaviconInfo::Favicon)
+ if (!touchIconsEnabled && it->type != FaviconInfo::Favicon)
continue;
if (it->isValid() && bestArea < area(it->size)) {
@@ -244,9 +248,17 @@ void FaviconManager::update(const QList<FaviconInfo> &candidates)
Q_D(FaviconManager);
updateCandidates(candidates);
+ WebEngineSettings *settings = d->m_viewClient->webEngineSettings();
+ if (!settings->testAttribute(WebEngineSettings::AutoLoadIconsForPage)) {
+ d->m_viewClient->iconChanged(QUrl());
+ return;
+ }
+
+ bool touchIconsEnabled = settings->testAttribute(WebEngineSettings::TouchIconsEnabled);
+
const QList<FaviconInfo> &faviconInfoList = getFaviconInfoList(true /* candidates only */);
for (auto it = faviconInfoList.cbegin(), end = faviconInfoList.cend(); it != end; ++it) {
- if (it->type != FaviconInfo::Favicon)
+ if (!touchIconsEnabled && it->type != FaviconInfo::Favicon)
continue;
if (it->isValid())
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index d65066693..54c7f7c4f 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -236,6 +236,8 @@ void WebEngineSettings::initDefaults(bool offTheRecord)
s_defaultAttributes.insert(ScrollAnimatorEnabled, smoothScrolling);
s_defaultAttributes.insert(WebGLEnabled, webGL);
s_defaultAttributes.insert(Accelerated2dCanvasEnabled, accelerated2dCanvas);
+ s_defaultAttributes.insert(AutoLoadIconsForPage, true);
+ s_defaultAttributes.insert(TouchIconsEnabled, false);
}
if (offTheRecord)
m_attributes.insert(LocalStorageEnabled, false);
diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h
index c2be4f026..3bc108115 100644
--- a/src/core/web_engine_settings.h
+++ b/src/core/web_engine_settings.h
@@ -79,7 +79,9 @@ public:
ScreenCaptureEnabled,
WebGLEnabled,
WebAudioEnabled,
- Accelerated2dCanvasEnabled
+ Accelerated2dCanvasEnabled,
+ AutoLoadIconsForPage,
+ TouchIconsEnabled
};
// Must match the values from the public API in qwebenginesettings.h.
diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp
index 921a31816..56d4119cd 100644
--- a/src/webengine/api/qquickwebenginesettings.cpp
+++ b/src/webengine/api/qquickwebenginesettings.cpp
@@ -289,6 +289,32 @@ bool QQuickWebEngineSettings::accelerated2dCanvasEnabled() const
}
/*!
+ \qmlproperty bool WebEngineSettings::autoLoadIconsForPage
+ \since QtWebEngine 1.3
+
+ Automatically downloads icons for web pages.
+
+ Enabled by default.
+*/
+bool QQuickWebEngineSettings::autoLoadIconsForPage() const
+{
+ return d_ptr->testAttribute(WebEngineSettings::AutoLoadIconsForPage);
+}
+
+/*!
+ \qmlproperty bool WebEngineSettings::touchIconsEnabled
+ \since QtWebEngine 1.3
+
+ Enables support for touch icons and precomposed touch icons.
+
+ Disabled by default.
+*/
+bool QQuickWebEngineSettings::touchIconsEnabled() const
+{
+ return d_ptr->testAttribute(WebEngineSettings::TouchIconsEnabled);
+}
+
+/*!
\qmlproperty QString WebEngineSettings::defaultTextEncoding
Sets the default encoding. The value must be a string describing an encoding such as "utf-8" or
@@ -440,6 +466,22 @@ void QQuickWebEngineSettings::setAccelerated2dCanvasEnabled(bool on)
Q_EMIT accelerated2dCanvasEnabledChanged();
}
+void QQuickWebEngineSettings::setAutoLoadIconsForPage(bool on)
+{
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::AutoLoadIconsForPage);
+ d_ptr->setAttribute(WebEngineSettings::AutoLoadIconsForPage, on);
+ if (wasOn != on)
+ Q_EMIT autoLoadIconsForPageChanged();
+}
+
+void QQuickWebEngineSettings::setTouchIconsEnabled(bool on)
+{
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::TouchIconsEnabled);
+ d_ptr->setAttribute(WebEngineSettings::TouchIconsEnabled, on);
+ if (wasOn != on)
+ Q_EMIT touchIconsEnabledChanged();
+}
+
void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding)
{
const QString oldDefaultTextEncoding = d_ptr->defaultTextEncoding();
diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h
index a870f7b0b..6a5fd290e 100644
--- a/src/webengine/api/qquickwebenginesettings_p.h
+++ b/src/webengine/api/qquickwebenginesettings_p.h
@@ -81,6 +81,8 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject {
Q_PROPERTY(bool webGLEnabled READ webGLEnabled WRITE setWebGLEnabled NOTIFY webGLEnabledChanged REVISION 2)
Q_PROPERTY(bool webAudioEnabled READ webAudioEnabled WRITE setWebAudioEnabled NOTIFY webAudioEnabledChanged REVISION 2)
Q_PROPERTY(bool accelerated2dCanvasEnabled READ accelerated2dCanvasEnabled WRITE setAccelerated2dCanvasEnabled NOTIFY accelerated2dCanvasEnabledChanged REVISION 2)
+ Q_PROPERTY(bool autoLoadIconsForPage READ autoLoadIconsForPage WRITE setAutoLoadIconsForPage NOTIFY autoLoadIconsForPageChanged REVISION 2)
+ Q_PROPERTY(bool touchIconsEnabled READ touchIconsEnabled WRITE setTouchIconsEnabled NOTIFY touchIconsEnabledChanged REVISION 2)
public:
~QQuickWebEngineSettings();
@@ -98,11 +100,13 @@ public:
bool errorPageEnabled() const;
bool pluginsEnabled() const;
bool fullScreenSupportEnabled() const;
+ QString defaultTextEncoding() const;
bool screenCaptureEnabled() const;
bool webGLEnabled() const;
bool webAudioEnabled() const;
bool accelerated2dCanvasEnabled() const;
- QString defaultTextEncoding() const;
+ bool autoLoadIconsForPage() const;
+ bool touchIconsEnabled() const;
void setAutoLoadImages(bool on);
void setJavascriptEnabled(bool on);
@@ -117,11 +121,13 @@ public:
void setErrorPageEnabled(bool on);
void setPluginsEnabled(bool on);
void setFullScreenSupportEnabled(bool on);
+ void setDefaultTextEncoding(QString encoding);
void setScreenCaptureEnabled(bool on);
void setWebGLEnabled(bool on);
void setWebAudioEnabled(bool on);
void setAccelerated2dCanvasEnabled(bool on);
- void setDefaultTextEncoding(QString encoding);
+ void setAutoLoadIconsForPage(bool on);
+ void setTouchIconsEnabled(bool on);
signals:
void autoLoadImagesChanged();
@@ -142,6 +148,8 @@ signals:
Q_REVISION(2) void webGLEnabledChanged();
Q_REVISION(2) void webAudioEnabledChanged();
Q_REVISION(2) void accelerated2dCanvasEnabledChanged();
+ Q_REVISION(2) void autoLoadIconsForPageChanged();
+ Q_REVISION(2) void touchIconsEnabledChanged();
private:
explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = 0);
diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp
index 3a2f585f2..d1caa4ca5 100644
--- a/src/webenginewidgets/api/qwebenginesettings.cpp
+++ b/src/webenginewidgets/api/qwebenginesettings.cpp
@@ -87,6 +87,10 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web
return WebEngineSettings::WebAudioEnabled;
case QWebEngineSettings::Accelerated2dCanvasEnabled:
return WebEngineSettings::Accelerated2dCanvasEnabled;
+ case QWebEngineSettings::AutoLoadIconsForPage:
+ return WebEngineSettings::AutoLoadIconsForPage;
+ case QWebEngineSettings::TouchIconsEnabled:
+ return WebEngineSettings::TouchIconsEnabled;
default:
return WebEngineSettings::UnsupportedInCoreSettings;
}
diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h
index f236abe94..ea18cf020 100644
--- a/src/webenginewidgets/api/qwebenginesettings.h
+++ b/src/webenginewidgets/api/qwebenginesettings.h
@@ -65,7 +65,9 @@ public:
ScreenCaptureEnabled,
WebGLEnabled,
WebAudioEnabled,
- Accelerated2dCanvasEnabled
+ Accelerated2dCanvasEnabled,
+ AutoLoadIconsForPage,
+ TouchIconsEnabled
};
enum FontSize {
diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
index 461af086a..a19f36951 100644
--- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
@@ -141,6 +141,11 @@
\value Accelerated2dCanvasEnabled
Specifies whether the HTML5 2D canvas should be a OpenGL framebuffer.
This makes many painting operations faster, but slows down pixel access. Enabled by default if available.
+ \value AutoLoadIconsForPage
+ Automatically downloads icons for web pages. Enabled by default.
+ \value TouchIconsEnabled
+ Enables support for touch icons and precomposed touch icons.
+ Disabled by default.
*/
/*!