diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp b/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp index c4c1af825..45697a22b 100644 --- a/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp @@ -25,13 +25,13 @@ #include <WebKit2/WKBase.h> #include <WebKit2/WKRetainPtr.h> - class QWebPermissionRequestPrivate : public QSharedData { public: - QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest) + QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef geo = 0, WKNotificationPermissionRequestRef notify = 0, QWebPermissionRequest::RequestType reqType = QWebPermissionRequest::Geolocation) : origin(securityOrigin) - , type(QWebPermissionRequest::Geolocation) - , request(permissionRequest) + , geolocationRequest(geo) + , notificationRequest(notify) + , type(reqType) , allow(false) { WKRetainPtr<WKStringRef> url = adoptWK(WKSecurityOriginCopyProtocol(origin.get())); @@ -48,8 +48,9 @@ public: } WKRetainPtr<WKSecurityOriginRef> origin; + WKRetainPtr<WKGeolocationPermissionRequestRef> geolocationRequest; + WKRetainPtr<WKNotificationPermissionRequestRef> notificationRequest; QWebPermissionRequest::RequestType type; - WKRetainPtr<WKGeolocationPermissionRequestRef> request; QtWebSecurityOrigin securityInfo; bool allow; }; @@ -59,9 +60,18 @@ QWebPermissionRequest* QWebPermissionRequest::create(WKSecurityOriginRef origin, return new QWebPermissionRequest(origin, request); } -QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest, QObject* parent) +QWebPermissionRequest* QWebPermissionRequest::create(WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request) +{ + return new QWebPermissionRequest(origin, 0, request, QWebPermissionRequest::Notification); +} + +QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin + , WKGeolocationPermissionRequestRef geo + , WKNotificationPermissionRequestRef notify + , QWebPermissionRequest::RequestType type + , QObject* parent) : QObject(parent) - , d(new QWebPermissionRequestPrivate(securityOrigin, permissionRequest)) + , d(new QWebPermissionRequestPrivate(securityOrigin, geo, notify, type)) { } @@ -80,9 +90,16 @@ void QWebPermissionRequest::setAllow(bool accepted) switch (type()) { case Geolocation: { if (accepted) - WKGeolocationPermissionRequestAllow(d->request.get()); + WKGeolocationPermissionRequestAllow(d->geolocationRequest.get()); + else + WKGeolocationPermissionRequestDeny(d->geolocationRequest.get()); + break; + } + case Notification: { + if (accepted) + WKNotificationPermissionRequestAllow(d->notificationRequest.get()); else - WKGeolocationPermissionRequestDeny(d->request.get()); + WKNotificationPermissionRequestDeny(d->notificationRequest.get()); break; } default: |