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

Unified Diff: Source/modules/battery/BatteryManager.h

Issue 329723005: Battery Status API: blink promise implementation and layout tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: revert to a single resolver at a time 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/battery/BatteryManager.h
diff --git a/Source/modules/battery/BatteryManager.h b/Source/modules/battery/BatteryManager.h
index 984abcfc67510d2ea4a0ddf75e26159c29b5d9cf..756a22728f33442afb8399b913347a87ed2bc46c 100644
--- a/Source/modules/battery/BatteryManager.h
+++ b/Source/modules/battery/BatteryManager.h
@@ -5,6 +5,8 @@
#ifndef BatteryManager_h
#define BatteryManager_h
+#include "bindings/v8/ScriptPromise.h"
+#include "bindings/v8/ScriptPromiseResolverWithContext.h"
#include "core/dom/ContextLifecycleObserver.h"
#include "core/dom/Document.h"
#include "core/frame/DeviceEventControllerBase.h"
@@ -14,7 +16,6 @@
namespace WebCore {
class BatteryStatus;
-class Navigator;
class BatteryManager FINAL : public RefCountedWillBeRefCountedGarbageCollected<BatteryManager>, public ActiveDOMObject, public DeviceEventControllerBase, public EventTargetWithInlineData {
REFCOUNTED_EVENT_TARGET(BatteryManager);
@@ -23,6 +24,9 @@ public:
virtual ~BatteryManager();
static PassRefPtrWillBeRawPtr<BatteryManager> create(ExecutionContext*);
+ // Returns a promise object that will be resolved with this BatteryManager.
+ ScriptPromise startRequest(ScriptState*);
+
// EventTarget implementation.
virtual const WTF::AtomicString& interfaceName() const OVERRIDE { return EventTargetNames::BatteryManager; }
virtual ExecutionContext* executionContext() const OVERRIDE { return ContextLifecycleObserver::executionContext(); }
@@ -50,9 +54,17 @@ public:
virtual void stop() OVERRIDE;
private:
+ enum State {
+ NotStarted,
+ Pending,
+ Resolved,
+ };
+
explicit BatteryManager(ExecutionContext*);
+ RefPtr<ScriptPromiseResolverWithContext> m_resolver;
RefPtr<BatteryStatus> m_batteryStatus;
+ State m_state;
};
}

Powered by Google App Engine
This is Rietveld 408576698