diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
commit | 881da28418d380042aa95a97f0cbd42560a64f7c (patch) | |
tree | a794dff3274695e99c651902dde93d934ea7a5af /Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp | |
parent | 7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff) | |
parent | 0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff) | |
download | qtwebkit-881da28418d380042aa95a97f0cbd42560a64f7c.tar.gz |
Merge 'wip/next' into dev
Change-Id: Iff9ee5e23bb326c4371ec8ed81d56f2f05d680e9
Diffstat (limited to 'Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp')
-rw-r--r-- | Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp index ab19b4e7b..15a5bbaa9 100644 --- a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp +++ b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp @@ -52,18 +52,21 @@ static uint64_t generateRequestID() } #endif -PassRefPtr<NotificationPermissionRequestManager> NotificationPermissionRequestManager::create(WebPage* page) +Ref<NotificationPermissionRequestManager> NotificationPermissionRequestManager::create(WebPage* page) { - return adoptRef(new NotificationPermissionRequestManager(page)); + return adoptRef(*new NotificationPermissionRequestManager(page)); } -NotificationPermissionRequestManager::NotificationPermissionRequestManager(WebPage* page) #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) +NotificationPermissionRequestManager::NotificationPermissionRequestManager(WebPage* page) : m_page(page) -#endif { - (void)page; } +#else +NotificationPermissionRequestManager::NotificationPermissionRequestManager(WebPage*) +{ +} +#endif #if ENABLE(NOTIFICATIONS) void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin, PassRefPtr<NotificationPermissionCallback> callback) @@ -84,7 +87,7 @@ void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin, #endif #if ENABLE(LEGACY_NOTIFICATIONS) -void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin, PassRefPtr<VoidCallback> callback) +void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin, PassRefPtr<WebCore::VoidCallback> callback) { NotificationClient::Permission permission = permissionLevel(origin); if (permission != NotificationClient::PermissionNotAllowed) { @@ -120,13 +123,23 @@ void NotificationPermissionRequestManager::cancelRequest(SecurityOrigin* origin) #endif } +bool NotificationPermissionRequestManager::hasPendingPermissionRequests(SecurityOrigin* origin) const +{ +#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) + return m_originToIDMap.contains(origin); +#else + UNUSED_PARAM(origin); + return false; +#endif +} + NotificationClient::Permission NotificationPermissionRequestManager::permissionLevel(SecurityOrigin* securityOrigin) { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - if (!m_page->corePage()->settings()->notificationsEnabled()) + if (!m_page->corePage()->settings().notificationsEnabled()) return NotificationClient::PermissionDenied; - return WebProcess::shared().supplement<WebNotificationManager>()->policyForOrigin(securityOrigin); + return WebProcess::singleton().supplement<WebNotificationManager>()->policyForOrigin(securityOrigin); #else UNUSED_PARAM(securityOrigin); return NotificationClient::PermissionDenied; @@ -136,7 +149,7 @@ NotificationClient::Permission NotificationPermissionRequestManager::permissionL void NotificationPermissionRequestManager::setPermissionLevelForTesting(const String& originString, bool allowed) { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - WebProcess::shared().supplement<WebNotificationManager>()->didUpdateNotificationDecision(originString, allowed); + WebProcess::singleton().supplement<WebNotificationManager>()->didUpdateNotificationDecision(originString, allowed); #else UNUSED_PARAM(originString); UNUSED_PARAM(allowed); @@ -146,7 +159,7 @@ void NotificationPermissionRequestManager::setPermissionLevelForTesting(const St void NotificationPermissionRequestManager::removeAllPermissionsForTesting() { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - WebProcess::shared().supplement<WebNotificationManager>()->removeAllPermissionsForTesting(); + WebProcess::singleton().supplement<WebNotificationManager>()->removeAllPermissionsForTesting(); #endif } @@ -157,12 +170,15 @@ void NotificationPermissionRequestManager::didReceiveNotificationPermissionDecis return; RefPtr<WebCore::SecurityOrigin> origin = m_idToOriginMap.take(requestID); + if (!origin) + return; + m_originToIDMap.remove(origin); - WebProcess::shared().supplement<WebNotificationManager>()->didUpdateNotificationDecision(origin->toString(), allowed); + WebProcess::singleton().supplement<WebNotificationManager>()->didUpdateNotificationDecision(origin->toString(), allowed); #if ENABLE(LEGACY_NOTIFICATIONS) - RefPtr<VoidCallback> voidCallback = m_idToVoidCallbackMap.take(requestID); + RefPtr<WebCore::VoidCallback> voidCallback = m_idToVoidCallbackMap.take(requestID); if (voidCallback) { voidCallback->handleEvent(); return; |