diff options
author | Benjamin Terrier <b.terrier@gmail.com> | 2022-07-30 20:24:34 +0000 |
---|---|---|
committer | Benjamin Terrier <b.terrier@gmail.com> | 2023-05-02 12:42:23 +0200 |
commit | 000f31fb643bb8fb0b89b1ab26a895223c318996 (patch) | |
tree | dcfa174620071fa199486951080c85fd800d1363 /src | |
parent | 17c64fd5d2778df4a52849e8942104d4d9555a1e (diff) | |
download | qtwebengine-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.cpp | 12 | ||||
-rw-r--r-- | src/core/api/qtwebenginecoreglobal.h | 3 | ||||
-rw-r--r-- | src/core/doc/src/qtwebengine-global.qdoc | 11 |
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. +*/ |