Bug 1351089 - Remove unused PresentationDeviceInfoManager.jsm r?schien,r?smaug draft
authorDan Banner <dbugs@thebanners.uk>
Mon, 03 Jul 2017 19:51:01 +0100
changeset 605361 ed78e75d6f1898676ef343cf91895ccde118357b
parent 603312 a3b192dc8344679ce208af42b6246c3c0d42cab3
child 636478 ad9a3e6ccdb7f792bd3b5d3e5497ee66702509e6
push id67393
push userbmo:dbugs@thebanners.uk
push dateFri, 07 Jul 2017 16:25:58 +0000
reviewersschien, smaug
bugs1351089
milestone56.0a1
Bug 1351089 - Remove unused PresentationDeviceInfoManager.jsm r?schien,r?smaug MozReview-Commit-ID: FoMZNIFtgFM
browser/base/content/test/static/browser_all_files_referenced.js
browser/installer/package-manifest.in
dom/presentation/PresentationDeviceInfoManager.js
dom/presentation/PresentationDeviceInfoManager.jsm
dom/presentation/PresentationDeviceInfoManager.manifest
dom/presentation/moz.build
dom/presentation/tests/mochitest/PresentationDeviceInfoChromeScript.js
dom/presentation/tests/mochitest/chrome.ini
dom/presentation/tests/mochitest/mochitest.ini
dom/presentation/tests/mochitest/test_presentation_device_info.html
dom/presentation/tests/mochitest/test_presentation_device_info_permission.html
dom/tests/mochitest/general/test_interfaces.js
dom/webidl/PresentationDeviceInfoManager.webidl
dom/webidl/moz.build
mobile/android/installer/package-manifest.in
tools/lint/eslint/modules.json
--- a/browser/base/content/test/static/browser_all_files_referenced.js
+++ b/browser/base/content/test/static/browser_all_files_referenced.js
@@ -161,18 +161,16 @@ var whitelist = [
   // Bug 1351078
   {file: "resource://gre/modules/Battery.jsm"},
   // Bug 1351070
   {file: "resource://gre/modules/ContentPrefInstance.jsm"},
   // Bug 1351079
   {file: "resource://gre/modules/ISO8601DateUtils.jsm"},
   // Bug 1337345
   {file: "resource://gre/modules/Manifest.jsm"},
-  // Bug 1351089
-  {file: "resource://gre/modules/PresentationDeviceInfoManager.jsm"},
   // Bug 1351097
   {file: "resource://gre/modules/accessibility/AccessFu.jsm"},
   // Bug 1351637
   {file: "resource://gre/modules/sdk/bootstrap.js"},
 
 ];
 
 if (!AppConstants.MOZ_PHOTON_THEME) {
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -543,18 +543,16 @@
 
 #ifdef MOZ_WEBSPEECH
 @RESPATH@/components/dom_webspeechsynth.xpt
 #endif
 
 @RESPATH@/components/nsAsyncShutdown.manifest
 @RESPATH@/components/nsAsyncShutdown.js
 
-@RESPATH@/components/PresentationDeviceInfoManager.manifest
-@RESPATH@/components/PresentationDeviceInfoManager.js
 @RESPATH@/components/BuiltinProviders.manifest
 @RESPATH@/components/PresentationControlService.js
 @RESPATH@/components/PresentationDataChannelSessionTransport.js
 @RESPATH@/components/PresentationDataChannelSessionTransport.manifest
 
 #ifdef ENABLE_INTL_API
 @RESPATH@/components/mozIntl.manifest
 @RESPATH@/components/mozIntl.js
deleted file mode 100644
--- a/dom/presentation/PresentationDeviceInfoManager.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/* 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/. */
-
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/DOMRequestHelper.jsm");
-
-function log(aMsg) {
-  //dump("-*- PresentationDeviceInfoManager.js : " + aMsg + "\n");
-}
-
-const PRESENTATIONDEVICEINFOMANAGER_CID = Components.ID("{1bd66bef-f643-4be3-b690-0c656353eafd}");
-const PRESENTATIONDEVICEINFOMANAGER_CONTRACTID = "@mozilla.org/presentation-device/deviceInfo;1";
-
-XPCOMUtils.defineLazyServiceGetter(this, "cpmm",
-                                   "@mozilla.org/childprocessmessagemanager;1",
-                                   "nsIMessageSender");
-
-function PresentationDeviceInfoManager() {}
-
-PresentationDeviceInfoManager.prototype = {
-  __proto__: DOMRequestIpcHelper.prototype,
-
-  classID: PRESENTATIONDEVICEINFOMANAGER_CID,
-  contractID: PRESENTATIONDEVICEINFOMANAGER_CONTRACTID,
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference,
-                                         Ci.nsIObserver,
-                                         Ci.nsIDOMGlobalPropertyInitializer]),
-
-  receiveMessage: function(aMsg) {
-    if (!aMsg || !aMsg.data) {
-      return;
-    }
-
-    let data = aMsg.data;
-
-    log("receive aMsg: " + aMsg.name);
-    switch (aMsg.name) {
-      case "PresentationDeviceInfoManager:OnDeviceChange": {
-        let detail = {
-          detail: {
-            type: data.type,
-            deviceInfo: data.deviceInfo,
-          }
-        };
-        let event = new this._window.CustomEvent("devicechange", Cu.cloneInto(detail, this._window));
-        this.__DOM_IMPL__.dispatchEvent(event);
-        break;
-      }
-      case "PresentationDeviceInfoManager:GetAll:Result:Ok": {
-        let resolver = this.takePromiseResolver(data.requestId);
-
-        if (!resolver) {
-          return;
-        }
-
-        resolver.resolve(Cu.cloneInto(data.devices, this._window));
-        break;
-      }
-      case "PresentationDeviceInfoManager:GetAll:Result:Error": {
-        let resolver = this.takePromiseResolver(data.requestId);
-
-        if (!resolver) {
-          return;
-        }
-
-        resolver.reject(data.error);
-        break;
-      }
-    }
-  },
-
-  init: function(aWin) {
-    log("init");
-    this.initDOMRequestHelper(aWin, [
-      {name: "PresentationDeviceInfoManager:OnDeviceChange", weakRef: true},
-      {name: "PresentationDeviceInfoManager:GetAll:Result:Ok", weakRef: true},
-      {name: "PresentationDeviceInfoManager:GetAll:Result:Error", weakRef: true},
-    ]);
-  },
-
-  uninit: function() {
-    log("uninit");
-    let self = this;
-
-    this.forEachPromiseResolver(function(aKey) {
-      self.takePromiseResolver(aKey).reject("PresentationDeviceInfoManager got destroyed");
-    });
-  },
-
-  get ondevicechange() {
-    return this.__DOM_IMPL__.getEventHandler("ondevicechange");
-  },
-
-  set ondevicechange(aHandler) {
-    this.__DOM_IMPL__.setEventHandler("ondevicechange", aHandler);
-  },
-
-  getAll: function() {
-    log("getAll");
-    let self = this;
-    return this.createPromiseWithId(function(aResolverId) {
-      cpmm.sendAsyncMessage("PresentationDeviceInfoManager:GetAll", {
-        requestId: aResolverId,
-      });
-    });
-  },
-
-  forceDiscovery: function() {
-    cpmm.sendAsyncMessage("PresentationDeviceInfoManager:ForceDiscovery");
-  },
-};
-
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PresentationDeviceInfoManager]);
deleted file mode 100644
--- a/dom/presentation/PresentationDeviceInfoManager.jsm
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- /
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-/* 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/. */
-
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
-this.EXPORTED_SYMBOLS = ["PresentationDeviceInfoService"];
-
-function log(aMsg) {
-  //dump("PresentationDeviceInfoManager.jsm: " + aMsg + "\n");
-}
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-XPCOMUtils.defineLazyServiceGetter(this, "presentationDeviceManager",
-                                   "@mozilla.org/presentation-device/manager;1",
-                                   "nsIPresentationDeviceManager");
-
-XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
-                                   "@mozilla.org/parentprocessmessagemanager;1",
-                                   "nsIMessageBroadcaster");
-
-this.PresentationDeviceInfoService = {
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsIMessageListener,
-                                         Ci.nsIObserver]),
-
-  init: function() {
-    log("init");
-    ppmm.addMessageListener("PresentationDeviceInfoManager:GetAll", this);
-    ppmm.addMessageListener("PresentationDeviceInfoManager:ForceDiscovery", this);
-    Services.obs.addObserver(this, "presentation-device-change");
-  },
-
-  getAll: function(aData, aMm) {
-    log("getAll");
-    let deviceArray = presentationDeviceManager.getAvailableDevices().QueryInterface(Ci.nsIArray);
-    if (!deviceArray) {
-      aData.error = "DataError";
-      aMm.sendAsyncMessage("PresentationDeviceInfoManager:GetAll:Result:Error", aData);
-      return;
-    }
-
-    aData.devices = [];
-    for (let i = 0; i < deviceArray.length; i++) {
-      let device = deviceArray.queryElementAt(i, Ci.nsIPresentationDevice);
-      aData.devices.push({
-        id: device.id,
-        name: device.name,
-        type: device.type,
-      });
-    }
-    aMm.sendAsyncMessage("PresentationDeviceInfoManager:GetAll:Result:Ok", aData);
-  },
-
-  forceDiscovery: function() {
-    log("forceDiscovery");
-    presentationDeviceManager.forceDiscovery();
-  },
-
-  observe: function(aSubject, aTopic, aData) {
-    log("observe: " + aTopic);
-
-    let device = aSubject.QueryInterface(Ci.nsIPresentationDevice);
-    let data = {
-      type: aData,
-      deviceInfo: {
-        id: device.id,
-        name: device.name,
-        type: device.type,
-      },
-    };
-    ppmm.broadcastAsyncMessage("PresentationDeviceInfoManager:OnDeviceChange", data);
-  },
-
-  receiveMessage: function(aMessage) {
-    let msg = aMessage.data || {};
-    let mm = aMessage.target;
-
-    log("receiveMessage: " + aMessage.name);
-    switch (aMessage.name) {
-      case "PresentationDeviceInfoManager:GetAll": {
-        this.getAll(msg, mm);
-        break;
-      }
-      case "PresentationDeviceInfoManager:ForceDiscovery": {
-        this.forceDiscovery();
-        break;
-      }
-    }
-  },
-};
-
-this.PresentationDeviceInfoService.init();
deleted file mode 100644
--- a/dom/presentation/PresentationDeviceInfoManager.manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-# PresentationDeviceInfoManager.js
-component {1bd66bef-f643-4be3-b690-0c656353eafd} PresentationDeviceInfoManager.js
-contract @mozilla.org/presentation-device/deviceInfo;1 {1bd66bef-f643-4be3-b690-0c656353eafd}
--- a/dom/presentation/moz.build
+++ b/dom/presentation/moz.build
@@ -58,30 +58,24 @@ UNIFIED_SOURCES += [
     'PresentationTCPSessionTransport.cpp',
     'PresentationTerminateRequest.cpp',
     'PresentationTransportBuilderConstructor.cpp'
 ]
 
 EXTRA_COMPONENTS += [
     'PresentationDataChannelSessionTransport.js',
     'PresentationDataChannelSessionTransport.manifest',
-    'PresentationDeviceInfoManager.js',
-    'PresentationDeviceInfoManager.manifest',
 ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
     EXTRA_COMPONENTS += [
         'PresentationNetworkHelper.js',
         'PresentationNetworkHelper.manifest',
     ]
 
-EXTRA_JS_MODULES += [
-    'PresentationDeviceInfoManager.jsm',
-]
-
 IPDL_SOURCES += [
     'ipc/PPresentation.ipdl',
     'ipc/PPresentationBuilder.ipdl',
     'ipc/PPresentationRequest.ipdl'
 ]
 
 LOCAL_INCLUDES += [
     '../base'
--- a/dom/presentation/tests/mochitest/PresentationDeviceInfoChromeScript.js
+++ b/dom/presentation/tests/mochitest/PresentationDeviceInfoChromeScript.js
@@ -1,17 +1,15 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 'use strict';
 
 const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
 
-Cu.import('resource://gre/modules/PresentationDeviceInfoManager.jsm');
-
 const { XPCOMUtils } = Cu.import('resource://gre/modules/XPCOMUtils.jsm');
 
 const manager = Cc['@mozilla.org/presentation-device/manager;1']
                   .getService(Ci.nsIPresentationDeviceManager);
 
 var testProvider = {
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationDeviceProvider]),
   forceDiscovery: function() {
--- a/dom/presentation/tests/mochitest/chrome.ini
+++ b/dom/presentation/tests/mochitest/chrome.ini
@@ -1,14 +1,13 @@
 [DEFAULT]
 support-files =
   PresentationDeviceInfoChromeScript.js
   PresentationSessionChromeScript.js
 
 [test_presentation_datachannel_sessiontransport.html]
 skip-if = os == 'android'
-[test_presentation_device_info.html]
 [test_presentation_sender_startWithDevice.html]
 skip-if = toolkit == 'android' # Bug 1129785
 [test_presentation_tcp_sender.html]
 skip-if = toolkit == 'android' # Bug 1129785
 [test_presentation_tcp_sender_default_request.html]
 skip-if = toolkit == 'android' # Bug 1129785
--- a/dom/presentation/tests/mochitest/mochitest.ini
+++ b/dom/presentation/tests/mochitest/mochitest.ini
@@ -34,17 +34,16 @@ skip-if = (e10s || toolkit == 'android')
 [test_presentation_1ua_sender_and_receiver_inproc.html]
 skip-if = (e10s || toolkit == 'android') # Bug 1129785
 [test_presentation_1ua_sender_and_receiver_oop.html]
 skip-if = (e10s || toolkit == 'android') # Bug 1129785
 [test_presentation_1ua_connection_wentaway_inproc.html]
 skip-if = (e10s || toolkit == 'android') # Bug 1129785
 [test_presentation_1ua_connection_wentaway_oop.html]
 skip-if = (e10s || toolkit == 'android') # Bug 1129785
-[test_presentation_device_info_permission.html]
 [test_presentation_tcp_sender_disconnect.html]
 skip-if = toolkit == 'android' # Bug 1129785
 [test_presentation_tcp_sender_establish_connection_error.html]
 skip-if = toolkit == 'android' # Bug 1129785
 [test_presentation_tcp_receiver_establish_connection_error.html]
 skip-if = (e10s || toolkit == 'android' || os == 'mac' || os == 'win') # Bug 1129785, Bug 1204709
 [test_presentation_tcp_receiver_establish_connection_timeout.html]
 skip-if = (e10s || toolkit == 'android') # Bug 1129785
deleted file mode 100644
--- a/dom/presentation/tests/mochitest/test_presentation_device_info.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!-- Any copyright is dedicated to the Public Domain.
-   - http://creativecommons.org/publicdomain/zero/1.0/ -->
-<head>
-  <meta charset="utf-8">
-  <title>Test for B2G Presentation Device Info API</title>
-  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
-  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1080474">Test for B2G Presentation Device Info API</a>
-<script type="application/javascript">
-
-'use strict';
-
-SimpleTest.waitForExplicitFinish();
-
-var testDevice = {
-  id: 'id',
-  name: 'name',
-  type: 'type',
-};
-
-var gUrl = SimpleTest.getTestFileURL('PresentationDeviceInfoChromeScript.js');
-var gScript = SpecialPowers.loadChromeScript(gUrl);
-
-function testSetup() {
-  return new Promise(function(resolve, reject) {
-    gScript.addMessageListener('setup-complete', function() {
-      resolve();
-    });
-    gScript.sendAsyncMessage('setup');
-  });
-}
-
-function testForceDiscovery() {
-  info('test force discovery');
-  return new Promise(function(resolve, reject) {
-    gScript.addMessageListener('force-discovery', function() {
-      ok(true, 'nsIPresentationDeviceProvider.forceDiscovery is invoked');
-      resolve();
-    });
-    navigator.mozPresentationDeviceInfo.forceDiscovery();
-  });
-}
-
-function testDeviceAdd() {
-  info('test device add');
-  return new Promise(function(resolve, reject) {
-    navigator.mozPresentationDeviceInfo.addEventListener('devicechange', function(e) {
-      let detail = e.detail;
-      is(detail.type, 'add', 'expected update type');
-      is(detail.deviceInfo.id, testDevice.id, 'expected device id');
-      is(detail.deviceInfo.name, testDevice.name, 'expected device name');
-      is(detail.deviceInfo.type, testDevice.type, 'expected device type');
-
-      navigator.mozPresentationDeviceInfo.getAll()
-      .then(function(devices) {
-        is(devices.length, 1, 'expected 1 available device');
-        is(devices[0].id, testDevice.id, 'expected device id');
-        is(devices[0].name, testDevice.name, 'expected device name');
-        is(devices[0].type, testDevice.type, 'expected device type');
-        resolve();
-      });
-    }, {once: true});
-    gScript.sendAsyncMessage('trigger-device-add', testDevice);
-  });
-}
-
-function testDeviceUpdate() {
-  info('test device update');
-  return new Promise(function(resolve, reject) {
-    testDevice.name = 'name-update';
-
-    navigator.mozPresentationDeviceInfo.addEventListener('devicechange', function(e) {
-      let detail = e.detail;
-      is(detail.type, 'update', 'expected update type');
-      is(detail.deviceInfo.id, testDevice.id, 'expected device id');
-      is(detail.deviceInfo.name, testDevice.name, 'expected device name');
-      is(detail.deviceInfo.type, testDevice.type, 'expected device type');
-
-      navigator.mozPresentationDeviceInfo.getAll()
-      .then(function(devices) {
-        is(devices.length, 1, 'expected 1 available device');
-        is(devices[0].id, testDevice.id, 'expected device id');
-        is(devices[0].name, testDevice.name, 'expected device name');
-        is(devices[0].type, testDevice.type, 'expected device type');
-        resolve();
-      });
-    }, {once: true});
-    gScript.sendAsyncMessage('trigger-device-update', testDevice);
-  });
-}
-
-function testDeviceRemove() {
-  info('test device remove');
-  return new Promise(function(resolve, reject) {
-    navigator.mozPresentationDeviceInfo.addEventListener('devicechange', function(e) {
-      let detail = e.detail;
-      is(detail.type, 'remove', 'expected update type');
-      is(detail.deviceInfo.id, testDevice.id, 'expected device id');
-      is(detail.deviceInfo.name, testDevice.name, 'expected device name');
-      is(detail.deviceInfo.type, testDevice.type, 'expected device type');
-
-      navigator.mozPresentationDeviceInfo.getAll()
-      .then(function(devices) {
-        is(devices.length, 0, 'expected 0 available device');
-        resolve();
-      });
-    }, {once: true});
-    gScript.sendAsyncMessage('trigger-device-remove');
-  });
-}
-
-function runTests() {
-  testSetup()
-  .then(testForceDiscovery)
-  .then(testDeviceAdd)
-  .then(testDeviceUpdate)
-  .then(testDeviceRemove)
-  .then(function() {
-    info('test finished, teardown');
-    gScript.sendAsyncMessage('teardown', '');
-    gScript.destroy();
-    SimpleTest.finish();
-  });
-}
-
-window.addEventListener('load', function() {
-  SpecialPowers.pushPrefEnv({
-    'set': [
-      ['dom.presentation.enabled', true],
-    ]
-  }, runTests);
-});
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/presentation/tests/mochitest/test_presentation_device_info_permission.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!-- Any copyright is dedicated to the Public Domain.
-   - http://creativecommons.org/publicdomain/zero/1.0/ -->
-<head>
-  <meta charset="utf-8">
-  <title>Test for B2G Presentation Device Info API Permission</title>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1080474">Test for B2G Presentation Device Info API Permission</a>
-<script type="application/javascript">
-
-'use strict';
-
-SimpleTest.waitForExplicitFinish();
-
-function runTests() {
-  is(navigator.mozPresentationDeviceInfo, undefined, 'navigator.mozPresentationDeviceInfo is undefined');
-  SimpleTest.finish();
-}
-
-window.addEventListener('load', function() {
-  SpecialPowers.pushPrefEnv({
-    'set': [
-      ['dom.presentation.enabled', true],
-    ]
-  }, runTests);
-});
-
-</script>
-</pre>
-</body>
-</html>
--- a/dom/tests/mochitest/general/test_interfaces.js
+++ b/dom/tests/mochitest/general/test_interfaces.js
@@ -751,19 +751,16 @@ var interfaceNamesInGlobalScope =
     {name: "PointerEvent", nightly: true, desktop: true, android: false},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     "PopStateEvent",
 // IMPORTANT: Do not change this list without review from a DOM peer!
     "PopupBlockedEvent",
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "PopupBoxObject", xbl: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "PresentationDeviceInfoManager",
-     disabled: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "Presentation", desktop: false, release: false },
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "PresentationAvailability", desktop: false, release: false },
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "PresentationConnection", desktop: false, release: false},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "PresentationConnectionAvailableEvent", desktop: false, release: false },
 // IMPORTANT: Do not change this list without review from a DOM peer!
deleted file mode 100644
--- a/dom/webidl/PresentationDeviceInfoManager.webidl
+++ /dev/null
@@ -1,26 +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/.
- */
-
-dictionary PresentationDeviceInfo {
-  DOMString id;
-  DOMString name;
-  DOMString type;
-};
-
-[NavigatorProperty="mozPresentationDeviceInfo",
- JSImplementation="@mozilla.org/presentation-device/deviceInfo;1",
- Pref="dom.presentation.enabled",
- ChromeOnly]
-interface PresentationDeviceInfoManager : EventTarget {
-  // notify if any device updated.
-  attribute EventHandler ondevicechange;
-
-  // retrieve all available device infos
-  Promise<sequence<PresentationDeviceInfo>> getAll();
-
-  // Force all registered device provider to update device information.
-  void forceDiscovery();
-};
--- a/dom/webidl/moz.build
+++ b/dom/webidl/moz.build
@@ -746,17 +746,16 @@ WEBIDL_FILES = [
     'PopupBoxObject.webidl',
     'Position.webidl',
     'PositionError.webidl',
     'PrecompiledScript.webidl',
     'Presentation.webidl',
     'PresentationAvailability.webidl',
     'PresentationConnection.webidl',
     'PresentationConnectionList.webidl',
-    'PresentationDeviceInfoManager.webidl',
     'PresentationReceiver.webidl',
     'PresentationRequest.webidl',
     'ProcessingInstruction.webidl',
     'ProfileTimelineMarker.webidl',
     'Promise.webidl',
     'PromiseDebugging.webidl',
     'PushEvent.webidl',
     'PushManager.webidl',
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -390,18 +390,16 @@
 
 @BINPATH@/components/nsAsyncShutdown.manifest
 @BINPATH@/components/nsAsyncShutdown.js
 
 @BINPATH@/components/Downloads.manifest
 @BINPATH@/components/DownloadLegacy.js
 
 #ifndef MOZ_GECKOVIEW_JAR
-@BINPATH@/components/PresentationDeviceInfoManager.manifest
-@BINPATH@/components/PresentationDeviceInfoManager.js
 @BINPATH@/components/BuiltinProviders.manifest
 @BINPATH@/components/PresentationControlService.js
 @BINPATH@/components/PresentationNetworkHelper.js
 @BINPATH@/components/PresentationNetworkHelper.manifest
 @BINPATH@/components/PresentationDataChannelSessionTransport.js
 @BINPATH@/components/PresentationDataChannelSessionTransport.manifest
 @BINPATH@/components/AndroidCastDeviceProvider.manifest
 @BINPATH@/components/AndroidCastDeviceProvider.js
--- a/tools/lint/eslint/modules.json
+++ b/tools/lint/eslint/modules.json
@@ -162,17 +162,16 @@
   "PdfJsNetwork.jsm": ["NetworkManager"],
   "PhoneNumberMetaData.jsm": ["PHONE_NUMBER_META_DATA"],
   "PlacesUtils.jsm": ["PlacesUtils", "PlacesAggregatedTransaction", "PlacesCreateFolderTransaction", "PlacesCreateBookmarkTransaction", "PlacesCreateSeparatorTransaction", "PlacesCreateLivemarkTransaction", "PlacesMoveItemTransaction", "PlacesRemoveItemTransaction", "PlacesEditItemTitleTransaction", "PlacesEditBookmarkURITransaction", "PlacesEditLivemarkFeedURITransaction", "PlacesEditLivemarkSiteURITransaction", "PlacesSetItemAnnotationTransaction", "PlacesSetPageAnnotationTransaction", "PlacesEditBookmarkKeywordTransaction", "PlacesEditBookmarkPostDataTransaction", "PlacesEditItemDateAddedTransaction", "PlacesEditItemLastModifiedTransaction", "PlacesSortFolderByNameTransaction", "PlacesTagURITransaction", "PlacesUntagURITransaction"],
   "PluginProvider.jsm": [],
   "PointerAdapter.jsm": ["PointerRelay", "PointerAdapter"],
   "policies.js": ["ErrorHandler", "SyncScheduler"],
   "prefs.js": ["PrefsEngine", "PrefRec"],
   "prefs.jsm": ["Preference"],
-  "PresentationDeviceInfoManager.jsm": ["PresentationDeviceInfoService"],
   "ProfileStorage.jsm": ["profileStorage"],
   "PromiseWorker.jsm": ["BasePromiseWorker"],
   "PushCrypto.jsm": ["PushCrypto", "concatArray"],
   "quit.js": ["goQuitApplication"],
   "Readability.js": ["Readability"],
   "record.js": ["WBORecord", "RecordManager", "CryptoWrapper", "CollectionKeyManager", "Collection"],
   "recursive_importA.jsm": ["foo", "bar"],
   "recursive_importB.jsm": ["baz", "qux"],