From 40736c5763bf61337c8c14e16d8587db021a87d4 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 6 Jan 2012 14:44:00 +0100 Subject: Imported WebKit commit 2ea9d364d0f6efa8fa64acf19f451504c59be0e4 (http://svn.webkit.org/repository/webkit/trunk@104285) --- .../UIProcess/API/qt/qwebpermissionrequest.cpp | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp (limited to 'Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp') diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp b/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp new file mode 100644 index 000000000..16a438560 --- /dev/null +++ b/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp @@ -0,0 +1,106 @@ +/* + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" + +#include "qwebpermissionrequest_p.h" + +#include "WKStringQt.h" +#include +#include + + +class QWebPermissionRequestPrivate : public QSharedData { +public: + QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest) + : origin(securityOrigin) + , type(QWebPermissionRequest::Geolocation) + , request(permissionRequest) + , allow(false) + { + } + ~QWebPermissionRequestPrivate() + { + } + + WKRetainPtr origin; + QWebPermissionRequest::RequestType type; + WKRetainPtr request; + bool allow; +}; + +QWebPermissionRequest* QWebPermissionRequest::create(WKSecurityOriginRef origin, WKGeolocationPermissionRequestRef request) +{ + return new QWebPermissionRequest(origin, request); +} + +QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest, QObject* parent) + : QObject(parent) + , d(new QWebPermissionRequestPrivate(securityOrigin, permissionRequest)) +{ +} + +QWebPermissionRequest::~QWebPermissionRequest() +{ +} + +QWebPermissionRequest::RequestType QWebPermissionRequest::type() const +{ + return d->type; +} + +void QWebPermissionRequest::setAllow(bool accepted) +{ + d->allow = accepted; + switch (type()) { + case Geolocation: { + if (accepted) + WKGeolocationPermissionRequestAllow(d->request.get()); + else + WKGeolocationPermissionRequestDeny(d->request.get()); + break; + } + default: + ASSERT_NOT_REACHED(); + } + + deleteLater(); +} + +bool QWebPermissionRequest::allow() const +{ + return d->allow; +} + +QString QWebPermissionRequest::scheme() const +{ + WKRetainPtr url = adoptWK(WKSecurityOriginCopyProtocol(d->origin.get())); + return WKStringCopyQString(url.get()); +} + +QString QWebPermissionRequest::host() const +{ + WKRetainPtr origin = adoptWK(WKSecurityOriginCopyHost(d->origin.get())); + return WKStringCopyQString(origin.get()); +} + +int QWebPermissionRequest::port() const +{ + return static_cast(WKSecurityOriginGetPort(d->origin.get())); +} -- cgit v1.2.1