Changeset 122478 in webkit
- Timestamp:
- Jul 12, 2012 10:21:06 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r122453 r122478 1 2012-07-12 Adenilson Cavalcanti <cavalcantii@gmail.com> 2 3 [Qt][WK2] Implement web notifications support 4 https://bugs.webkit.org/show_bug.cgi?id=80702 5 6 Reviewed by Noam Rosenthal. 7 8 Adding a new type of permission request for Desktop Notifications (plus required code 9 to register the handle for this requests). 10 11 * UIProcess/API/qt/qwebpermissionrequest.cpp: 12 (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate): 13 (QWebPermissionRequestPrivate): 14 (QWebPermissionRequest::create): 15 (QWebPermissionRequest::QWebPermissionRequest): 16 (QWebPermissionRequest::setAllow): 17 * UIProcess/API/qt/qwebpermissionrequest_p.h: 18 * UIProcess/API/qt/tests/qmltests/WebView/tst_notification.qml: Added. 19 * UIProcess/API/qt/tests/qmltests/common/notification.html: Added. 20 * UIProcess/qt/QtWebPageUIClient.cpp: 21 (WebKit::QtWebPageUIClient::QtWebPageUIClient): 22 (WebKit::QtWebPageUIClient::policyForNotificationPermissionRequest): 23 (WebKit): 24 * UIProcess/qt/QtWebPageUIClient.h: 25 1 26 2012-07-12 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> 2 27 -
trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp
r107914 r122478 26 26 #include <WebKit2/WKRetainPtr.h> 27 27 28 29 28 class QWebPermissionRequestPrivate : public QSharedData { 30 29 public: 31 QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest)30 QWebPermissionRequestPrivate(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef geo = 0, WKNotificationPermissionRequestRef notify = 0, QWebPermissionRequest::RequestType reqType = QWebPermissionRequest::Geolocation) 32 31 : origin(securityOrigin) 33 , type(QWebPermissionRequest::Geolocation) 34 , request(permissionRequest) 32 , geolocationRequest(geo) 33 , notificationRequest(notify) 34 , type(reqType) 35 35 , allow(false) 36 36 { … … 49 49 50 50 WKRetainPtr<WKSecurityOriginRef> origin; 51 WKRetainPtr<WKGeolocationPermissionRequestRef> geolocationRequest; 52 WKRetainPtr<WKNotificationPermissionRequestRef> notificationRequest; 51 53 QWebPermissionRequest::RequestType type; 52 WKRetainPtr<WKGeolocationPermissionRequestRef> request;53 54 QtWebSecurityOrigin securityInfo; 54 55 bool allow; … … 60 61 } 61 62 62 QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest, QObject* parent) 63 QWebPermissionRequest* QWebPermissionRequest::create(WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request) 64 { 65 return new QWebPermissionRequest(origin, 0, request, QWebPermissionRequest::Notification); 66 } 67 68 QWebPermissionRequest::QWebPermissionRequest(WKSecurityOriginRef securityOrigin 69 , WKGeolocationPermissionRequestRef geo 70 , WKNotificationPermissionRequestRef notify 71 , QWebPermissionRequest::RequestType type 72 , QObject* parent) 63 73 : QObject(parent) 64 , d(new QWebPermissionRequestPrivate(securityOrigin, permissionRequest))74 , d(new QWebPermissionRequestPrivate(securityOrigin, geo, notify, type)) 65 75 { 66 76 } … … 81 91 case Geolocation: { 82 92 if (accepted) 83 WKGeolocationPermissionRequestAllow(d-> request.get());93 WKGeolocationPermissionRequestAllow(d->geolocationRequest.get()); 84 94 else 85 WKGeolocationPermissionRequestDeny(d->request.get()); 95 WKGeolocationPermissionRequestDeny(d->geolocationRequest.get()); 96 break; 97 } 98 case Notification: { 99 if (accepted) 100 WKNotificationPermissionRequestAllow(d->notificationRequest.get()); 101 else 102 WKNotificationPermissionRequestDeny(d->notificationRequest.get()); 86 103 break; 87 104 } -
trunk/Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h
r107914 r122478 27 27 #include <QtCore/qshareddata.h> 28 28 #include <WebKit2/WKGeolocationPermissionRequest.h> 29 #include <WebKit2/WKNotificationPermissionRequest.h> 29 30 #include <WebKit2/WKSecurityOrigin.h> 30 31 … … 40 41 public: 41 42 enum RequestType { 42 Geolocation 43 Geolocation, 44 Notification 43 45 }; 44 46 45 47 static QWebPermissionRequest* create(WKSecurityOriginRef, WKGeolocationPermissionRequestRef); 48 static QWebPermissionRequest* create(WKSecurityOriginRef, WKNotificationPermissionRequestRef); 46 49 virtual ~QWebPermissionRequest(); 47 50 … … 55 58 private: 56 59 friend class QWebPermissionRequestPrivate; 57 QWebPermissionRequest(WKSecurityOriginRef securityOrigin, WKGeolocationPermissionRequestRef permissionRequest, QObject* parent = 0); 60 QWebPermissionRequest(WKSecurityOriginRef securityOrigin 61 , WKGeolocationPermissionRequestRef geo = 0 62 , WKNotificationPermissionRequestRef notify = 0 63 , QWebPermissionRequest::RequestType type = Geolocation 64 , QObject* parent = 0); 58 65 59 66 private: -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageUIClient.cpp
r114897 r122478 49 49 uiClient.exceededDatabaseQuota = exceededDatabaseQuota; 50 50 uiClient.decidePolicyForGeolocationPermissionRequest = policyForGeolocationPermissionRequest; 51 uiClient.decidePolicyForNotificationPermissionRequest = policyForNotificationPermissionRequest; 51 52 WKPageSetPageUIClient(pageRef, &uiClient); 52 53 } … … 162 163 } 163 164 165 void QtWebPageUIClient::policyForNotificationPermissionRequest(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request, const void *clientInfo) 166 { 167 if (!request) 168 return; 169 170 QWebPermissionRequest* req = QWebPermissionRequest::create(origin, request); 171 toQtWebPageUIClient(clientInfo)->permissionRequest(req); 172 } 173 164 174 } // namespace WebKit 175 -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageUIClient.h
r114897 r122478 60 60 static unsigned long long exceededDatabaseQuota(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKStringRef databaseName, WKStringRef displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage, const void *clientInfo); 61 61 static void policyForGeolocationPermissionRequest(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKGeolocationPermissionRequestRef, const void*); 62 static void policyForNotificationPermissionRequest(WKPageRef, WKSecurityOriginRef, WKNotificationPermissionRequestRef, const void*); 62 63 63 64 QQuickWebView* m_webView;
Note: See TracChangeset
for help on using the changeset viewer.