1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 #include "modules/push_messaging/NavigatorPushManager.h"
8 #include "core/dom/Document.h"
9 #include "core/frame/Navigator.h"
10 #include "modules/push_messaging/PushManager.h"
14 NavigatorPushManager::NavigatorPushManager()
18 NavigatorPushManager::~NavigatorPushManager()
22 const char* NavigatorPushManager::supplementName()
24 return "NavigatorPushManager";
27 NavigatorPushManager& NavigatorPushManager::from(Navigator& navigator)
29 NavigatorPushManager* supplement = static_cast<NavigatorPushManager*>(WillBeHeapSupplement<Navigator>::from(navigator, supplementName()));
31 supplement = new NavigatorPushManager();
32 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
37 PushManager* NavigatorPushManager::push(Navigator& navigator)
39 return NavigatorPushManager::from(navigator).pushManager();
42 PushManager* NavigatorPushManager::pushManager()
45 m_pushManager = PushManager::create();
46 return m_pushManager.get();
49 void NavigatorPushManager::trace(Visitor* visitor)
51 visitor->trace(m_pushManager);
52 WillBeHeapSupplement<Navigator>::trace(visitor);
55 } // namespace WebCore