Index: Source/modules/battery/NavigatorBattery.cpp |
diff --git a/Source/modules/battery/NavigatorBattery.cpp b/Source/modules/battery/NavigatorBattery.cpp |
index caaff759521c652ec60c0a3cd7d7c2bc01d6a656..37e4bc40820b9a688911b96b90f9e40c1ec8265c 100644 |
--- a/Source/modules/battery/NavigatorBattery.cpp |
+++ b/Source/modules/battery/NavigatorBattery.cpp |
@@ -18,16 +18,20 @@ NavigatorBattery::~NavigatorBattery() |
{ |
} |
-BatteryManager* NavigatorBattery::battery(Navigator& navigator) |
+ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState, Navigator& navigator) |
{ |
- return NavigatorBattery::from(navigator).batteryManager(navigator); |
+ return NavigatorBattery::from(navigator).getBattery(scriptState); |
} |
-BatteryManager* NavigatorBattery::batteryManager(Navigator& navigator) |
+ScriptPromise NavigatorBattery::getBattery(ScriptState* scriptState) |
{ |
- if (!m_batteryManager && navigator.frame()) |
- m_batteryManager = BatteryManager::create(navigator.frame()->document()); |
- return m_batteryManager.get(); |
+ if (!m_batteryManager) { |
+ m_batteryManager = BatteryManager::create(scriptState->executionContext()); |
+ // Create a wrapper to expose this object to the V8 GC so that hasPendingActivity takes effect. |
+ toV8NoInline(m_batteryManager.get(), scriptState->context()->Global(), scriptState->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.
|
+ } |
+ |
+ return m_batteryManager->startRequest(scriptState); |
} |
const char* NavigatorBattery::supplementName() |