Changeset 141233 in webkit
- Timestamp:
- Jan 30, 2013 1:28:19 AM (11 years ago)
- Location:
- trunk/Source/WebKit/qt
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/qt/ChangeLog
r141202 r141233 1 2013-01-30 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 3 [Qt][WK1] Remember denied permission for notifications 4 https://bugs.webkit.org/show_bug.cgi?id=107694 5 6 Reviewed by Jocelyn Turcotte. 7 8 Store denied permissions. According to the specification, we should 9 ask the user again if he has already granted or denied permission. 10 11 * WebCoreSupport/NotificationPresenterClientQt.cpp: 12 (WebCore::NotificationPresenterClientQt::requestPermission): 13 (WebCore::NotificationPresenterClientQt::setNotificationsAllowedForFrame): 14 * WebCoreSupport/NotificationPresenterClientQt.h: 15 (NotificationPresenterClientQt): 16 * WebCoreSupport/QWebPageAdapter.cpp: 17 (QWebPageAdapter::setNotificationsAllowedForFrame): 18 * WebCoreSupport/QWebPageAdapter.h: 19 * WidgetApi/qwebpage.cpp: 20 (QWebPage::setFeaturePermission): 21 1 22 2013-01-29 Sheriff Bot <webkit.review.bot@gmail.com> 2 23 -
trunk/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
r141202 r141233 311 311 printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %s\n", QString(context->securityOrigin()->toString()).toUtf8().constData()); 312 312 313 NotificationClient::Permission permission = checkPermission(context); 314 if (permission != NotificationClient::PermissionNotAllowed) { 315 if (callback) 316 callback->handleEvent(); 317 return; 318 } 319 313 320 QHash<ScriptExecutionContext*, CallbacksInfo >::iterator iter = m_pendingPermissionRequests.find(context); 314 321 if (iter != m_pendingPermissionRequests.end()) … … 334 341 printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %s\n", QString(context->securityOrigin()->toString()).toUtf8().constData()); 335 342 343 NotificationClient::Permission permission = checkPermission(context); 344 if (permission != NotificationClient::PermissionNotAllowed) { 345 if (callback) 346 callback->handleEvent(Notification::permissionString(permission)); 347 return; 348 } 349 336 350 QHash<ScriptExecutionContext*, CallbacksInfo >::iterator iter = m_pendingPermissionRequests.find(context); 337 351 if (iter != m_pendingPermissionRequests.end()) … … 379 393 } 380 394 381 void NotificationPresenterClientQt::allowNotificationForFrame(Frame* frame) 382 { 383 m_cachedPermissions.insert(frame->document(), NotificationClient::PermissionAllowed); 395 void NotificationPresenterClientQt::setNotificationsAllowedForFrame(Frame* frame, bool allowed) 396 { 397 ASSERT(frame->document()); 398 if (!frame->document()) 399 return; 400 401 NotificationClient::Permission permission = allowed ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied; 402 m_cachedPermissions.insert(frame->document(), permission); 384 403 385 404 QHash<ScriptExecutionContext*, CallbacksInfo>::iterator iter = m_pendingPermissionRequests.begin(); … … 403 422 Q_FOREACH(const RefPtr<NotificationPermissionCallback>& callback, callbacks) { 404 423 if (callback) 405 callback->handleEvent(Notification::permissionString( NotificationClient::PermissionAllowed));424 callback->handleEvent(Notification::permissionString(permission)); 406 425 } 407 426 #endif -
trunk/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
r140330 r141233 102 102 void cancel(NotificationWrapper*); 103 103 104 void allowNotificationForFrame(Frame*);104 void setNotificationsAllowedForFrame(Frame*, bool allowed); 105 105 106 106 static bool dumpNotification; -
trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
r140541 r141233 1229 1229 1230 1230 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 1231 void QWebPageAdapter:: allowNotificationsForFrame(QWebFrameAdapter* frame)1232 { 1233 NotificationPresenterClientQt::notificationPresenter()-> allowNotificationForFrame(frame->frame);1231 void QWebPageAdapter::setNotificationsAllowedForFrame(QWebFrameAdapter* frame, bool allowed) 1232 { 1233 NotificationPresenterClientQt::notificationPresenter()->setNotificationsAllowedForFrame(frame->frame, allowed); 1234 1234 } 1235 1235 -
trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
r136943 r141233 313 313 #endif 314 314 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 315 void allowNotificationsForFrame(QWebFrameAdapter*);315 void setNotificationsAllowedForFrame(QWebFrameAdapter*, bool allowed); 316 316 void addNotificationPresenterClient(); 317 317 #ifndef QT_NO_SYSTEMTRAYICON -
trunk/Source/WebKit/qt/WidgetApi/qwebpage.cpp
r136842 r141233 1585 1585 void QWebPage::setFeaturePermission(QWebFrame* frame, Feature feature, PermissionPolicy policy) 1586 1586 { 1587 #if !ENABLE(NOTIFICATIONS) && !ENABLE(LEGACY_NOTIFICATIONS) && !ENABLE(GEOLOCATION) 1588 Q_UNUSED(frame); 1589 Q_UNUSED(policy); 1590 #endif 1587 1591 switch (feature) { 1588 1592 case Notifications: 1589 1593 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 1590 if (policy == PermissionGrantedByUser)1591 d-> allowNotificationsForFrame(frame->d);1594 if (policy != PermissionUnknown) 1595 d->setNotificationsAllowedForFrame(frame->d, (policy == PermissionGrantedByUser)); 1592 1596 #endif 1593 1597 break;
Note: See TracChangeset
for help on using the changeset viewer.