summaryrefslogtreecommitdiffstats
path: root/dom
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-07-28 15:46:41 +0000
committerMoonchild <moonchild@palemoon.org>2020-07-28 15:46:41 +0000
commitad453f0b28bf1ac30f889abf3ae38e95315295b0 (patch)
treec33683c6009278b1c6e9f049465fb2e4eda890d4 /dom
parentd332d4a60ddc0c82d72706ecb6084af6fed359cc (diff)
downloadUXP-ad453f0b28bf1ac30f889abf3ae38e95315295b0.tar
UXP-ad453f0b28bf1ac30f889abf3ae38e95315295b0.tar.gz
UXP-ad453f0b28bf1ac30f889abf3ae38e95315295b0.tar.lz
UXP-ad453f0b28bf1ac30f889abf3ae38e95315295b0.tar.xz
UXP-ad453f0b28bf1ac30f889abf3ae38e95315295b0.zip
Issue #1391 - Remove the DOM battery API
Diffstat (limited to 'dom')
-rw-r--r--dom/base/Navigator.cpp43
-rw-r--r--dom/base/Navigator.h7
-rwxr-xr-xdom/base/moz.build1
-rw-r--r--dom/battery/BatteryManager.cpp212
-rw-r--r--dom/battery/BatteryManager.h84
-rw-r--r--dom/battery/Constants.h27
-rw-r--r--dom/battery/Types.h23
-rw-r--r--dom/battery/moz.build21
-rw-r--r--dom/battery/test/chrome.ini3
-rw-r--r--dom/battery/test/mochitest.ini1
-rw-r--r--dom/battery/test/test_battery_basics.html39
-rw-r--r--dom/battery/test/test_battery_charging.html35
-rw-r--r--dom/battery/test/test_battery_discharging.html35
-rw-r--r--dom/battery/test/test_battery_unprivileged.html24
-rw-r--r--dom/bindings/moz.build1
-rw-r--r--dom/moz.build1
-rw-r--r--dom/quota/QuotaManagerService.cpp24
-rw-r--r--dom/webidl/BatteryManager.webidl23
-rw-r--r--dom/webidl/Navigator.webidl8
-rw-r--r--dom/webidl/moz.build1
20 files changed, 0 insertions, 613 deletions
diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp
index a544f23c1..53ce2b30f 100644
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -30,7 +30,6 @@
#include "nsUnicharUtils.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
-#include "BatteryManager.h"
#ifdef MOZ_GAMEPAD
#include "mozilla/dom/GamepadServiceTest.h"
#endif
@@ -197,8 +196,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Navigator)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPermissions)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGeolocation)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mNotification)
- NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBatteryManager)
- NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBatteryPromise)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPowerManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mConnection)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStorageManager)
@@ -249,13 +246,6 @@ Navigator::Invalidate()
mNotification = nullptr;
}
- if (mBatteryManager) {
- mBatteryManager->Shutdown();
- mBatteryManager = nullptr;
- }
-
- mBatteryPromise = nullptr;
-
if (mPowerManager) {
mPowerManager->Shutdown();
mPowerManager = nullptr;
@@ -1321,39 +1311,6 @@ Navigator::GetMozNotification(ErrorResult& aRv)
return mNotification;
}
-//*****************************************************************************
-// Navigator::nsINavigatorBattery
-//*****************************************************************************
-
-Promise*
-Navigator::GetBattery(ErrorResult& aRv)
-{
- if (mBatteryPromise) {
- return mBatteryPromise;
- }
-
- if (!mWindow || !mWindow->GetDocShell()) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return nullptr;
- }
-
- nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
- RefPtr<Promise> batteryPromise = Promise::Create(go, aRv);
- if (NS_WARN_IF(aRv.Failed())) {
- return nullptr;
- }
- mBatteryPromise = batteryPromise;
-
- if (!mBatteryManager) {
- mBatteryManager = new battery::BatteryManager(mWindow);
- mBatteryManager->Init();
- }
-
- mBatteryPromise->MaybeResolve(mBatteryManager);
-
- return mBatteryPromise;
-}
-
PowerManager*
Navigator::GetMozPower(ErrorResult& aRv)
{
diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h
index 4ddaaabab..bcc67589e 100644
--- a/dom/base/Navigator.h
+++ b/dom/base/Navigator.h
@@ -51,10 +51,6 @@ namespace dom {
class Permissions;
-namespace battery {
-class BatteryManager;
-} // namespace battery
-
class Promise;
class DesktopNotificationCenter;
@@ -136,7 +132,6 @@ public:
Permissions* GetPermissions(ErrorResult& aRv);
// The XPCOM GetDoNotTrack is ok
Geolocation* GetGeolocation(ErrorResult& aRv);
- Promise* GetBattery(ErrorResult& aRv);
static void AppName(nsAString& aAppName, bool aUsePrefOverriddenValue);
@@ -269,8 +264,6 @@ private:
RefPtr<Permissions> mPermissions;
RefPtr<Geolocation> mGeolocation;
RefPtr<DesktopNotificationCenter> mNotification;
- RefPtr<battery::BatteryManager> mBatteryManager;
- RefPtr<Promise> mBatteryPromise;
RefPtr<PowerManager> mPowerManager;
RefPtr<network::Connection> mConnection;
#ifdef MOZ_AUDIO_CHANNEL_MANAGER
diff --git a/dom/base/moz.build b/dom/base/moz.build
index aadafe412..1de49424b 100755
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
@@ -416,7 +416,6 @@ EXTRA_JS_MODULES += [
]
LOCAL_INCLUDES += [
- '../battery',
'../events',
'../media',
'../network',
diff --git a/dom/battery/BatteryManager.cpp b/dom/battery/BatteryManager.cpp
deleted file mode 100644
index 271fa373d..000000000
--- a/dom/battery/BatteryManager.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* 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 <cmath>
-#include <limits>
-#include "BatteryManager.h"
-#include "Constants.h"
-#include "mozilla/DOMEventTargetHelper.h"
-#include "mozilla/Hal.h"
-#include "mozilla/dom/BatteryManagerBinding.h"
-#include "mozilla/Preferences.h"
-#include "nsContentUtils.h"
-#include "nsIDOMClassInfo.h"
-#include "nsIDocument.h"
-
-/**
- * We have to use macros here because our leak analysis tool things we are
- * leaking strings when we have |static const nsString|. Sad :(
- */
-#define LEVELCHANGE_EVENT_NAME NS_LITERAL_STRING("levelchange")
-#define CHARGINGCHANGE_EVENT_NAME NS_LITERAL_STRING("chargingchange")
-#define DISCHARGINGTIMECHANGE_EVENT_NAME NS_LITERAL_STRING("dischargingtimechange")
-#define CHARGINGTIMECHANGE_EVENT_NAME NS_LITERAL_STRING("chargingtimechange")
-
-namespace mozilla {
-namespace dom {
-namespace battery {
-
-BatteryManager::BatteryManager(nsPIDOMWindowInner* aWindow)
- : DOMEventTargetHelper(aWindow)
- , mLevel(kDefaultLevel)
- , mCharging(kDefaultCharging)
- , mRemainingTime(kDefaultRemainingTime)
-{
-}
-
-void
-BatteryManager::Init()
-{
- hal::RegisterBatteryObserver(this);
-
- hal::BatteryInformation batteryInfo;
- hal::GetCurrentBatteryInformation(&batteryInfo);
-
- UpdateFromBatteryInfo(batteryInfo);
-}
-
-void
-BatteryManager::Shutdown()
-{
- hal::UnregisterBatteryObserver(this);
-}
-
-JSObject*
-BatteryManager::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
-{
- return BatteryManagerBinding::Wrap(aCx, this, aGivenProto);
-}
-
-bool
-BatteryManager::Charging() const
-{
- MOZ_ASSERT(NS_IsMainThread());
- // For testing, unable to report the battery status information
- if (Preferences::GetBool("dom.battery.test.default", false)) {
- return true;
- }
- if (Preferences::GetBool("dom.battery.test.charging", false)) {
- return true;
- }
- if (Preferences::GetBool("dom.battery.test.discharging", false)) {
- return false;
- }
-
- return mCharging;
-}
-
-double
-BatteryManager::DischargingTime() const
-{
- MOZ_ASSERT(NS_IsMainThread());
- // For testing, unable to report the battery status information
- if (Preferences::GetBool("dom.battery.test.default", false)) {
- return std::numeric_limits<double>::infinity();
- }
- if (Preferences::GetBool("dom.battery.test.discharging", false)) {
- return 42.0;
- }
-
- if (Charging() || mRemainingTime == kUnknownRemainingTime) {
- return std::numeric_limits<double>::infinity();
- }
-
- return mRemainingTime;
-}
-
-double
-BatteryManager::ChargingTime() const
-{
- MOZ_ASSERT(NS_IsMainThread());
- // For testing, unable to report the battery status information
- if (Preferences::GetBool("dom.battery.test.default", false)) {
- return 0.0;
- }
- if (Preferences::GetBool("dom.battery.test.charging", false)) {
- return 42.0;
- }
-
- if (!Charging() || mRemainingTime == kUnknownRemainingTime) {
- return std::numeric_limits<double>::infinity();
- }
-
- return mRemainingTime;
-}
-
-double
-BatteryManager::Level() const
-{
- MOZ_ASSERT(NS_IsMainThread());
- // For testing, unable to report the battery status information
- if (Preferences::GetBool("dom.battery.test.default")) {
- return 1.0;
- }
-
- return mLevel;
-}
-
-void
-BatteryManager::UpdateFromBatteryInfo(const hal::BatteryInformation& aBatteryInfo)
-{
- mLevel = aBatteryInfo.level();
-
- // Round to the nearest ten percent for non-chrome and non-certified apps
- nsIDocument* doc = GetOwner() ? GetOwner()->GetDoc() : nullptr;
- uint16_t status = nsIPrincipal::APP_STATUS_NOT_INSTALLED;
- if (doc) {
- status = doc->NodePrincipal()->GetAppStatus();
- }
-
- mCharging = aBatteryInfo.charging();
- mRemainingTime = aBatteryInfo.remainingTime();
-
- if (!nsContentUtils::IsChromeDoc(doc) &&
- status != nsIPrincipal::APP_STATUS_CERTIFIED)
- {
- mLevel = lround(mLevel * 10.0) / 10.0;
- if (mLevel == 1.0) {
- mRemainingTime = mCharging ? kDefaultRemainingTime : kUnknownRemainingTime;
- } else if (mRemainingTime != kUnknownRemainingTime) {
- // Round the remaining time to a multiple of 15 minutes and never zero
- const double MINUTES_15 = 15.0 * 60.0;
- mRemainingTime = fmax(lround(mRemainingTime / MINUTES_15) * MINUTES_15,
- MINUTES_15);
- }
- }
-
- // Add some guards to make sure the values are coherent.
- if (mLevel == 1.0 && mCharging == true &&
- mRemainingTime != kDefaultRemainingTime) {
- mRemainingTime = kDefaultRemainingTime;
- NS_ERROR("Battery API: When charging and level at 1.0, remaining time "
- "should be 0. Please fix your backend!");
- }
-}
-
-void
-BatteryManager::Notify(const hal::BatteryInformation& aBatteryInfo)
-{
- double previousLevel = mLevel;
- bool previousCharging = mCharging;
- double previousRemainingTime = mRemainingTime;
-
- UpdateFromBatteryInfo(aBatteryInfo);
-
- if (previousCharging != mCharging) {
- DispatchTrustedEvent(CHARGINGCHANGE_EVENT_NAME);
- }
-
- if (previousLevel != mLevel) {
- DispatchTrustedEvent(LEVELCHANGE_EVENT_NAME);
- }
-
- /*
- * There are a few situations that could happen here:
- * 1. Charging state changed:
- * a. Previous remaining time wasn't unkwonw, we have to fire an event for
- * the change.
- * b. New remaining time isn't unkwonw, we have to fire an event for it.
- * 2. Charging state didn't change but remainingTime did, we have to fire
- * the event that correspond to the current charging state.
- */
- if (mCharging != previousCharging) {
- if (previousRemainingTime != kUnknownRemainingTime) {
- DispatchTrustedEvent(previousCharging ? CHARGINGTIMECHANGE_EVENT_NAME
- : DISCHARGINGTIMECHANGE_EVENT_NAME);
- }
- if (mRemainingTime != kUnknownRemainingTime) {
- DispatchTrustedEvent(mCharging ? CHARGINGTIMECHANGE_EVENT_NAME
- : DISCHARGINGTIMECHANGE_EVENT_NAME);
- }
- } else if (previousRemainingTime != mRemainingTime) {
- DispatchTrustedEvent(mCharging ? CHARGINGTIMECHANGE_EVENT_NAME
- : DISCHARGINGTIMECHANGE_EVENT_NAME);
- }
-}
-
-} // namespace battery
-} // namespace dom
-} // namespace mozilla
diff --git a/dom/battery/BatteryManager.h b/dom/battery/BatteryManager.h
deleted file mode 100644
index 4094c40d4..000000000
--- a/dom/battery/BatteryManager.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* 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/. */
-
-#ifndef mozilla_dom_battery_BatteryManager_h
-#define mozilla_dom_battery_BatteryManager_h
-
-#include "Types.h"
-#include "mozilla/DOMEventTargetHelper.h"
-#include "mozilla/Observer.h"
-#include "nsCycleCollectionParticipant.h"
-
-namespace mozilla {
-
-namespace hal {
-class BatteryInformation;
-} // namespace hal
-
-namespace dom {
-namespace battery {
-
-class BatteryManager : public DOMEventTargetHelper
- , public BatteryObserver
-{
-public:
- explicit BatteryManager(nsPIDOMWindowInner* aWindow);
-
- void Init();
- void Shutdown();
-
- // For IObserver.
- void Notify(const hal::BatteryInformation& aBatteryInfo) override;
-
- /**
- * WebIDL Interface
- */
-
- nsPIDOMWindowInner* GetParentObject() const
- {
- return GetOwner();
- }
-
- virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
-
- bool Charging() const;
-
- double ChargingTime() const;
-
- double DischargingTime() const;
-
- double Level() const;
-
- IMPL_EVENT_HANDLER(chargingchange)
- IMPL_EVENT_HANDLER(chargingtimechange)
- IMPL_EVENT_HANDLER(dischargingtimechange)
- IMPL_EVENT_HANDLER(levelchange)
-
-private:
- /**
- * Update the battery information stored in the battery manager object using
- * a battery information object.
- */
- void UpdateFromBatteryInfo(const hal::BatteryInformation& aBatteryInfo);
-
- /**
- * Represents the battery level, ranging from 0.0 (dead or removed?)
- * to 1.0 (fully charged)
- */
- double mLevel;
- bool mCharging;
- /**
- * Represents the discharging time or the charging time, depending on the
- * current battery status (charging or not).
- */
- double mRemainingTime;
-};
-
-} // namespace battery
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_battery_BatteryManager_h
diff --git a/dom/battery/Constants.h b/dom/battery/Constants.h
deleted file mode 100644
index f642e2a46..000000000
--- a/dom/battery/Constants.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* 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/. */
-
-#ifndef mozilla_dom_battery_Constants_h__
-#define mozilla_dom_battery_Constants_h__
-
-/**
- * A set of constants that might need to be used by battery backends.
- * It's not part of BatteryManager.h to prevent those backends to include it.
- */
-namespace mozilla {
-namespace dom {
-namespace battery {
-
- static const double kDefaultLevel = 1.0;
- static const bool kDefaultCharging = true;
- static const double kDefaultRemainingTime = 0;
- static const double kUnknownRemainingTime = -1;
-
-} // namespace battery
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_battery_Constants_h__
diff --git a/dom/battery/Types.h b/dom/battery/Types.h
deleted file mode 100644
index ee55a26d3..000000000
--- a/dom/battery/Types.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* 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/. */
-
-#ifndef mozilla_dom_battery_Types_h
-#define mozilla_dom_battery_Types_h
-
-namespace mozilla {
-namespace hal {
-class BatteryInformation;
-} // namespace hal
-
-template <class T>
-class Observer;
-
-typedef Observer<hal::BatteryInformation> BatteryObserver;
-
-} // namespace mozilla
-
-#endif // mozilla_dom_battery_Types_h
-
diff --git a/dom/battery/moz.build b/dom/battery/moz.build
deleted file mode 100644
index e3743c40b..000000000
--- a/dom/battery/moz.build
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-EXPORTS.mozilla.dom.battery += [
- 'Constants.h',
- 'Types.h',
-]
-
-SOURCES += [
- 'BatteryManager.cpp',
-]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-FINAL_LIBRARY = 'xul'
-
-MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
-MOCHITEST_MANIFESTS += ['test/mochitest.ini']
diff --git a/dom/battery/test/chrome.ini b/dom/battery/test/chrome.ini
deleted file mode 100644
index ced199bff..000000000
--- a/dom/battery/test/chrome.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[test_battery_basics.html]
-[test_battery_charging.html]
-[test_battery_discharging.html]
diff --git a/dom/battery/test/mochitest.ini b/dom/battery/test/mochitest.ini
deleted file mode 100644
index 4d8307930..000000000
--- a/dom/battery/test/mochitest.ini
+++ /dev/null
@@ -1 +0,0 @@
-[test_battery_unprivileged.html]
diff --git a/dom/battery/test/test_battery_basics.html b/dom/battery/test/test_battery_basics.html
deleted file mode 100644
index 96f7f3368..000000000
--- a/dom/battery/test/test_battery_basics.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for Battery API</title>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-SimpleTest.waitForExplicitFinish();
-
-/** Test for Battery API **/
-ok("getBattery" in navigator, "navigator.getBattery should exist");
-ok(!("battery" in navigator), "navigator.battery should not exist");
-
-navigator.getBattery().then(function (battery) {
- ok(battery.level >= 0.0 && battery.level <= 1.0, "Battery level " + battery.level + " should be in the range [0.0, 1.0]");
-
- SpecialPowers.pushPrefEnv({"set": [["dom.battery.test.default", true]]}, function () {
- ok(battery.charging, "Battery should be charging by default");
- is(battery.chargingTime, 0, "Battery chargingTime " + battery.chargingTime + " should be zero by default");
- is(battery.dischargingTime, Infinity, "Battery dischargingTime should be Infinity by default");
- is(battery.level, 1.0, "Battery level " + battery.level + " should be 1.0 by default");
-
- SimpleTest.finish();
- });
-});
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/battery/test/test_battery_charging.html b/dom/battery/test/test_battery_charging.html
deleted file mode 100644
index 5d1e83284..000000000
--- a/dom/battery/test/test_battery_charging.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for Battery API</title>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-SimpleTest.waitForExplicitFinish();
-
-/** Test for Battery API **/
-navigator.getBattery().then(function (battery) {
- ok(battery.level >= 0.0 && battery.level <= 1.0, "Battery level " + battery.level + " should be in the range [0.0, 1.0]");
-
- SpecialPowers.pushPrefEnv({"set": [["dom.battery.test.charging", true]]}, function () {
- is(battery.charging, true, "Battery should be charging");
- ok(battery.chargingTime >= 0, "Battery chargingTime " + battery.chargingTime + " should be nonnegative when charging");
- is(battery.dischargingTime, Infinity, "Battery dischargingTime should be Infinity when charging");
-
- SimpleTest.finish();
- });
-});
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/battery/test/test_battery_discharging.html b/dom/battery/test/test_battery_discharging.html
deleted file mode 100644
index 26a0359d3..000000000
--- a/dom/battery/test/test_battery_discharging.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for Battery API</title>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-SimpleTest.waitForExplicitFinish();
-
-/** Test for Battery API **/
-navigator.getBattery().then(function (battery) {
- ok(battery.level >= 0.0 && battery.level <= 1.0, "Battery level " + battery.level + " should be in the range [0.0, 1.0]");
-
- SpecialPowers.pushPrefEnv({"set": [["dom.battery.test.discharging", true]]}, function () {
- is(battery.charging, false, "Battery should be discharging");
- is(battery.chargingTime, Infinity, "Battery chargingTime should be Infinity when discharging");
- ok(battery.dischargingTime > 0, "Battery dischargingTime " + battery.dischargingTime + " should be positive when discharging");
-
- SimpleTest.finish();
- });
-});
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/battery/test/test_battery_unprivileged.html b/dom/battery/test/test_battery_unprivileged.html
deleted file mode 100644
index e56db8ac7..000000000
--- a/dom/battery/test/test_battery_unprivileged.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for Battery API</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-/** Test for Battery API **/
-ok(!("getBattery" in navigator), "navigator.getBattery should not exist for unprivileged web content");
-ok(!("battery" in navigator), "navigator.battery should not exist");
-
-</script>
-</pre>
-</body>
-</html>
diff --git a/dom/bindings/moz.build b/dom/bindings/moz.build
index 649689c41..8fc62ba99 100644
--- a/dom/bindings/moz.build
+++ b/dom/bindings/moz.build
@@ -64,7 +64,6 @@ LOCAL_INCLUDES += [
LOCAL_INCLUDES += [
'/dom/base',
- '/dom/battery',
'/dom/canvas',
'/dom/geolocation',
'/dom/html',
diff --git a/dom/moz.build b/dom/moz.build
index 7888ccd69..e232f3443 100644
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -43,7 +43,6 @@ DIRS += [
'base',
'archivereader',
'bindings',
- 'battery',
'browser-element',
'cache',
'canvas',
diff --git a/dom/quota/QuotaManagerService.cpp b/dom/quota/QuotaManagerService.cpp
index bd811dc9b..22b5d17b1 100644
--- a/dom/quota/QuotaManagerService.cpp
+++ b/dom/quota/QuotaManagerService.cpp
@@ -432,30 +432,6 @@ QuotaManagerService::PerformIdleMaintenance()
MOZ_ASSERT(XRE_IsParentProcess());
MOZ_ASSERT(NS_IsMainThread());
- // If we're running on battery power then skip all idle maintenance since we
- // would otherwise be doing lots of disk I/O.
- BatteryInformation batteryInfo;
-
-#ifdef MOZ_WIDGET_ANDROID
- // Android XPCShell doesn't load the AndroidBridge that is needed to make
- // GetCurrentBatteryInformation work...
- if (!QuotaManager::IsRunningXPCShellTests())
-#endif
- {
- GetCurrentBatteryInformation(&batteryInfo);
- }
-
- // If we're running XPCShell because we always want to be able to test this
- // code so pretend that we're always charging.
- if (QuotaManager::IsRunningXPCShellTests()) {
- batteryInfo.level() = 100;
- batteryInfo.charging() = true;
- }
-
- if (NS_WARN_IF(!batteryInfo.charging())) {
- return;
- }
-
if (QuotaManager::IsRunningXPCShellTests()) {
// We don't want user activity to impact this code if we're running tests.
Unused << Observe(nullptr, OBSERVER_TOPIC_IDLE, nullptr);
diff --git a/dom/webidl/BatteryManager.webidl b/dom/webidl/BatteryManager.webidl
deleted file mode 100644
index a964f3b0b..000000000
--- a/dom/webidl/BatteryManager.webidl
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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/.
- *
- * The origin of this IDL file is
- * http://www.w3.org/TR/battery-status/
- *
- * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
- * liability, trademark and document use rules apply.
- */
-
-interface BatteryManager : EventTarget {
- readonly attribute boolean charging;
- readonly attribute unrestricted double chargingTime;
- readonly attribute unrestricted double dischargingTime;
- readonly attribute double level;
-
- attribute EventHandler onchargingchange;
- attribute EventHandler onchargingtimechange;
- attribute EventHandler ondischargingtimechange;
- attribute EventHandler onlevelchange;
-};
diff --git a/dom/webidl/Navigator.webidl b/dom/webidl/Navigator.webidl
index 4536d7d25..f34429de7 100644
--- a/dom/webidl/Navigator.webidl
+++ b/dom/webidl/Navigator.webidl
@@ -7,7 +7,6 @@
* http://www.whatwg.org/specs/web-apps/current-work/#the-navigator-object
* http://www.w3.org/TR/tracking-dnt/
* http://www.w3.org/TR/geolocation-API/#geolocation_interface
- * http://www.w3.org/TR/battery-status/#navigatorbattery-interface
* http://www.w3.org/TR/vibration/#vibration-interface
* http://www.w3.org/2012/sysapps/runtime/#extension-to-the-navigator-interface-1
* https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension
@@ -125,13 +124,6 @@ interface NavigatorGeolocation {
};
Navigator implements NavigatorGeolocation;
-// http://www.w3.org/TR/battery-status/#navigatorbattery-interface
-partial interface Navigator {
- // ChromeOnly to prevent web content from fingerprinting users' batteries.
- [Throws, ChromeOnly, Pref="dom.battery.enabled"]
- Promise<BatteryManager> getBattery();
-};
-
// http://www.w3.org/TR/vibration/#vibration-interface
partial interface Navigator {
// We don't support sequences in unions yet
diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build
index d8309c265..687e502fa 100644
--- a/dom/webidl/moz.build
+++ b/dom/webidl/moz.build
@@ -50,7 +50,6 @@ WEBIDL_FILES = [
'AutocompleteInfo.webidl',
'BarProp.webidl',
'BaseKeyframeTypes.webidl',
- 'BatteryManager.webidl',
'BeforeAfterKeyboardEvent.webidl',
'BeforeUnloadEvent.webidl',
'BiquadFilterNode.webidl',