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/frame/Navigator.h"
9 #include "modules/push_messaging/PushManager.h"
13 NavigatorPushManager::NavigatorPushManager()
17 NavigatorPushManager::~NavigatorPushManager()
21 const char* NavigatorPushManager::supplementName()
23 return "NavigatorPushManager";
26 NavigatorPushManager& NavigatorPushManager::from(Navigator& navigator)
28 NavigatorPushManager* supplement = static_cast<NavigatorPushManager*>(WillBeHeapSupplement<Navigator>::from(navigator, supplementName()));
30 supplement = new NavigatorPushManager();
31 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
36 PushManager* NavigatorPushManager::push(Navigator& navigator)
38 return NavigatorPushManager::from(navigator).pushManager();
41 PushManager* NavigatorPushManager::pushManager()
44 m_pushManager = PushManager::create();
45 return m_pushManager.get();
48 void NavigatorPushManager::trace(Visitor* visitor)
50 visitor->trace(m_pushManager);
51 WillBeHeapSupplement<Navigator>::trace(visitor);