void HTML5PermissionsManager::requestPermissions(WebPage* page, const QUrl &origin, const QWebEnginePage::Feature &feature)
{
    if (!page) {
        return;
    }

    if (!m_granted.contains(feature) || !m_denied.contains(feature)) {
        qWarning() << "HTML5PermissionsManager: Unknown feature" << feature;
        return;
    }

    // Permission granted
    if (m_granted.value(feature).contains(origin.toString())) {
        page->setFeaturePermission(origin, feature, QWebEnginePage::PermissionGrantedByUser);
        return;
    }

    // Permission denied
    if (m_denied.value(feature).contains(origin.toString())) {
        page->setFeaturePermission(origin, feature, QWebEnginePage::PermissionDeniedByUser);
        return;
    }

    // Ask user for permission
    WebView* view = qobject_cast<WebView*>(page->view());
    if (view) {
        HTML5PermissionsNotification* notif = new HTML5PermissionsNotification(origin, page, feature);
        view->addNotification(notif);
    }
}