diff --git a/.eslintignore b/.eslintignore
index 4d916ca70fa6..8b7cd1182e6a 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -191,7 +191,6 @@ dom/grid/**
dom/html/**
dom/jsurl/**
dom/localstorage/**
-dom/manifest/**
dom/media/test/**
dom/media/tests/**
dom/media/webaudio/**
diff --git a/dom/manifest/ImageObjectProcessor.jsm b/dom/manifest/ImageObjectProcessor.jsm
index 19bddbd2d7f8..70bc81066eaf 100644
--- a/dom/manifest/ImageObjectProcessor.jsm
+++ b/dom/manifest/ImageObjectProcessor.jsm
@@ -20,17 +20,11 @@
/* exported EXPORTED_SYMBOLS*/
/* globals Components */
"use strict";
-const {
- utils: Cu,
- interfaces: Ci,
- classes: Cc,
-} = Components;
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
-const netutil = Cc["@mozilla.org/network/util;1"]
- .getService(Ci.nsINetUtil);
function ImageObjectProcessor(aConsole, aExtractor) {
this.console = aConsole;
@@ -92,7 +86,7 @@ ImageObjectProcessor.prototype.process = function(
};
let value = extractor.extractValue(spec);
if (value) {
- value = netutil.parseRequestContentType(value, charset, hadCharset);
+ value = Services.netUtils.parseRequestContentType(value, charset, hadCharset);
}
return value || undefined;
}
diff --git a/dom/manifest/Manifest.jsm b/dom/manifest/Manifest.jsm
index a21a7e2f2054..62ba1a8c7ac3 100644
--- a/dom/manifest/Manifest.jsm
+++ b/dom/manifest/Manifest.jsm
@@ -11,8 +11,6 @@
"use strict";
-ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-
const { ManifestObtainer } =
ChromeUtils.import("resource://gre/modules/ManifestObtainer.jsm", {});
const { ManifestIcons } =
diff --git a/dom/manifest/ManifestFinder.jsm b/dom/manifest/ManifestFinder.jsm
index 1b2087c99cb0..5f87ef9a75d2 100644
--- a/dom/manifest/ManifestFinder.jsm
+++ b/dom/manifest/ManifestFinder.jsm
@@ -3,9 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
/* globals Components, Task, PromiseMessage */
"use strict";
-const {
- utils: Cu,
-} = Components;
+
ChromeUtils.import("resource://gre/modules/PromiseMessage.jsm");
var ManifestFinder = {// jshint ignore:line
diff --git a/dom/manifest/ManifestIcons.jsm b/dom/manifest/ManifestIcons.jsm
index fc183526f162..9bfbb54a08b9 100644
--- a/dom/manifest/ManifestIcons.jsm
+++ b/dom/manifest/ManifestIcons.jsm
@@ -1,11 +1,5 @@
"use strict";
-const {
- utils: Cu,
- classes: Cc,
- interfaces: Ci,
-} = Components;
-
ChromeUtils.import("resource://gre/modules/PromiseMessage.jsm");
var ManifestIcons = {
@@ -22,7 +16,7 @@ var ManifestIcons = {
},
async contentFetchIcon(aWindow, manifest, iconSize) {
- return await getIcon(aWindow, toIconArray(manifest.icons), iconSize);
+ return getIcon(aWindow, toIconArray(manifest.icons), iconSize);
},
};
diff --git a/dom/manifest/ManifestObtainer.jsm b/dom/manifest/ManifestObtainer.jsm
index 392de99cc18b..c149ae75e570 100644
--- a/dom/manifest/ManifestObtainer.jsm
+++ b/dom/manifest/ManifestObtainer.jsm
@@ -25,16 +25,9 @@
*/
/* globals Components, Task, PromiseMessage, XPCOMUtils, ManifestProcessor, BrowserUtils*/
"use strict";
-const {
- utils: Cu,
- classes: Cc,
- interfaces: Ci,
-} = Components;
+
ChromeUtils.import("resource://gre/modules/PromiseMessage.jsm");
-ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
ChromeUtils.import("resource://gre/modules/ManifestProcessor.jsm");
-ChromeUtils.defineModuleGetter(this, "BrowserUtils", // jshint ignore:line
- "resource://gre/modules/BrowserUtils.jsm");
var ManifestObtainer = { // jshint ignore:line
/**
diff --git a/dom/manifest/ManifestProcessor.jsm b/dom/manifest/ManifestProcessor.jsm
index 0f14818f05f1..99237f3dee0e 100644
--- a/dom/manifest/ManifestProcessor.jsm
+++ b/dom/manifest/ManifestProcessor.jsm
@@ -21,9 +21,7 @@
*/
/* globals Components, ValueExtractor, ImageObjectProcessor, ConsoleAPI*/
"use strict";
-const {
- utils: Cu,
-} = Components;
+
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyGlobalGetters(this, ["URL"]);
const displayModes = new Set(["fullscreen", "standalone", "minimal-ui",
diff --git a/dom/manifest/ValueExtractor.jsm b/dom/manifest/ValueExtractor.jsm
index bd0ba9b1ec0d..8e4b8dcec887 100644
--- a/dom/manifest/ValueExtractor.jsm
+++ b/dom/manifest/ValueExtractor.jsm
@@ -7,11 +7,6 @@
*/
/* globals Components*/
"use strict";
-const {
- classes: Cc,
- interfaces: Ci,
- utils: Cu,
-} = Components;
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
diff --git a/dom/manifest/test/browser_ManifestIcons_browserFetchIcon.js b/dom/manifest/test/browser_ManifestIcons_browserFetchIcon.js
index 4600763dae93..0936a6f18a2c 100644
--- a/dom/manifest/test/browser_ManifestIcons_browserFetchIcon.js
+++ b/dom/manifest/test/browser_ManifestIcons_browserFetchIcon.js
@@ -7,7 +7,7 @@ const { ManifestObtainer } = ChromeUtils.import("resource://gre/modules/Manifest
const defaultURL = new URL("http://example.org/browser/dom/manifest/test/resource.sjs");
defaultURL.searchParams.set("Content-Type", "application/manifest+json");
-const manifest = JSON.stringify({
+const manifestMock = JSON.stringify({
icons: [{
sizes: "50x50",
src: "red-50.png?Content-type=image/png",
@@ -17,9 +17,9 @@ const manifest = JSON.stringify({
}],
});
-function makeTestURL(manifest) {
+function makeTestURL() {
const url = new URL(defaultURL);
- const body = ``;
+ const body = ``;
url.searchParams.set("Content-Type", "text/html; charset=utf-8");
url.searchParams.set("body", encodeURIComponent(body));
return url.href;
@@ -42,7 +42,7 @@ function getIconColor(icon) {
}
add_task(async function() {
- const tabOptions = {gBrowser, url: makeTestURL(manifest)};
+ const tabOptions = {gBrowser, url: makeTestURL()};
await BrowserTestUtils.withNewTab(tabOptions, async function(browser) {
const manifest = await ManifestObtainer.browserObtainManifest(browser);
let icon = await ManifestIcons.browserFetchIcon(browser, manifest, 25);
diff --git a/dom/manifest/test/browser_ManifestObtainer_obtain.js b/dom/manifest/test/browser_ManifestObtainer_obtain.js
index 4310493c8f8d..62df519d7e0f 100644
--- a/dom/manifest/test/browser_ManifestObtainer_obtain.js
+++ b/dom/manifest/test/browser_ManifestObtainer_obtain.js
@@ -100,7 +100,7 @@ add_task(async function() {
return collector;
}, []);
- const results = await Promise.all(promises);
+ await Promise.all(promises);
function testObtainingManifest(aTest) {
return async function(aBrowser) {
diff --git a/dom/manifest/test/browser_Manifest_install.js b/dom/manifest/test/browser_Manifest_install.js
index cead969a4527..50ad72a25162 100644
--- a/dom/manifest/test/browser_Manifest_install.js
+++ b/dom/manifest/test/browser_Manifest_install.js
@@ -7,10 +7,10 @@ const { Manifests } = ChromeUtils.import("resource://gre/modules/Manifest.jsm",
const defaultURL = new URL("http://example.org/browser/dom/manifest/test/resource.sjs");
defaultURL.searchParams.set("Content-Type", "application/manifest+json");
-const manifest = JSON.stringify({short_name: "hello World", scope: "/browser/"});
-const manifestUrl = `${defaultURL}&body=${manifest}`;
+const manifestMock = JSON.stringify({short_name: "hello World", scope: "/browser/"});
+const manifestUrl = `${defaultURL}&body=${manifestMock}`;
-function makeTestURL(manifest) {
+function makeTestURL() {
const url = new URL(defaultURL);
const body = ``;
url.searchParams.set("Content-Type", "text/html; charset=utf-8");
@@ -20,7 +20,7 @@ function makeTestURL(manifest) {
add_task(async function() {
- const tabOptions = {gBrowser, url: makeTestURL(manifest)};
+ const tabOptions = {gBrowser, url: makeTestURL()};
await BrowserTestUtils.withNewTab(tabOptions, async function(browser) {
@@ -46,4 +46,3 @@ add_task(async function() {
});
});
-
diff --git a/dom/manifest/test/test_ImageObjectProcessor_sizes.html b/dom/manifest/test/test_ImageObjectProcessor_sizes.html
index 83c696e6810d..3ccba1b99f19 100644
--- a/dom/manifest/test/test_ImageObjectProcessor_sizes.html
+++ b/dom/manifest/test/test_ImageObjectProcessor_sizes.html
@@ -66,13 +66,6 @@ validSizes.forEach(({test, expect}) => {
is(sizes, expect.join(" "), expected);
});
-var testIcon = {
- icons: [{
- src: "test",
- sizes: undefined,
- }],
-};
-
var invalidSizes = ["invalid", "", " ", "16 x 16", "32", "21", "16xx16", "16 x x 6"];
invalidSizes.forEach((invalidSize) => {
var expected = "Expect invalid sizes to return undefined.";
diff --git a/dom/manifest/test/test_ImageObjectProcessor_src.html b/dom/manifest/test/test_ImageObjectProcessor_src.html
index abefb0956212..365676e8fd27 100644
--- a/dom/manifest/test/test_ImageObjectProcessor_src.html
+++ b/dom/manifest/test/test_ImageObjectProcessor_src.html
@@ -15,6 +15,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1079453
* https://w3c.github.io/manifest/#src-member
**/
"use strict";
+
var noSrc = {
icons: [{}, {
src: [],
@@ -53,23 +54,24 @@ var invalidSrc = {
}],
};
-var expected = `Expect icons with invalid src prop to be filtered out.`;
-data.jsonText = JSON.stringify(noSrc);
-var result = processor.process(data);
+expected = `Expect icons with invalid src prop to be filtered out.`;
+data.jsonText = JSON.stringify(invalidSrc);
+result = processor.process(data);
is(result.icons.length, 0, expected);
-var expected = `Expect icon's src to be a string.`;
+expected = `Expect icon's src to be a string.`;
var withSrc = {
icons: [{
src: "pass",
}],
};
data.jsonText = JSON.stringify(withSrc);
-var result = processor.process(data);
+result = processor.process(data);
is(typeof result.icons[0].src, "string", expected);
-var expected = `Expect only icons with a src prop to be kept.`;
-var withSrc = {
+
+expected = `Expect only icons with a src prop to be kept.`;
+withSrc = {
icons: [{
src: "pass",
}, {
@@ -79,28 +81,30 @@ var withSrc = {
}],
};
data.jsonText = JSON.stringify(withSrc);
-var result = processor.process(data);
+result = processor.process(data);
is(result.icons.length, 2, expected);
var expectedURL = new URL("pass", manifestURL);
for (var icon of result.icons) {
- var expected = `Expect src prop to be ${expectedURL.toString()}`;
+ expected = `Expect src prop to be ${expectedURL.toString()}`;
is(icon.src.toString(), expectedURL.toString(), expected);
}
+
// Resolve URLs relative to manfiest
var URLs = ["path", "/path", "../../path"];
URLs.forEach((url) => {
- var expected = `Resolve icon src URLs relative to manifest.`;
+ expected = `Resolve icon src URLs relative to manifest.`;
data.jsonText = JSON.stringify({
icons: [{
src: url,
}],
});
var absURL = new URL(url, manifestURL).toString();
- var result = processor.process(data);
+ result = processor.process(data);
is(result.icons[0].src.toString(), absURL, expected);
});
+
diff --git a/dom/manifest/test/test_ManifestProcessor_icons.html b/dom/manifest/test/test_ManifestProcessor_icons.html
index e7510aa97272..8f073fbd3404 100644
--- a/dom/manifest/test/test_ManifestProcessor_icons.html
+++ b/dom/manifest/test/test_ManifestProcessor_icons.html
@@ -23,7 +23,7 @@ typeTests.forEach((type) => {
icons: type,
});
var result = processor.process(data);
- var y = SpecialPowers.unwrap(result.icons);
+ SpecialPowers.unwrap(result.icons);
is(result.icons.length, 0, expected);
});
diff --git a/dom/manifest/test/test_ManifestProcessor_lang.html b/dom/manifest/test/test_ManifestProcessor_lang.html
index a8837f5ea742..64d6aaced73b 100644
--- a/dom/manifest/test/test_ManifestProcessor_lang.html
+++ b/dom/manifest/test/test_ManifestProcessor_lang.html
@@ -16,6 +16,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1143879
/* globals is, typeTests, data, processor, seperators, lineTerminators, todo_is*/
"use strict";
// Type checks: checks that only strings are accepted.
+
for (var type of typeTests) {
var expected = `Expect non-string to be undefined.`;
data.jsonText = JSON.stringify({
@@ -52,38 +53,44 @@ var validTags = [
"de-CH-x-phonebk", "az-Arab-x-AZE-derbend", "x-whatever",
"qaa-Qaaa-QM-x-southern",
];
+
+
for (var tag of validTags) {
- var expected = `Expect lang to be ${tag}.`;
+ expected = `Expect lang to be ${tag}.`;
data.jsonText = JSON.stringify({
lang: tag,
});
- var result = processor.process(data);
+ result = processor.process(data);
is(result.lang, tag, expected);
}
+
+
// trim tests - check that language tags get trimmed properly.
-for (var tag of validTags) {
- var expected = `Expect trimmed tag to be returned.`;
+for (tag of validTags) {
+ expected = `Expect trimmed tag to be returned.`;
var expandedtag = seperators + lineTerminators + tag;
expandedtag += lineTerminators + seperators;
data.jsonText = JSON.stringify({
lang: expandedtag,
});
- var result = processor.process(data);
+ result = processor.process(data);
is(result.lang, tag, expected);
}
// Invalid language tags, derived from BCP-47 and made up.
var invalidTags = [
- "de-419-DE", " a-DE ", "ar-a-aaa-b-bbb-a-ccc", "sdafsdfaadsfdsf", "i",
- "i-phone", "en US", "EN-*-US-JP", "JA-INVALID-TAG", "123123123",
+"de-419-DE", " a-DE ", "ar-a-aaa-b-bbb-a-ccc", "sdafsdfaadsfdsf", "i",
+"i-phone", "en US", "EN-*-US-JP", "JA-INVALID-TAG", "123123123",
];
+
+
for (var item of invalidTags) {
- var expected = `Expect invalid tag (${item}) to be treated as undefined.`;
+ expected = `Expect invalid tag (${item}) to be treated as undefined.`;
data.jsonText = JSON.stringify({
lang: item,
});
- var result = processor.process(data);
+ result = processor.process(data);
todo_is(result.lang, undefined, expected);
}
@@ -91,21 +98,21 @@ for (var item of invalidTags) {
// canonical form, to upper case and expect the processor to return them
// in canonical form.
var canonicalTags = [
- "jp-JS", "pt-PT", "pt-BR", "de-CH", "de-DE-1901", "es-419", "sl-IT-nedis",
- "en-US-boont", "mn-Cyrl-MN", "x-fr-CH", "sr-Cyrl", "sr-Latn",
- "hy-Latn-IT-arevela", "zh-TW", "en-GB-boont-r-extended-sequence-x-private",
- "zh-cmn-Hans-CN", "cmn-Hans-CN", "zh-yue-HK", "yue-HK",
- "de-CH-x-phonebk", "az-Arab-x-AZE-derbend", "x-whatever",
- "qaa-Qaaa-QM-x-southern",
+"jp-JS", "pt-PT", "pt-BR", "de-CH", "de-DE-1901", "es-419", "sl-IT-nedis",
+"en-US-boont", "mn-Cyrl-MN", "x-fr-CH", "sr-Cyrl", "sr-Latn",
+"hy-Latn-IT-arevela", "zh-TW", "en-GB-boont-r-extended-sequence-x-private",
+"zh-cmn-Hans-CN", "cmn-Hans-CN", "zh-yue-HK", "yue-HK",
+"de-CH-x-phonebk", "az-Arab-x-AZE-derbend", "x-whatever",
+"qaa-Qaaa-QM-x-southern",
];
-for (var tag of canonicalTags) {
+for (tag of canonicalTags) {
var uppedTag = tag.toUpperCase();
- var expected = `Expect tag (${uppedTag}) to be in canonical form (${tag}).`;
+ expected = `Expect tag (${uppedTag}) to be in canonical form (${tag}).`;
data.jsonText = JSON.stringify({
lang: uppedTag,
});
- var result = processor.process(data);
+ result = processor.process(data);
todo_is(result.lang, tag, expected);
}
diff --git a/dom/manifest/test/test_ManifestProcessor_scope.html b/dom/manifest/test/test_ManifestProcessor_scope.html
index b0bb1886b2fc..595f80c6b225 100644
--- a/dom/manifest/test/test_ManifestProcessor_scope.html
+++ b/dom/manifest/test/test_ManifestProcessor_scope.html
@@ -10,11 +10,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1079453
diff --git a/dom/manifest/test/test_ManifestProcessor_start_url.html b/dom/manifest/test/test_ManifestProcessor_start_url.html
index fd9c16d2a79f..989f64ddbe08 100644
--- a/dom/manifest/test/test_ManifestProcessor_start_url.html
+++ b/dom/manifest/test/test_ManifestProcessor_start_url.html
@@ -33,27 +33,30 @@ var result = processor.process(data);
is(result.start_url.toString(), docURL.toString(), expected);
// Empty string test
-var expected = `Expect empty string for start_url to become document's URL.`;
+expected = `Expect empty string for start_url to become document's URL.`;
data.jsonText = JSON.stringify({
start_url: "",
});
-var result = processor.process(data);
+result = processor.process(data);
is(result.start_url.toString(), docURL.toString(), expected);
+
// Resolve URLs relative to manfiest
var URLs = ["path", "/path", "../../path",
`${whiteSpace}path${whiteSpace}`,
`${whiteSpace}/path`,
`${whiteSpace}../../path`,
];
+
URLs.forEach((url) => {
- var expected = `Resolve URLs relative to manifest.`;
+ expected = `Resolve URLs relative to manifest.`;
data.jsonText = JSON.stringify({
start_url: url,
});
var absURL = new URL(url, manifestURL).toString();
- var result = processor.process(data);
+ result = processor.process(data);
is(result.start_url.toString(), absURL, expected);
});
+
diff --git a/dom/manifest/test/test_window_onappinstalled_event.html b/dom/manifest/test/test_window_onappinstalled_event.html
index db2df8484d1a..4440e44548cb 100644
--- a/dom/manifest/test/test_window_onappinstalled_event.html
+++ b/dom/manifest/test/test_window_onappinstalled_event.html
@@ -54,7 +54,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1265279
// no point in continuing
if (!hasOnAppInstalledProp) {
const err = new Error("No 'onappinstalled' IDL attribute. Aborting early.");
- return reject(err);
+ reject(err);
+ return;
}
is(ifrWindow.onappinstalled, null, "window install is initially set to null");