diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/webengine/quicknanobrowser/BrowserWindow.qml | 5 | ||||
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpage.cpp | 17 | ||||
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpage.h | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/examples/webengine/quicknanobrowser/BrowserWindow.qml b/examples/webengine/quicknanobrowser/BrowserWindow.qml index be1e42c73..15a8d96fe 100644 --- a/examples/webengine/quicknanobrowser/BrowserWindow.qml +++ b/examples/webengine/quicknanobrowser/BrowserWindow.qml @@ -445,6 +445,11 @@ ApplicationWindow { request.reject(); } + onRegisterProtocolHandlerPermissionRequested: { + print("accepting registerProtocolHandler permission request for " + request.protocol + " from " + request.origin); + request.accept(); + } + onRenderProcessTerminated: { var status = ""; switch (terminationStatus) { diff --git a/examples/webenginewidgets/simplebrowser/webpage.cpp b/examples/webenginewidgets/simplebrowser/webpage.cpp index 903956419..ef55fd33d 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.cpp +++ b/examples/webenginewidgets/simplebrowser/webpage.cpp @@ -63,6 +63,7 @@ WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) { connect(this, &QWebEnginePage::authenticationRequired, this, &WebPage::handleAuthenticationRequired); connect(this, &QWebEnginePage::proxyAuthenticationRequired, this, &WebPage::handleProxyAuthenticationRequired); + connect(this, &QWebEnginePage::registerProtocolHandlerPermissionRequested, this, &WebPage::handleRegisterProtocolHandlerPermissionRequested); } bool WebPage::certificateError(const QWebEngineCertificateError &error) @@ -141,3 +142,19 @@ void WebPage::handleProxyAuthenticationRequired(const QUrl &, QAuthenticator *au *auth = QAuthenticator(); } } + +//! [registerProtocolHandlerPermissionRequested] +void WebPage::handleRegisterProtocolHandlerPermissionRequested(QWebEngineRegisterProtocolHandlerPermissionRequest request) +{ + auto answer = QMessageBox::question( + view()->window(), + tr("Permission Request"), + tr("Allow %1 to open all %2 links?") + .arg(request.origin().host()) + .arg(request.protocol())); + if (answer == QMessageBox::Yes) + request.accept(); + else + request.reject(); +} +//! [registerProtocolHandlerPermissionRequested] diff --git a/examples/webenginewidgets/simplebrowser/webpage.h b/examples/webenginewidgets/simplebrowser/webpage.h index 797943249..d44c79358 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.h +++ b/examples/webenginewidgets/simplebrowser/webpage.h @@ -52,6 +52,7 @@ #define WEBPAGE_H #include <QWebEnginePage> +#include <QWebEngineRegisterProtocolHandlerPermissionRequest> class WebPage : public QWebEnginePage { @@ -66,6 +67,7 @@ protected: private slots: void handleAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *auth); void handleProxyAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *auth, const QString &proxyHost); + void handleRegisterProtocolHandlerPermissionRequested(QWebEngineRegisterProtocolHandlerPermissionRequest request); }; #endif // WEBPAGE_H |