Home | History | Annotate | Download | only in battery
      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.
      4 
      5 #include "config.h"
      6 #include "modules/battery/NavigatorBattery.h"
      7 
      8 #include "core/frame/LocalFrame.h"
      9 #include "modules/battery/BatteryManager.h"
     10 
     11 namespace blink {
     12 
     13 NavigatorBattery::NavigatorBattery()
     14 {
     15 }
     16 
     17 NavigatorBattery::~NavigatorBattery()
     18 {
     19 }
     20 
     21 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState, Navigator& navigator)
     22 {
     23     return NavigatorBattery::from(navigator).getBattery(scriptState);
     24 }
     25 
     26 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState)
     27 {
     28     if (!m_batteryManager)
     29         m_batteryManager = BatteryManager::create(scriptState->executionContext());
     30 
     31     return m_batteryManager->startRequest(scriptState);
     32 }
     33 
     34 const char* NavigatorBattery::supplementName()
     35 {
     36     return "NavigatorBattery";
     37 }
     38 
     39 NavigatorBattery& NavigatorBattery::from(Navigator& navigator)
     40 {
     41     NavigatorBattery* supplement = static_cast<NavigatorBattery*>(WillBeHeapSupplement<Navigator>::from(navigator, supplementName()));
     42     if (!supplement) {
     43         supplement = new NavigatorBattery();
     44         provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
     45     }
     46     return *supplement;
     47 }
     48 
     49 void NavigatorBattery::trace(Visitor* visitor)
     50 {
     51     visitor->trace(m_batteryManager);
     52     WillBeHeapSupplement<Navigator>::trace(visitor);
     53 }
     54 
     55 } // namespace blink
     56