Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: Source/modules/battery/NavigatorBattery.cpp

Issue 329723005: Battery Status API: blink promise implementation and layout tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix fast/dom/Window/property-access-on-cached* tests. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "modules/battery/NavigatorBattery.h" 6 #include "modules/battery/NavigatorBattery.h"
7 7
8 #include "core/frame/LocalFrame.h" 8 #include "core/frame/LocalFrame.h"
9 #include "modules/battery/BatteryManager.h" 9 #include "modules/battery/BatteryManager.h"
10 10
11 namespace WebCore { 11 namespace WebCore {
12 12
13 NavigatorBattery::NavigatorBattery() 13 NavigatorBattery::NavigatorBattery()
14 { 14 {
15 } 15 }
16 16
17 NavigatorBattery::~NavigatorBattery() 17 NavigatorBattery::~NavigatorBattery()
18 { 18 {
19 } 19 }
20 20
21 BatteryManager* NavigatorBattery::battery(Navigator& navigator) 21 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState, Navigator& navigator)
22 { 22 {
23 return NavigatorBattery::from(navigator).batteryManager(navigator); 23 return NavigatorBattery::from(navigator).getBattery(scriptState);
24 } 24 }
25 25
26 BatteryManager* NavigatorBattery::batteryManager(Navigator& navigator) 26 ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState)
27 { 27 {
28 if (!m_batteryManager && navigator.frame()) 28 if (!m_batteryManager) {
29 m_batteryManager = BatteryManager::create(navigator.frame()->document()) ; 29 m_batteryManager = BatteryManager::create(scriptState->executionContext( ));
30 return m_batteryManager.get(); 30 // Create a wrapper to expose this object to the V8 GC so that hasPendin gActivity takes effect.
31 toV8NoInline(m_batteryManager.get(), scriptState->context()->Global(), s criptState->isolate());
abarth-chromium 2014/06/11 19:44:34 Why is this necessary? We're already holding m_ba
timvolodine 2014/06/12 16:38:46 Done.
32 }
33
34 return m_batteryManager->startRequest(scriptState);
31 } 35 }
32 36
33 const char* NavigatorBattery::supplementName() 37 const char* NavigatorBattery::supplementName()
34 { 38 {
35 return "NavigatorBattery"; 39 return "NavigatorBattery";
36 } 40 }
37 41
38 NavigatorBattery& NavigatorBattery::from(Navigator& navigator) 42 NavigatorBattery& NavigatorBattery::from(Navigator& navigator)
39 { 43 {
40 NavigatorBattery* supplement = static_cast<NavigatorBattery*>(WillBeHeapSupp lement<Navigator>::from(navigator, supplementName())); 44 NavigatorBattery* supplement = static_cast<NavigatorBattery*>(WillBeHeapSupp lement<Navigator>::from(navigator, supplementName()));
41 if (!supplement) { 45 if (!supplement) {
42 supplement = new NavigatorBattery(); 46 supplement = new NavigatorBattery();
43 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement)); 47 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
44 } 48 }
45 return *supplement; 49 return *supplement;
46 } 50 }
47 51
48 void NavigatorBattery::trace(Visitor* visitor) 52 void NavigatorBattery::trace(Visitor* visitor)
49 { 53 {
50 visitor->trace(m_batteryManager); 54 visitor->trace(m_batteryManager);
51 WillBeHeapSupplement<Navigator>::trace(visitor); 55 WillBeHeapSupplement<Navigator>::trace(visitor);
52 } 56 }
53 57
54 } // namespace WebCore 58 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698