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/battery/NavigatorBattery.h"
8 #include "core/frame/LocalFrame.h"
9 #include "modules/battery/BatteryManager.h"
13 NavigatorBattery::NavigatorBattery()
17 NavigatorBattery::~NavigatorBattery()
21 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState, Navigator& navigator)
23 return NavigatorBattery::from(navigator).getBattery(scriptState);
26 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState)
28 if (!m_batteryManager)
29 m_batteryManager = BatteryManager::create(scriptState->executionContext());
31 return m_batteryManager->startRequest(scriptState);
34 const char* NavigatorBattery::supplementName()
36 return "NavigatorBattery";
39 NavigatorBattery& NavigatorBattery::from(Navigator& navigator)
41 NavigatorBattery* supplement = static_cast<NavigatorBattery*>(WillBeHeapSupplement<Navigator>::from(navigator, supplementName()));
43 supplement = new NavigatorBattery();
44 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
49 void NavigatorBattery::trace(Visitor* visitor)
51 visitor->trace(m_batteryManager);
52 WillBeHeapSupplement<Navigator>::trace(visitor);