summaryrefslogtreecommitdiffstats
path: root/src/core/api/qwebengineprofile.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/api/qwebengineprofile.h')
-rw-r--r--src/core/api/qwebengineprofile.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/core/api/qwebengineprofile.h b/src/core/api/qwebengineprofile.h
new file mode 100644
index 000000000..a0027cb81
--- /dev/null
+++ b/src/core/api/qwebengineprofile.h
@@ -0,0 +1,133 @@
+// Copyright (C) 2021 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
+
+#ifndef QWEBENGINEPROFILE_H
+#define QWEBENGINEPROFILE_H
+
+#include <QtWebEngineCore/qtwebenginecoreglobal.h>
+
+#include <QtCore/qobject.h>
+#include <QtCore/qscopedpointer.h>
+#include <QtCore/qstring.h>
+
+#include <functional>
+#include <memory>
+
+QT_BEGIN_NAMESPACE
+
+class QUrl;
+class QWebEngineClientCertificateStore;
+class QWebEngineClientHints;
+class QWebEngineCookieStore;
+class QWebEngineDownloadRequest;
+class QWebEngineNotification;
+class QWebEngineProfilePrivate;
+class QWebEngineSettings;
+class QWebEngineScriptCollection;
+class QWebEngineUrlRequestInterceptor;
+class QWebEngineUrlSchemeHandler;
+
+class Q_WEBENGINECORE_EXPORT QWebEngineProfile : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QWebEngineProfile(QObject *parent = nullptr);
+ explicit QWebEngineProfile(const QString &name, QObject *parent = nullptr);
+ virtual ~QWebEngineProfile();
+
+ enum HttpCacheType {
+ MemoryHttpCache,
+ DiskHttpCache,
+ NoCache
+ };
+ Q_ENUM(HttpCacheType)
+
+ enum PersistentCookiesPolicy {
+ NoPersistentCookies,
+ AllowPersistentCookies,
+ ForcePersistentCookies
+ };
+ Q_ENUM(PersistentCookiesPolicy)
+
+ QString storageName() const;
+ bool isOffTheRecord() const;
+
+ QString persistentStoragePath() const;
+ void setPersistentStoragePath(const QString &path);
+
+ QString cachePath() const;
+ void setCachePath(const QString &path);
+
+ QString httpUserAgent() const;
+ void setHttpUserAgent(const QString &userAgent);
+
+ HttpCacheType httpCacheType() const;
+ void setHttpCacheType(QWebEngineProfile::HttpCacheType);
+
+ void setHttpAcceptLanguage(const QString &httpAcceptLanguage);
+ QString httpAcceptLanguage() const;
+
+ PersistentCookiesPolicy persistentCookiesPolicy() const;
+ void setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy);
+
+ int httpCacheMaximumSize() const;
+ void setHttpCacheMaximumSize(int maxSize);
+
+ QWebEngineCookieStore *cookieStore();
+ void setUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor);
+
+ void clearAllVisitedLinks();
+ void clearVisitedLinks(const QList<QUrl> &urls);
+ bool visitedLinksContainsUrl(const QUrl &url) const;
+
+ QWebEngineSettings *settings() const;
+ QWebEngineScriptCollection *scripts() const;
+ QWebEngineClientHints *clientHints() const;
+
+ const QWebEngineUrlSchemeHandler *urlSchemeHandler(const QByteArray &) const;
+ void installUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler *);
+ void removeUrlScheme(const QByteArray &scheme);
+ void removeUrlSchemeHandler(QWebEngineUrlSchemeHandler *);
+ void removeAllUrlSchemeHandlers();
+
+ void clearHttpCache();
+
+ void setSpellCheckLanguages(const QStringList &languages);
+ QStringList spellCheckLanguages() const;
+ void setSpellCheckEnabled(bool enabled);
+ bool isSpellCheckEnabled() const;
+
+ QString downloadPath() const;
+ void setDownloadPath(const QString &path);
+
+ bool isPushServiceEnabled() const;
+ void setPushServiceEnabled(bool enabled);
+
+ void setNotificationPresenter(std::function<void(std::unique_ptr<QWebEngineNotification>)> notificationPresenter);
+
+ QWebEngineClientCertificateStore *clientCertificateStore();
+
+ void requestIconForPageURL(const QUrl &url, int desiredSizeInPixel, std::function<void(const QIcon &, const QUrl &, const QUrl &)> iconAvailableCallback) const;
+ void requestIconForIconURL(const QUrl &url, int desiredSizeInPixel, std::function<void(const QIcon &, const QUrl &)> iconAvailableCallback) const;
+
+ static QWebEngineProfile *defaultProfile();
+
+Q_SIGNALS:
+ void downloadRequested(QWebEngineDownloadRequest *download);
+ void clearHttpCacheCompleted();
+
+private:
+ Q_DISABLE_COPY(QWebEngineProfile)
+ Q_DECLARE_PRIVATE(QWebEngineProfile)
+ QWebEngineProfile(QWebEngineProfilePrivate *, QObject *parent = nullptr);
+
+ friend class QWebEngineView;
+ std::function<void(std::unique_ptr<QWebEngineNotification>)> notificationPresenter();
+
+ friend class QWebEnginePagePrivate;
+ QScopedPointer<QWebEngineProfilePrivate> d_ptr;
+};
+
+QT_END_NAMESPACE
+
+#endif // QWEBENGINEPROFILE_H