summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_adapter.h
diff options
context:
space:
mode:
authorMoss Heim <moss.heim@qt.io>2024-03-22 11:24:02 +0100
committerMoss Heim <moss.heim@qt.io>2024-05-03 10:38:40 +0200
commit002641063fadb1cfd3cd9ae12d1d83e4fb0f1e86 (patch)
tree2b882a7fe5a595e4ebcba230ee40dbf39e4b68fc /src/core/web_contents_adapter.h
parent45dd5da005ef6df6912179554808b7636a6a801b (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.h14
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;