diff options
author | Moss Heim <moss.heim@qt.io> | 2024-03-22 11:24:02 +0100 |
---|---|---|
committer | Moss Heim <moss.heim@qt.io> | 2024-05-03 10:38:40 +0200 |
commit | 002641063fadb1cfd3cd9ae12d1d83e4fb0f1e86 (patch) | |
tree | 2b882a7fe5a595e4ebcba230ee40dbf39e4b68fc /src/core/web_contents_adapter.h | |
parent | 45dd5da005ef6df6912179554808b7636a6a801b (diff) |
Add QWebEngineFrame and basic API
This object represents a frame on a web page, e.g. a <frame> or <iframe>
element.
Frames can be found through QWebEnginePage::mainFrame()
and findFrameByName(). Also provides some basic getters
on QWebEngineFrame and tests.
Change-Id: If3905c6ecd14cf6c3508c65edc98f49415739489
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/web_contents_adapter.h')
-rw-r--r-- | src/core/web_contents_adapter.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h index 62c3f087c..a5cad8664 100644 --- a/src/core/web_contents_adapter.h +++ b/src/core/web_contents_adapter.h @@ -23,10 +23,12 @@ #include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h> #include <QtWebEngineCore/qwebenginecontextmenurequest.h> #include <QtWebEngineCore/qwebenginehttprequest.h> +#include <QtWebEngineCore/qwebengineframe.h> #include "web_contents_adapter_client.h" #include <memory> +#include <optional> namespace blink { namespace web_pref { @@ -62,6 +64,9 @@ class WebChannelIPCTransportHost; class Q_WEBENGINECORE_EXPORT WebContentsAdapter : public QEnableSharedFromThis<WebContentsAdapter> { public: + // Sentinel to indicate a frame doesn't exist, for example with `findFrameByName` + static constexpr quint64 kInvalidFrameId = -3; + static QSharedPointer<WebContentsAdapter> createFromSerializedNavigationHistory(QDataStream &input, WebContentsAdapterClient *adapterClient); WebContentsAdapter(); WebContentsAdapter(std::unique_ptr<content::WebContents> webContents); @@ -204,6 +209,15 @@ public: void resetTouchSelectionController(); void changeTextDirection(bool leftToRight); + quint64 mainFrameId() const; + QString frameName(quint64 id) const; + QString frameHtmlName(quint64 id) const; + QList<quint64> frameChildren(quint64 id) const; + QUrl frameUrl(quint64 id) const; + QSizeF frameSize(quint64 id) const; + std::optional<quint64> findFrameIdByName(const QString &name) const; + bool hasFrame(quint64 id) const; + // meant to be used within WebEngineCore only void initialize(content::SiteInstance *site); content::WebContents *webContents() const; |