diff options
| author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2023-06-23 11:59:21 +0200 |
|---|---|---|
| committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2023-12-14 11:09:10 +0100 |
| commit | 075d57c6d1ef9377c1d5c78af86ef5bc889b320b (patch) | |
| tree | 64a1828347dc6d9dcbfca8db52cfdaea14205b2c /src/core/api/qwebengineclienthints.cpp | |
| parent | 842f122ce529c9c2935103bb235f0bf540a6a78e (diff) | |
Add API to override User Agent Client Hints
Implement QWebEngineClientHints class to provide API for each
user agent client hints.
Task-number: QTBUG-112826
Task-number: QTBUG-112825
Change-Id: I3091d60fb363bbafc16c8e48195c1fd82e8a81bb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/core/api/qwebengineclienthints.cpp')
| -rw-r--r-- | src/core/api/qwebengineclienthints.cpp | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/src/core/api/qwebengineclienthints.cpp b/src/core/api/qwebengineclienthints.cpp new file mode 100644 index 000000000..2388f9e3c --- /dev/null +++ b/src/core/api/qwebengineclienthints.cpp @@ -0,0 +1,133 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qwebengineclienthints.h" + +#include "profile_adapter.h" + +#include <QJsonObject> + +QT_BEGIN_NAMESPACE + +QWebEngineClientHints::QWebEngineClientHints(QtWebEngineCore::ProfileAdapter *profileAdapter) + : m_profileAdapter(profileAdapter) +{ +} + +QWebEngineClientHints::~QWebEngineClientHints() +{ +} + +QString QWebEngineClientHints::arch() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAArchitecture).toString(); +} + +QString QWebEngineClientHints::platform() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAPlatform).toString(); +} + +QString QWebEngineClientHints::model() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAModel).toString(); +} + +bool QWebEngineClientHints::isMobile() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAMobile).toBool(); +} + +QString QWebEngineClientHints::fullVersion() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAFullVersion).toString(); +} + +QString QWebEngineClientHints::platformVersion() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAPlatformVersion).toString(); +} + +QString QWebEngineClientHints::bitness() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UABitness).toString(); +} + +QHash<QString,QString> QWebEngineClientHints::fullVersionList() const +{ + QHash<QString, QString> ret; + QJsonObject fullVersionList = m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAFullVersionList).toJsonObject(); + for (const QString &key : fullVersionList.keys()) + ret.insert(key, fullVersionList.value(key).toString()); + return ret; +} + +bool QWebEngineClientHints::isWow64() const +{ + return m_profileAdapter->clientHint(QtWebEngineCore::ProfileAdapter::UAWOW64).toBool(); +} + +void QWebEngineClientHints::setArch(const QString &arch) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAArchitecture, QVariant(arch)); +} + +void QWebEngineClientHints::setPlatform(const QString &platform) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAPlatform, QVariant(platform)); +} + +void QWebEngineClientHints::setModel(const QString &model) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAModel, QVariant(model)); +} + +void QWebEngineClientHints::setIsMobile(const bool mobile) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAMobile, QVariant(mobile)); +} + +void QWebEngineClientHints::setFullVersion(const QString &fullVerson) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAFullVersion, QVariant(fullVerson)); +} + +void QWebEngineClientHints::setPlatformVersion(const QString &platformVersion) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAPlatformVersion, QVariant(platformVersion)); +} + +void QWebEngineClientHints::setBitness(const QString &bitness) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UABitness, QVariant(bitness)); +} + +void QWebEngineClientHints::setFullVersionList(const QHash<QString,QString> &fullVersionList) +{ + QJsonObject jsonObject; + for (auto i = fullVersionList.cbegin(), end = fullVersionList.cend(); i != end; ++i) + jsonObject.insert(i.key(), QJsonValue(i.value())); + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAFullVersionList, QVariant(jsonObject)); +} + +void QWebEngineClientHints::setIsWow64(const bool wow64) +{ + m_profileAdapter->setClientHint(QtWebEngineCore::ProfileAdapter::UAWOW64, QVariant(wow64)); +} + +bool QWebEngineClientHints::isAllClientHintsEnabled() +{ + return m_profileAdapter->clientHintsEnabled(); +} + +void QWebEngineClientHints::setAllClientHintsEnabled(bool enabled) +{ + m_profileAdapter->setClientHintsEnabled(enabled); +} + +void QWebEngineClientHints::resetAll() +{ + m_profileAdapter->resetClientHints(); +} + +QT_END_NAMESPACE |
