This commit is contained in:
2026-03-08 22:49:39 +01:00
parent 5d29d6f3b6
commit c752553d2e
14 changed files with 255 additions and 52 deletions

View File

@@ -37,6 +37,25 @@ WebviewWindow::WebviewWindow(WebviewWindow *parent)
}
void WebviewWindow::handleCertificate(const QWebEngineCertificateError &certificateError)
{
QList<QSslCertificate> chain = certificateError.certificateChain();
int i;
for(i = 0; i < chain.size(); i++) {
const QSslCertificate &cert = chain[i];
if (cert.isSelfSigned()) {
QStringList l = cert.issuerInfo(QSslCertificate::OrganizationalUnitName);
if (!l.empty()) {
QString ou = l[0];
if (ou != "" && ou == _ou_token) {
QWebEngineCertificateError &e = const_cast<QWebEngineCertificateError &>(certificateError);
e.acceptCertificate();
}
}
}
}
}
void WebviewWindow::processJsEvents()
{
QWebEnginePage *p = _view->page();
@@ -101,6 +120,11 @@ int WebviewWindow::resizeCount()
return _resized;
}
void WebviewWindow::setOUToken(const QString &token)
{
_ou_token = token;
}
void WebviewWindow::addView(WebViewQt *v, Rktwebview_qt *c)
{
_container = c;
@@ -143,6 +167,7 @@ void WebviewWindow::addView(WebViewQt *v, Rktwebview_qt *c)
connect(page, &QWebEnginePage::loadStarted, this, [this]() {
_container->onPageLoad(_view->id());
});
connect(page, &QWebEnginePage::certificateError, this, &WebviewWindow::handleCertificate);
}
WebViewQt *WebviewWindow::view()