21#include <QWebEnginePage>
22#include <QWebEngineScript>
23#include <QWebEngineFullScreenRequest>
26#include <QElapsedTimer>
31class QWebEngineDownloadItem;
32class QWebEngineRegisterProtocolHandlerRequest;
44 UnsafeJsWorld = QWebEngineScript::MainWorld,
45 SafeJsWorld = QWebEngineScript::ApplicationWorld
48 explicit WebPage(QObject* parent =
nullptr);
53 bool execPrintPage(QPrinter *printer,
int timeout = 1000);
54 QVariant execJavaScript(
const QString &scriptSource, quint32 worldId = UnsafeJsWorld,
int timeout = 500);
56 QPointF mapToViewport(
const QPointF &pos)
const;
59 void scroll(
int x,
int y);
60 void setScrollPosition(
const QPointF &pos);
62 bool javaScriptPrompt(
const QUrl &securityOrigin,
const QString &msg,
const QString &defaultValue, QString* result)
override;
63 bool javaScriptConfirm(
const QUrl &securityOrigin,
const QString &msg)
override;
64 void javaScriptAlert(
const QUrl &securityOrigin,
const QString &msg)
override;
65 void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level,
const QString &message,
int lineNumber,
const QString &sourceID)
override;
67 QStringList autoFillUsernames()
const;
69 QUrl registerProtocolHandlerRequestUrl()
const;
70 QString registerProtocolHandlerRequestScheme()
const;
74 bool isLoading()
const;
76 static QStringList internalSchemes();
77 static QStringList supportedSchemes();
78 static void addSupportedScheme(
const QString &scheme);
79 static void removeSupportedScheme(
const QString &scheme);
87 void progress(
int prog);
91 void urlChanged(
const QUrl &url);
92 void watchedFileChanged(
const QString &file);
93 void windowCloseRequested();
94 void fullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest);
95 void featurePermissionRequested(
const QUrl &origin,
const QWebEnginePage::Feature &feature);
96 void renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus,
int exitCode);
97 void onCertificateError(QWebEngineCertificateError error);
100 bool acceptNavigationRequest(
const QUrl &url, QWebEnginePage::NavigationType type,
bool isMainFrame)
override;
102 QStringList chooseFiles(FileSelectionMode mode,
const QStringList &oldFiles,
const QStringList &acceptedMimeTypes)
override;
103 QWebEnginePage* createWindow(QWebEnginePage::WebWindowType type)
override;
105 void handleUnknownProtocol(
const QUrl &url);
106 void desktopServicesOpen(
const QUrl &url);
108 static QString s_lastUploadLocation;
109 static QUrl s_lastUnsupportedUrl;
110 static QElapsedTimer s_lastUnsupportedUrlTime;
113 QEventLoop* m_runningLoop;
115 QStringList m_autoFillUsernames;
116 QWebEngineRegisterProtocolHandlerRequest *m_registerProtocolHandlerRequest =
nullptr;
122 QMetaObject::Connection m_contentsResizedConnection;
void privacyChanged(bool status)
void navigationRequestAccepted(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame)