diff --git a/chromium_src/third_party/blink/renderer/modules/battery/battery_manager.cc b/chromium_src/third_party/blink/renderer/modules/battery/battery_manager.cc new file mode 100644 index 000000000000..388dbdd36b1e --- /dev/null +++ b/chromium_src/third_party/blink/renderer/modules/battery/battery_manager.cc @@ -0,0 +1,91 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "third_party/blink/renderer/modules/battery/battery_manager.h" + +#include "third_party/blink/renderer/core/dom/document.h" +#include "third_party/blink/renderer/core/dom/dom_exception.h" +#include "third_party/blink/renderer/core/dom/events/event.h" +#include "third_party/blink/renderer/core/execution_context/execution_context.h" +#include "third_party/blink/renderer/modules/battery/battery_dispatcher.h" +#include "third_party/blink/renderer/platform/wtf/assertions.h" + +namespace blink { + + BatteryManager::~BatteryManager() = default; + + BatteryManager::BatteryManager(ExecutionContext* context) + : PausableObject(context), PlatformEventController(ToDocument(context)) {} + + BatteryManager* BatteryManager::Create(ExecutionContext* context) { + BatteryManager* battery_manager = new BatteryManager(context); + battery_manager->PauseIfNeeded(); + return battery_manager; + } + + ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) { + if (!battery_property_) { + battery_property_ = new BatteryProperty( + ExecutionContext::From(script_state), this, BatteryProperty::kReady); + battery_property_->Resolve(this); + } + return battery_property_->Promise(script_state->World()); + } + + bool BatteryManager::charging() { + return true; + } + + double BatteryManager::chargingTime() { + return 0; + } + + double BatteryManager::dischargingTime() { + return std::numeric_limits::infinity(); + } + + double BatteryManager::level() { + return 1.0; + } + + void BatteryManager::Trace(blink::Visitor* visitor) { + visitor->Trace(battery_property_); + PlatformEventController::Trace(visitor); + EventTargetWithInlineData::Trace(visitor); + PausableObject::Trace(visitor); + } + + bool BatteryManager::HasPendingActivity() const { + return false; + } + + void BatteryManager::Pause() { + return; + } + + void BatteryManager::Unpause() { + return; + } + + void BatteryManager::UnregisterWithDispatcher() { + return; + } + + void BatteryManager::RegisterWithDispatcher() { + return; + } + + void BatteryManager::ContextDestroyed(ExecutionContext*) { + battery_property_ = nullptr; + return; + } + + void BatteryManager::DidUpdateData() { + return; + } + + bool BatteryManager::HasLastData() { + return false; + } +} diff --git a/chromium_src/third_party/blink/renderer/modules/battery/navigator_battery.cc b/chromium_src/third_party/blink/renderer/modules/battery/navigator_battery.cc deleted file mode 100644 index da5fb33686c6..000000000000 --- a/chromium_src/third_party/blink/renderer/modules/battery/navigator_battery.cc +++ /dev/null @@ -1,14 +0,0 @@ -#include "third_party/blink/renderer/modules/battery/navigator_battery.h" - -#include "gin/converter.h" -#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h" -#include "net/proxy_resolution/proxy_resolver_v8.h" - -namespace blink { - ScriptPromise NavigatorBattery::getBattery(ScriptState* script_state, - Navigator& navigator) { - v8::Isolate* isolate = script_state->GetIsolate(); - return blink::ScriptPromise::Reject(script_state, - v8::Exception::TypeError(gin::StringToV8(isolate, "This api has been disabled."))); - } -} // namespace blink diff --git a/test/data/battery.html b/test/data/battery.html index e6eac8ae99d1..6dec85ea8759 100644 --- a/test/data/battery.html +++ b/test/data/battery.html @@ -1,10 +1,16 @@