--- 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"],