diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
commit | 4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26 (patch) | |
tree | 7bb9ad7e31c24d1cf1707e03e6f1a80f6d033951 /Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp | |
parent | 3977e3d2f72f7fe2c887c1ec0e0c342e1d169f42 (diff) | |
download | qtwebkit-4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26.tar.gz |
Imported WebKit commit 953baa67aa07087b6ecd4199351ec554c724e27d (http://svn.webkit.org/repository/webkit/trunk@122676)
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: |