summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/Notifications
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebKit2/WebProcess/Notifications
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
downloadqtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebKit2/WebProcess/Notifications')
-rw-r--r--Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp40
-rw-r--r--Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h9
-rw-r--r--Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp6
-rw-r--r--Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h12
-rw-r--r--Source/WebKit2/WebProcess/Notifications/WebNotificationManager.messages.in4
5 files changed, 44 insertions, 27 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;
diff --git a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h
index 153ab2118..70827d60b 100644
--- a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h
+++ b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h
@@ -47,7 +47,7 @@ class WebPage;
/// FIXME: Need to keep a queue of pending notifications which permission is still being requested.
class NotificationPermissionRequestManager : public RefCounted<NotificationPermissionRequestManager> {
public:
- static PassRefPtr<NotificationPermissionRequestManager> create(WebPage*);
+ static Ref<NotificationPermissionRequestManager> create(WebPage*);
#if ENABLE(NOTIFICATIONS)
void startRequest(WebCore::SecurityOrigin*, PassRefPtr<WebCore::NotificationPermissionCallback>);
@@ -56,6 +56,7 @@ public:
void startRequest(WebCore::SecurityOrigin*, PassRefPtr<WebCore::VoidCallback>);
#endif
void cancelRequest(WebCore::SecurityOrigin*);
+ bool hasPendingPermissionRequests(WebCore::SecurityOrigin*) const;
WebCore::NotificationClient::Permission permissionLevel(WebCore::SecurityOrigin*);
@@ -69,13 +70,13 @@ private:
NotificationPermissionRequestManager(WebPage*);
#if ENABLE(NOTIFICATIONS)
- HashMap<uint64_t, RefPtr<WebCore::NotificationPermissionCallback> > m_idToCallbackMap;
+ HashMap<uint64_t, RefPtr<WebCore::NotificationPermissionCallback>> m_idToCallbackMap;
#endif
#if ENABLE(LEGACY_NOTIFICATIONS)
- HashMap<uint64_t, RefPtr<WebCore::VoidCallback> > m_idToVoidCallbackMap;
+ HashMap<uint64_t, RefPtr<WebCore::VoidCallback>> m_idToVoidCallbackMap;
#endif
HashMap<RefPtr<WebCore::SecurityOrigin>, uint64_t> m_originToIDMap;
- HashMap<uint64_t, RefPtr<WebCore::SecurityOrigin> > m_idToOriginMap;
+ HashMap<uint64_t, RefPtr<WebCore::SecurityOrigin>> m_idToOriginMap;
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
WebPage* m_page;
diff --git a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
index 6423ff64a..3e7421a1e 100644
--- a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
+++ b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
@@ -64,7 +64,7 @@ WebNotificationManager::WebNotificationManager(WebProcess* process)
: m_process(process)
{
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
- m_process->addMessageReceiver(Messages::WebNotificationManager::messageReceiverName(), this);
+ m_process->addMessageReceiver(Messages::WebNotificationManager::messageReceiverName(), *this);
#endif
}
@@ -141,7 +141,7 @@ uint64_t WebNotificationManager::notificationIDForTesting(Notification* notifica
bool WebNotificationManager::show(Notification* notification, WebPage* page)
{
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
- if (!notification || !page->corePage()->settings()->notificationsEnabled())
+ if (!notification || !page->corePage()->settings().notificationsEnabled())
return false;
uint64_t notificationID = generateNotificationID();
@@ -167,7 +167,7 @@ bool WebNotificationManager::show(Notification* notification, WebPage* page)
void WebNotificationManager::cancel(Notification* notification, WebPage* page)
{
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
- if (!notification || !page->corePage()->settings()->notificationsEnabled())
+ if (!notification || !page->corePage()->settings().notificationsEnabled())
return;
uint64_t notificationID = m_notificationMap.get(notification);
diff --git a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h
index bc9eb8c69..807e52ca0 100644
--- a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h
+++ b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h
@@ -45,7 +45,7 @@ namespace WebKit {
class WebPage;
class WebProcess;
-class WebNotificationManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
+class WebNotificationManager : public WebProcessSupplement, public IPC::MessageReceiver {
WTF_MAKE_NONCOPYABLE(WebNotificationManager);
public:
explicit WebNotificationManager(WebProcess*);
@@ -69,11 +69,11 @@ public:
private:
// WebProcessSupplement
- virtual void initialize(const WebProcessCreationParameters&) OVERRIDE;
+ virtual void initialize(const WebProcessCreationParameters&) override;
- // CoreIPC::MessageReceiver
+ // IPC::MessageReceiver
// Implemented in generated WebNotificationManagerMessageReceiver.cpp
- virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&) OVERRIDE;
+ virtual void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) override;
void didShowNotification(uint64_t notificationID);
void didClickNotification(uint64_t notificationID);
@@ -90,10 +90,10 @@ private:
typedef HashMap<RefPtr<WebCore::Notification>, uint64_t> NotificationMap;
NotificationMap m_notificationMap;
- typedef HashMap<uint64_t, RefPtr<WebCore::Notification> > NotificationIDMap;
+ typedef HashMap<uint64_t, RefPtr<WebCore::Notification>> NotificationIDMap;
NotificationIDMap m_notificationIDMap;
- typedef HashMap<RefPtr<WebCore::ScriptExecutionContext>, Vector<uint64_t> > NotificationContextMap;
+ typedef HashMap<RefPtr<WebCore::ScriptExecutionContext>, Vector<uint64_t>> NotificationContextMap;
NotificationContextMap m_notificationContextMap;
HashMap<String, bool> m_permissionsMap;
diff --git a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.messages.in b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.messages.in
index b88f26c9e..a2e623c32 100644
--- a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.messages.in
+++ b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.messages.in
@@ -24,6 +24,6 @@ messages -> WebNotificationManager {
DidShowNotification(uint64_t notificationID);
DidClickNotification(uint64_t notificationID);
DidCloseNotifications(Vector<uint64_t> notificationIDs);
- DidUpdateNotificationDecision(WTF::String originString, bool allowed);
- DidRemoveNotificationDecisions(Vector<WTF::String> originStrings);
+ DidUpdateNotificationDecision(String originString, bool allowed);
+ DidRemoveNotificationDecisions(Vector<String> originStrings);
}