summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
commit881da28418d380042aa95a97f0cbd42560a64f7c (patch)
treea794dff3274695e99c651902dde93d934ea7a5af /Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
parent7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff)
parent0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff)
downloadqtwebkit-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.cpp40
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;