summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp')
-rw-r--r--Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp48
1 files changed, 29 insertions, 19 deletions
diff --git a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
index 39809fd50..a034007d7 100644
--- a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
@@ -27,16 +27,14 @@
#include "WebNotificationManagerProxy.h"
#include "APIArray.h"
-#include "ImmutableDictionary.h"
-#include "WebContext.h"
+#include "APIDictionary.h"
+#include "APISecurityOrigin.h"
#include "WebNotification.h"
#include "WebNotificationManagerMessages.h"
#include "WebPageProxy.h"
+#include "WebProcessPool.h"
#include "WebProcessProxy.h"
-#include "WebSecurityOrigin.h"
-using namespace std;
-using namespace WTF;
using namespace WebCore;
namespace WebKit {
@@ -52,13 +50,13 @@ const char* WebNotificationManagerProxy::supplementName()
return "WebNotificationManagerProxy";
}
-PassRefPtr<WebNotificationManagerProxy> WebNotificationManagerProxy::create(WebContext* context)
+Ref<WebNotificationManagerProxy> WebNotificationManagerProxy::create(WebProcessPool* processPool)
{
- return adoptRef(new WebNotificationManagerProxy(context));
+ return adoptRef(*new WebNotificationManagerProxy(processPool));
}
-WebNotificationManagerProxy::WebNotificationManagerProxy(WebContext* context)
- : WebContextSupplement(context)
+WebNotificationManagerProxy::WebNotificationManagerProxy(WebProcessPool* processPool)
+ : WebContextSupplement(processPool)
{
}
@@ -70,7 +68,7 @@ void WebNotificationManagerProxy::initializeProvider(const WKNotificationProvide
// WebContextSupplement
-void WebNotificationManagerProxy::contextDestroyed()
+void WebNotificationManagerProxy::processPoolDestroyed()
{
m_provider.removeNotificationManager(this);
}
@@ -87,13 +85,13 @@ void WebNotificationManagerProxy::derefWebContextSupplement()
void WebNotificationManagerProxy::populateCopyOfNotificationPermissions(HashMap<String, bool>& permissions)
{
- RefPtr<ImmutableDictionary> knownPermissions = m_provider.notificationPermissions();
+ RefPtr<API::Dictionary> knownPermissions = m_provider.notificationPermissions();
if (!knownPermissions)
return;
permissions.clear();
- RefPtr<API::Array> knownOrigins = knownPermissions->keys();
+ Ref<API::Array> knownOrigins = knownPermissions->keys();
for (size_t i = 0; i < knownOrigins->size(); ++i) {
API::String* origin = knownOrigins->at<API::String>(i);
permissions.set(origin->string(), knownPermissions->get<API::Boolean>(origin->string())->value());
@@ -217,7 +215,7 @@ void WebNotificationManagerProxy::providerDidCloseNotifications(API::Array* glob
if (pageIt == pageNotificationIDs.end()) {
Vector<uint64_t> newVector;
newVector.reserveInitialCapacity(size);
- pageIt = pageNotificationIDs.add(webPage, newVector).iterator;
+ pageIt = pageNotificationIDs.add(webPage, WTFMove(newVector)).iterator;
}
uint64_t pageNotificationID = it->value.second;
@@ -232,17 +230,17 @@ void WebNotificationManagerProxy::providerDidCloseNotifications(API::Array* glob
it->key->process().send(Messages::WebNotificationManager::DidCloseNotifications(it->value), 0);
}
-void WebNotificationManagerProxy::providerDidUpdateNotificationPolicy(const WebSecurityOrigin* origin, bool allowed)
+void WebNotificationManagerProxy::providerDidUpdateNotificationPolicy(const API::SecurityOrigin* origin, bool allowed)
{
- if (!context())
+ if (!processPool())
return;
- context()->sendToAllProcesses(Messages::WebNotificationManager::DidUpdateNotificationDecision(origin->toString(), allowed));
+ processPool()->sendToAllProcesses(Messages::WebNotificationManager::DidUpdateNotificationDecision(origin->securityOrigin().toString(), allowed));
}
void WebNotificationManagerProxy::providerDidRemoveNotificationPolicies(API::Array* origins)
{
- if (!context())
+ if (!processPool())
return;
size_t size = origins->size();
@@ -253,9 +251,21 @@ void WebNotificationManagerProxy::providerDidRemoveNotificationPolicies(API::Arr
originStrings.reserveInitialCapacity(size);
for (size_t i = 0; i < size; ++i)
- originStrings.append(origins->at<WebSecurityOrigin>(i)->toString());
+ originStrings.append(origins->at<API::SecurityOrigin>(i)->securityOrigin().toString());
- context()->sendToAllProcesses(Messages::WebNotificationManager::DidRemoveNotificationDecisions(originStrings));
+ processPool()->sendToAllProcesses(Messages::WebNotificationManager::DidRemoveNotificationDecisions(originStrings));
+}
+
+uint64_t WebNotificationManagerProxy::notificationLocalIDForTesting(WebNotification* notification)
+{
+ if (!notification)
+ return 0;
+
+ auto it = m_globalNotificationMap.find(notification->notificationID());
+ if (it == m_globalNotificationMap.end())
+ return 0;
+
+ return it->value.second;
}
} // namespace WebKit