summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenjamin Terrier <b.terrier@gmail.com>2022-07-30 20:24:34 +0000
committerBenjamin Terrier <b.terrier@gmail.com>2023-05-02 12:42:23 +0200
commit000f31fb643bb8fb0b89b1ab26a895223c318996 (patch)
treedcfa174620071fa199486951080c85fd800d1363 /src
parent17c64fd5d2778df4a52849e8942104d4d9555a1e (diff)
downloadqtwebengine-000f31fb643bb8fb0b89b1ab26a895223c318996.tar.gz
Add qWebEngineGetDomainAndRegistry()
[ChangeLog][WebEngineCore] Add qWebEngineGetDomainAndRegistry() Fixes: QTBUG-105294 Change-Id: Ica40453f807b00c8548f974a495ddf84bbe8e194 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src')
-rw-r--r--src/core/api/qtwebenginecoreglobal.cpp12
-rw-r--r--src/core/api/qtwebenginecoreglobal.h3
-rw-r--r--src/core/doc/src/qtwebengine-global.qdoc11
3 files changed, 26 insertions, 0 deletions
diff --git a/src/core/api/qtwebenginecoreglobal.cpp b/src/core/api/qtwebenginecoreglobal.cpp
index d8d3d3b26..9082052f2 100644
--- a/src/core/api/qtwebenginecoreglobal.cpp
+++ b/src/core/api/qtwebenginecoreglobal.cpp
@@ -17,6 +17,8 @@
#include <QQuickWindow>
#include "web_engine_context.h"
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+
#if QT_CONFIG(opengl)
QT_BEGIN_NAMESPACE
Q_GUI_EXPORT void qt_gl_set_global_share_context(QOpenGLContext *context);
@@ -218,4 +220,14 @@ static void initialize()
#endif // QT_CONFIG(opengl)
}
+QT_BEGIN_NAMESPACE
+
+QString qWebEngineGetDomainAndRegistry(const QUrl &url) {
+ const QString host = url.host();
+ const std::string domain = net::registry_controlled_domains::GetDomainAndRegistry(host.toStdString(), net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+ return QString::fromStdString(domain);
+}
+
+QT_END_NAMESPACE
+
Q_CONSTRUCTOR_FUNCTION(initialize)
diff --git a/src/core/api/qtwebenginecoreglobal.h b/src/core/api/qtwebenginecoreglobal.h
index 3583e0848..166a82b78 100644
--- a/src/core/api/qtwebenginecoreglobal.h
+++ b/src/core/api/qtwebenginecoreglobal.h
@@ -5,6 +5,7 @@
#define QTWEBENGINECOREGLOBAL_H
#include <QtCore/qglobal.h>
+#include <QtCore/qurl.h>
#include <QtWebEngineCore/qtwebenginecore-config.h>
QT_BEGIN_NAMESPACE
@@ -22,6 +23,8 @@ Q_WEBENGINECORE_EXPORT Q_DECL_CONST_FUNCTION const char *qWebEngineProcessName()
Q_WEBENGINECORE_EXPORT Q_DECL_CONST_FUNCTION const char *qWebEngineChromiumVersion() noexcept;
Q_WEBENGINECORE_EXPORT Q_DECL_CONST_FUNCTION const char *qWebEngineChromiumSecurityPatchVersion() noexcept;
+Q_WEBENGINECORE_EXPORT QString qWebEngineGetDomainAndRegistry(const QUrl &url);
+
QT_END_NAMESPACE
#endif // QTWEBENGINECOREGLOBAL_H
diff --git a/src/core/doc/src/qtwebengine-global.qdoc b/src/core/doc/src/qtwebengine-global.qdoc
index 57df8b3ac..d4bbef01a 100644
--- a/src/core/doc/src/qtwebengine-global.qdoc
+++ b/src/core/doc/src/qtwebengine-global.qdoc
@@ -40,3 +40,14 @@
Returns the version number of last Chromium version security patches have been
merged from.
*/
+
+/*!
+ \fn QString qWebEngineGetDomainAndRegistry(const QUrl &url)
+ \relates <qtwebenginecoreglobal.h>
+ \since 6.6
+
+ Returns the domain of the host i.e. the effective top-level domain (eTLD)
+ plus the first domain below.
+
+ If the host is not a domain an empty string is returned.
+*/