Diff
Modified: trunk/Source/WebKit/qt/ChangeLog (107913 => 107914)
--- trunk/Source/WebKit/qt/ChangeLog 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit/qt/ChangeLog 2012-02-16 10:28:39 UTC (rev 107914)
@@ -1,3 +1,17 @@
+2012-02-16 Adenilson Cavalcanti <cavalcan...@gmail.com>
+
+ [Qt][WK2] Split QWebPermissionRequest into QWebSecurityOrigin
+ https://bugs.webkit.org/show_bug.cgi?id=73215
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Adding a class to access security information data
+ (e.g. port/scheme/etc),
+ while allowing it to be handled in QML side.
+
+ * declarative/plugin.cpp:
+ (WebKitQmlPlugin::registerTypes):
+
2012-02-15 Sadrul Habib Chowdhury <sad...@chromium.org>
Notify ChromeClient when touch-event handlers are installed/removed.
Modified: trunk/Source/WebKit/qt/declarative/plugin.cpp (107913 => 107914)
--- trunk/Source/WebKit/qt/declarative/plugin.cpp 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit/qt/declarative/plugin.cpp 2012-02-16 10:28:39 UTC (rev 107914)
@@ -25,6 +25,7 @@
#if defined(HAVE_WEBKIT2)
#include "qquickwebpage_p.h"
#include "qquickwebview_p.h"
+#include "qtwebsecurityorigin_p.h"
#include "qwebiconimageprovider_p.h"
#include "qwebnavigationrequest_p.h"
#include "qwebpermissionrequest_p.h"
@@ -65,6 +66,8 @@
qmlRegisterUncreatableType<QNetworkReply>(uri, 3, 0, "NetworkReply", QObject::tr("Cannot create separate instance of NetworkReply"));
qmlRegisterUncreatableType<QWebPermissionRequest>(uri, 3, 0, "PermissionRequest", QObject::tr("Cannot create separate instance of PermissionRequest"));
qmlRegisterUncreatableType<QWebNavigationRequest>(uri, 3, 0, "NavigationRequest", QObject::tr("Cannot create separate instance of NavigationRequest"));
+ qmlRegisterUncreatableType<QtWebSecurityOrigin>(uri, 3, 0, "SecurityOrigin", QObject::tr("Cannot create separate instance of SecurityOrigin"));
+
#endif
}
};
Modified: trunk/Source/WebKit2/ChangeLog (107913 => 107914)
--- trunk/Source/WebKit2/ChangeLog 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit2/ChangeLog 2012-02-16 10:28:39 UTC (rev 107914)
@@ -1,3 +1,34 @@
+2012-02-16 Adenilson Cavalcanti <cavalcan...@gmail.com>
+
+ [Qt][WK2] Split QWebPermissionRequest into QWebSecurityOrigin
+ https://bugs.webkit.org/show_bug.cgi?id=73215
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Introducing a new class to expose security origin information
+ (port/scheme/etc), useful for inspecting the origin of permission
+ requests.
+
+ * Target.pri:
+ * UIProcess/API/qt/qtwebsecurityorigin.cpp: Added.
+ (QtWebSecurityOrigin::QtWebSecurityOrigin):
+ (QtWebSecurityOrigin::~QtWebSecurityOrigin):
+ (QtWebSecurityOrigin::host):
+ (QtWebSecurityOrigin::scheme):
+ (QtWebSecurityOrigin::path):
+ (QtWebSecurityOrigin::port):
+ (QtWebSecurityOrigin::setHost):
+ (QtWebSecurityOrigin::setScheme):
+ (QtWebSecurityOrigin::setPath):
+ (QtWebSecurityOrigin::setPort):
+ * UIProcess/API/qt/qtwebsecurityorigin_p.h: Added.
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml: Added.
+ * UIProcess/API/qt/qwebpermissionrequest.cpp:
+ (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate):
+ (QWebPermissionRequest::securityOrigin):
+ * UIProcess/API/qt/qwebpermissionrequest_p.h:
+ * UIProcess/API/qt/tests/qmltests/qmltests.pro:
+
2012-02-16 Patrick Gansterer <par...@webkit.org>
[CMake] Add missing include directories.
Modified: trunk/Source/WebKit2/Target.pri (107913 => 107914)
--- trunk/Source/WebKit2/Target.pri 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit2/Target.pri 2012-02-16 10:28:39 UTC (rev 107914)
@@ -173,6 +173,7 @@
UIProcess/API/qt/qwebdownloaditem_p.h \
UIProcess/API/qt/qwebdownloaditem_p_p.h \
UIProcess/API/qt/qwebpermissionrequest_p.h \
+ UIProcess/API/qt/qtwebsecurityorigin_p.h \
UIProcess/API/qt/qwebnavigationrequest_p.h \
UIProcess/API/qt/qquickwebpage_p.h \
UIProcess/API/qt/qquickwebpage_p_p.h \
@@ -501,6 +502,7 @@
UIProcess/API/cpp/qt/WKURLQt.cpp \
UIProcess/API/qt/qwebdownloaditem.cpp \
UIProcess/API/qt/qwebpermissionrequest.cpp \
+ UIProcess/API/qt/qtwebsecurityorigin.cpp \
UIProcess/API/qt/qwebnavigationrequest.cpp \
UIProcess/API/qt/qquickwebpage.cpp \
UIProcess/API/qt/qwebnavigationhistory.cpp \
Added: trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp (0 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp 2012-02-16 10:28:39 UTC (rev 107914)
@@ -0,0 +1,60 @@
+/*
+ Copyright (C) 2012 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 "qtwebsecurityorigin_p.h"
+
+#include <QtCore/QFileInfo>
+#include <QtCore/QStringList>
+#include <SchemeRegistry.h>
+#include <SecurityOrigin.h>
+#include <WebKit2/WKBase.h>
+#include <WebKit2/WKRetainPtr.h>
+#include <WebKit2/WKSecurityOrigin.h>
+
+using namespace WebCore;
+
+QtWebSecurityOrigin::QtWebSecurityOrigin(QObject* parent)
+ : QObject(parent)
+{
+}
+
+QtWebSecurityOrigin::~QtWebSecurityOrigin()
+{
+}
+
+QString QtWebSecurityOrigin::host() const
+{
+ return m_url.host();
+}
+
+QString QtWebSecurityOrigin::scheme() const
+{
+ return m_url.scheme();
+}
+
+QString QtWebSecurityOrigin::path() const
+{
+ return m_url.path();
+}
+
+int QtWebSecurityOrigin::port() const
+{
+ return m_url.port();
+}
Added: trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h (0 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h 2012-02-16 10:28:39 UTC (rev 107914)
@@ -0,0 +1,57 @@
+/*
+ Copyright (C) 2012 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.
+*/
+#ifndef qtwebsecurityorigin_p_h
+#define qtwebsecurityorigin_p_h
+
+#include "qwebkitglobal.h"
+
+#include <QtCore/QDataStream>
+#include <QtCore/QObject>
+#include <QtCore/QString>
+#include <QtCore/QUrl>
+#include <QtCore/qshareddata.h>
+
+class QWEBKIT_EXPORT QtWebSecurityOrigin : public QObject {
+ Q_OBJECT
+ Q_PROPERTY(QString scheme READ scheme CONSTANT)
+ Q_PROPERTY(QString host READ host CONSTANT)
+ Q_PROPERTY(int port READ port CONSTANT)
+ Q_PROPERTY(QString path READ path CONSTANT)
+
+public:
+ QtWebSecurityOrigin(QObject* parent = 0);
+ virtual ~QtWebSecurityOrigin();
+
+ QString scheme() const;
+ QString host() const;
+ int port() const;
+ QString path() const;
+
+ // Used to set security information in a permission request event (e.g.
+ // geolocation permission)
+ void setScheme(const QString& scheme) { m_url.setScheme(scheme); }
+ void setHost(const QString& host) { m_url.setHost(host); }
+ void setPath(const QString& path) { m_url.setPath(path); }
+ void setPort(int port) { m_url.setPort(port); }
+
+private:
+ QUrl m_url;
+};
+
+#endif // qtwebsecurityorigin_p_h
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp (107913 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp 2012-02-16 10:28:39 UTC (rev 107914)
@@ -34,7 +34,15 @@
, request(permissionRequest)
, allow(false)
{
+ WKRetainPtr<WKStringRef> url = ""
+ securityInfo.setScheme(WKStringCopyQString(url.get()));
+
+ WKRetainPtr<WKStringRef> host = adoptWK(WKSecurityOriginCopyHost(origin.get()));
+ securityInfo.setHost(WKStringCopyQString(host.get()));
+
+ securityInfo.setPort(static_cast<int>(WKSecurityOriginGetPort(origin.get())));
}
+
~QWebPermissionRequestPrivate()
{
}
@@ -42,6 +50,7 @@
WKRetainPtr<WKSecurityOriginRef> origin;
QWebPermissionRequest::RequestType type;
WKRetainPtr<WKGeolocationPermissionRequestRef> request;
+ QtWebSecurityOrigin securityInfo;
bool allow;
};
@@ -88,19 +97,8 @@
return d->allow;
}
-QString QWebPermissionRequest::scheme() const
+QtWebSecurityOrigin* QWebPermissionRequest::securityOrigin()
{
- WKRetainPtr<WKStringRef> url = ""
- return WKStringCopyQString(url.get());
+ return &(d->securityInfo);
}
-QString QWebPermissionRequest::host() const
-{
- WKRetainPtr<WKStringRef> origin = adoptWK(WKSecurityOriginCopyHost(d->origin.get()));
- return WKStringCopyQString(origin.get());
-}
-
-int QWebPermissionRequest::port() const
-{
- return static_cast<int>(WKSecurityOriginGetPort(d->origin.get()));
-}
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h (107913 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h 2012-02-16 10:28:39 UTC (rev 107914)
@@ -20,6 +20,7 @@
#ifndef qwebpermissionrequest_p_h
#define qwebpermissionrequest_p_h
+#include "qtwebsecurityorigin_p.h"
#include "qwebkitglobal.h"
#include <QtCore/QObject>
@@ -32,10 +33,8 @@
class QWEBKIT_EXPORT QWebPermissionRequest : public QObject {
Q_OBJECT
Q_PROPERTY(bool allow READ allow WRITE setAllow)
- Q_PROPERTY(RequestType type READ type)
- Q_PROPERTY(QString scheme READ scheme)
- Q_PROPERTY(QString host READ host)
- Q_PROPERTY(int port READ port)
+ Q_PROPERTY(RequestType type READ type CONSTANT)
+ Q_PROPERTY(QtWebSecurityOrigin* origin READ securityOrigin)
Q_ENUMS(RequestType)
public:
@@ -48,12 +47,10 @@
RequestType type() const;
bool allow() const;
- QString scheme() const;
- QString host() const;
- int port() const;
public Q_SLOTS:
void setAllow(bool);
+ QtWebSecurityOrigin* securityOrigin();
private:
friend class QWebPermissionRequestPrivate;
Added: trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml (0 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml 2012-02-16 10:28:39 UTC (rev 107914)
@@ -0,0 +1,57 @@
+import QtQuick 2.0
+import QtTest 1.0
+import QtWebKit 3.0
+import QtWebKit.experimental 1.0
+
+WebView {
+ id: webView
+ width: 200
+ height: 200
+
+ property bool success: true
+ property int port: 0
+ property string scheme: "file"
+
+ SignalSpy {
+ id: spy
+ target: experimental
+ signalName: "permissionRequested"
+ }
+
+ experimental.onPermissionRequested: {
+ if (permission.origin.port != webView.port) {
+ console.log("Expected port value should be zero.")
+ webView.success = false
+ }
+
+ if (permission.origin.scheme != webView.scheme) {
+ console.log("Expected scheme should be \"file\".")
+ webView.success = false
+ }
+ }
+
+ TestCase {
+ name: "WebViewSecurityOrigin"
+
+ // Delayed windowShown to workaround problems with Qt5 in debug mode.
+ when: false
+ Timer {
+ running: parent.windowShown
+ repeat: false
+ interval: 1
+ onTriggered: parent.when = true
+ }
+
+ function init() {
+ spy.clear()
+ }
+
+ function test_permissionRequest() {
+ compare(spy.count, 0)
+ webView.load(Qt.resolvedUrl("../common/geolocation.html"))
+ spy.wait()
+ compare(spy.count, 1)
+ compare(webView.success, true)
+ }
+ }
+}
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro (107913 => 107914)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro 2012-02-16 10:06:38 UTC (rev 107913)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro 2012-02-16 10:28:39 UTC (rev 107914)
@@ -27,4 +27,5 @@
WebView/tst_preferences.qml \
WebView/tst_properties.qml \
WebView/tst_titleChanged.qml \
- WebView/tst_applicationScheme.qml
+ WebView/tst_applicationScheme.qml \
+ WebView/tst_origin.qml