summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp')
-rw-r--r--Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp b/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp
index acf48f0f7..022163d4b 100644
--- a/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp
+++ b/Source/WebCore/Modules/notifications/WorkerGlobalScopeNotifications.cpp
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -36,8 +36,8 @@
namespace WebCore {
-WorkerGlobalScopeNotifications::WorkerGlobalScopeNotifications(WorkerGlobalScope* context)
- : m_context(context)
+WorkerGlobalScopeNotifications::WorkerGlobalScopeNotifications(WorkerGlobalScope& scope)
+ : m_context(&scope)
{
}
@@ -50,25 +50,29 @@ const char* WorkerGlobalScopeNotifications::supplementName()
return "WorkerGlobalScopeNotifications";
}
-WorkerGlobalScopeNotifications* WorkerGlobalScopeNotifications::from(WorkerGlobalScope* context)
+WorkerGlobalScopeNotifications* WorkerGlobalScopeNotifications::from(WorkerGlobalScope& scope)
{
- WorkerGlobalScopeNotifications* supplement = static_cast<WorkerGlobalScopeNotifications*>(Supplement<ScriptExecutionContext>::from(context, supplementName()));
+ WorkerGlobalScopeNotifications* supplement = static_cast<WorkerGlobalScopeNotifications*>(Supplement<WorkerGlobalScope>::from(&scope, supplementName()));
if (!supplement) {
- supplement = new WorkerGlobalScopeNotifications(context);
- Supplement<ScriptExecutionContext>::provideTo(context, supplementName(), adoptPtr(supplement));
+ auto newSupplement = std::make_unique<WorkerGlobalScopeNotifications>(scope);
+ supplement = newSupplement.get();
+ provideTo(&scope, supplementName(), WTFMove(newSupplement));
}
return supplement;
}
-NotificationCenter* WorkerGlobalScopeNotifications::webkitNotifications(WorkerGlobalScope* context)
+NotificationCenter* WorkerGlobalScopeNotifications::webkitNotifications(WorkerGlobalScope& scope)
{
- return WorkerGlobalScopeNotifications::from(context)->webkitNotifications();
+ return WorkerGlobalScopeNotifications::from(scope)->webkitNotifications();
}
NotificationCenter* WorkerGlobalScopeNotifications::webkitNotifications()
{
+ // FIXME: As of this writing, this always passes nullptr for the client.
+ // If it wasn't for that, the notification center create function could be taking a reference.
+ // How is it useful to create a notification center with no client?
if (!m_notificationCenter)
- m_notificationCenter = NotificationCenter::create(m_context, m_context->thread()->getNotificationClient());
+ m_notificationCenter = NotificationCenter::create(*m_context, m_context->thread().getNotificationClient());
return m_notificationCenter.get();
}