--- a/.eslintignore
+++ b/.eslintignore
@@ -50,16 +50,18 @@ xulrunner/**
b2g/app/b2g.js
b2g/graphene/graphene.js
b2g/locales/en-US/b2g-l10n.js
# browser/ exclusions
browser/app/**
browser/branding/**/firefox-branding.js
browser/base/content/test/general/file_csp_block_all_mixedcontent.html
+# Gzipped test file.
+browser/base/content/test/general/gZipOfflineChild.html
browser/base/content/test/urlbar/file_blank_but_not_blank.html
browser/base/content/newtab/**
# Test files that are really json not js, and don't need to be linted.
browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
browser/components/tabview/**
# generated & special files in cld2
browser/components/translation/cld2/**
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -16,15 +16,21 @@ module.exports = {
"mozilla/use-default-preference-values": "error",
"mozilla/use-ownerGlobal": "error",
// No (!foo in bar) or (!object instanceof Class)
"no-unsafe-negation": "error",
// No eval() and no strings in the first param of setTimeout or setInterval
"no-implied-eval": "error",
"no-eval": "error",
},
+ // The html plugin is enabled via a command line option on eslint. To avoid
+ // bad interactions with the xml preprocessor in eslint-plugin-mozilla, we
+ // turn off processing of the html plugin for .xml files.
+ "settings": {
+ "html/xml-extensions": [ ".xhtml" ]
+ },
"env": {
"es6": true
},
"parserOptions": {
"ecmaVersion": 8,
},
};
--- a/accessible/tests/mochitest/jsat/doc_content_text.html
+++ b/accessible/tests/mochitest/jsat/doc_content_text.html
@@ -7,9 +7,9 @@
<body>
<p>These are my awards, Mother. From Army.
The seal is for marksmanship, and the gorilla is for sand racing.</p>
<p>You're a good guy, mon frere. That means brother in French.
I don't know how I know that. I took four years of Spanish.</p>
<textarea>Please refrain from Mayoneggs during this salmonella scare.</textarea>
<label>So we don't get dessert?</label><input type="text">
</body>
-</html>
\ No newline at end of file
+</html>
--- a/accessible/tests/mochitest/jsat/test_quicknav_modes.html
+++ b/accessible/tests/mochitest/jsat/test_quicknav_modes.html
@@ -99,9 +99,9 @@
</head>
<body>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=811307"
title="[AccessFu] Add mochitest for enabling">
Mozilla Bug 811307
</a>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/accessible/tests/mochitest/jsat/test_tables.html
+++ b/accessible/tests/mochitest/jsat/test_tables.html
@@ -571,9 +571,9 @@
</tbody>
</table>
<table id="table5">
<tr><td>Row1</td></tr>
<tr><td>Row2</td></tr>
</table>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/base/content/test/appUpdate/downloadPage.html
+++ b/browser/base/content/test/appUpdate/downloadPage.html
@@ -5,9 +5,9 @@
<meta charset="utf-8">
</head>
<body>
<!-- just use simple.mar since we have it available and it will result in a download dialog -->
<a id="download-link" href="http://example.com/browser/browser/base/content/test/appUpdate/simple.mar" data-link-type="download">
Download
</a>
</body>
-</html>
+</html>
--- a/browser/base/content/test/general/app_bug575561.html
+++ b/browser/base/content/test/general/app_bug575561.html
@@ -10,9 +10,9 @@ https://bugzilla.mozilla.org/show_bug.cg
<a href="http://example.com/browser/browser/base/content/test/general/dummy_page.html">same domain</a>
<a href="http://test1.example.com/browser/browser/base/content/test/general/dummy_page.html">same domain (different subdomain)</a>
<a href="http://example.org/browser/browser/base/content/test/general/dummy_page.html">different domain</a>
<a href="http://example.org/browser/browser/base/content/test/general/dummy_page.html" target="foo">different domain (with target)</a>
<a href="http://www.example.com/browser/browser/base/content/test/general/dummy_page.html">same domain (www prefix)</a>
<a href="data:text/html,<!DOCTYPE html><html><body>Another Page</body></html>">data: URI</a>
<iframe src="app_subframe_bug575561.html"></iframe>
</body>
-</html>
+</html>
--- a/browser/base/content/test/general/browser_bug678392-1.html
+++ b/browser/base/content/test/general/browser_bug678392-1.html
@@ -4,9 +4,9 @@
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<title>bug678392 - 1</title>
</head>
<body>
bug 678392 test page 1
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/base/content/test/general/browser_bug678392-2.html
+++ b/browser/base/content/test/general/browser_bug678392-2.html
@@ -4,9 +4,9 @@
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<title>bug678392 - 2</title>
</head>
<body>
bug 678392 test page 2
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/base/content/test/general/close_beforeunload_opens_second_tab.html
+++ b/browser/base/content/test/general/close_beforeunload_opens_second_tab.html
@@ -1,3 +1,3 @@
<body>
<a href="#" onclick="window.open('close_beforeunload.html', '_blank')">Open second tab</a>
-</body>
+</body>
--- a/browser/base/content/test/general/subtst_contextmenu_input.html
+++ b/browser/base/content/test/general/subtst_contextmenu_input.html
@@ -21,9 +21,9 @@
<input id="input_range" type="range">
<input id="input_search" type="search">
<input id="input_datetime" type="datetime">
<input id="input_month" type="month">
<input id="input_week" type="week">
<input id="input_datetime-local" type="datetime-local">
<input id="input_readonly" readonly="true">
</body>
-</html>
+</html>
--- a/browser/components/customizableui/test/support/test_967000_charEncoding_page.html
+++ b/browser/components/customizableui/test/support/test_967000_charEncoding_page.html
@@ -3,9 +3,9 @@
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
This is a test page
</body>
-</html>
+</html>
--- a/browser/components/originattributes/test/browser/file_favicon.html
+++ b/browser/components/originattributes/test/browser/file_favicon.html
@@ -3,9 +3,9 @@
<head>
<meta charset='utf-8'>
<title>Favicon Test for originAttributes</title>
<link rel="icon" type="image/png" href="file_favicon.png" />
</head>
<body>
Favicon!!
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/components/originattributes/test/browser/file_favicon_cache.html
+++ b/browser/components/originattributes/test/browser/file_favicon_cache.html
@@ -3,9 +3,9 @@
<head>
<meta charset='utf-8'>
<title>Favicon Test for originAttributes</title>
<link rel="icon" type="image/png" href="http://mochi.test:8888/browser/browser/components/originattributes/test/browser/file_favicon_cache.png" />
</head>
<body>
Third Party Favicon!!
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/components/originattributes/test/browser/file_favicon_thirdParty.html
+++ b/browser/components/originattributes/test/browser/file_favicon_thirdParty.html
@@ -3,9 +3,9 @@
<head>
<meta charset='utf-8'>
<title>Favicon Test for originAttributes</title>
<link rel="icon" type="image/png" href="http://mochi.test:8888/browser/browser/components/originattributes/test/browser/file_favicon.png" />
</head>
<body>
Third Party Favicon!!
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/components/originattributes/test/mochitest/file_empty.html
+++ b/browser/components/originattributes/test/mochitest/file_empty.html
@@ -1,2 +1,2 @@
<h1>I'm just a support file</h1>
-<p>I get loaded to do permission testing.</p>
\ No newline at end of file
+<p>I get loaded to do permission testing.</p>
--- a/browser/components/privatebrowsing/test/browser/empty_file.html
+++ b/browser/components/privatebrowsing/test/browser/empty_file.html
@@ -1,1 +1,1 @@
-<html><body></body></html>
\ No newline at end of file
+<html><body></body></html>
--- a/browser/components/privatebrowsing/test/browser/file_favicon.html
+++ b/browser/components/privatebrowsing/test/browser/file_favicon.html
@@ -3,9 +3,9 @@
<head>
<meta charset='utf-8'>
<title>Favicon Test for originAttributes</title>
<link rel="icon" type="image/png" href="file_favicon.png" />
</head>
<body>
Favicon!!
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/components/safebrowsing/content/test/empty_file.html
+++ b/browser/components/safebrowsing/content/test/empty_file.html
@@ -1,1 +1,1 @@
-<html><body></body></html>
\ No newline at end of file
+<html><body></body></html>
--- a/browser/components/sessionstore/test/browser_662743_sample.html
+++ b/browser/components/sessionstore/test/browser_662743_sample.html
@@ -7,9 +7,9 @@
<option value="val0">Zero</option>
<option value="val1">One</option>
<option value="val2">Two</option>
<option value="val3" selected="selected">Three</option>
<option value="val4">Four</option>
<option value="val5">Five</option>
<option value="val6">Six</option>
<option value="val7">Seven</option>
-</select>
\ No newline at end of file
+</select>
--- a/browser/components/sessionstore/test/browser_formdata_format_sample.html
+++ b/browser/components/sessionstore/test/browser_formdata_format_sample.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>Test formdata format</title>
<!-- input events -->
<h3>Input fields</h3>
<input type="text" id="input1">
-<input type="text" name="input2">
\ No newline at end of file
+<input type="text" name="input2">
--- a/browser/components/sessionstore/test/restore_redirect_js.html
+++ b/browser/components/sessionstore/test/restore_redirect_js.html
@@ -2,9 +2,9 @@
<html>
<head>
<script>
var newLocation = window.location.toString().replace("restore_redirect_js.html", "restore_redirect_target.html");
window.location.replace(newLocation);
</script>
</head>
-</html>
\ No newline at end of file
+</html>
--- a/browser/extensions/formautofill/content/manageProfiles.xhtml
+++ b/browser/extensions/formautofill/content/manageProfiles.xhtml
@@ -16,9 +16,9 @@
<select id="profiles" size="9" multiple="multiple"/>
</fieldset>
<div id="controls-container">
<button id="remove" disabled="disabled">Remove</button>
<button id="add">Add</button>
<button id="edit" disabled="disabled">Edit</button>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/browser/extensions/webcompat-reporter/test/browser/test.html
+++ b/browser/extensions/webcompat-reporter/test/browser/test.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {background: rgb(0, 128, 0);}
-</style>
\ No newline at end of file
+</style>
--- a/browser/extensions/webcompat-reporter/test/browser/webcompat.html
+++ b/browser/extensions/webcompat-reporter/test/browser/webcompat.html
@@ -40,9 +40,9 @@ function sendReceivedEvent() {
window.addEventListener("message", function(event) {
if (event.data instanceof Blob) {
preview.innerText = "Pass";
}
getBlobAsDataURL(event.data).then(setPreviewBG).then(sendReceivedEvent);
});
-</script>
\ No newline at end of file
+</script>
--- a/devtools/client/animationinspector/test/doc_keyframes.html
+++ b/devtools/client/animationinspector/test/doc_keyframes.html
@@ -49,9 +49,9 @@
height: 500px;
}
}
</style>
</head>
<body>
<div></div>
</body>
-</html>
+</html>
--- a/devtools/client/animationinspector/test/doc_pseudo_elements.html
+++ b/devtools/client/animationinspector/test/doc_pseudo_elements.html
@@ -53,9 +53,9 @@
80% {height: 70%; animation-timing-function: ease-in-out;}
90% {height: 60%; animation-timing-function: ease-in-out;}
100% {height: 100%; animation-timing-function: ease-in-out;}
}
</style>
</head>
<body>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/inspector/markup/test/doc_markup_anonymous.html
+++ b/devtools/client/inspector/markup/test/doc_markup_anonymous.html
@@ -26,9 +26,9 @@
"use strict";
var host = document.querySelector("#shadow");
if (host.createShadowRoot) {
var root = host.createShadowRoot();
root.innerHTML = "<h3>Shadow DOM</h3><select multiple></select>";
}
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/inspector/markup/test/doc_markup_flashing.html
+++ b/devtools/client/inspector/markup/test/doc_markup_flashing.html
@@ -7,9 +7,9 @@
<body>
<div id="root">
<ul class="list">
<li class="item">item</li>
<li class="item">item</li>
</ul>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/inspector/markup/test/doc_markup_search.html
+++ b/devtools/client/inspector/markup/test/doc_markup_search.html
@@ -3,9 +3,9 @@
<head></head>
<body>
<ul>
<li>
<span>this is an <em>important</em> node</span>
</li>
</ul>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/inspector/markup/test/doc_markup_whitespace.html
+++ b/devtools/client/inspector/markup/test/doc_markup_whitespace.html
@@ -17,9 +17,9 @@
<img src="chrome://branding/content/about-logo.png" />
<img src="chrome://branding/content/about-logo.png" />
</div>
<div id="pre">
<img src="chrome://branding/content/about-logo.png" />
<img src="chrome://branding/content/about-logo.png" />
</div>
</body>
-</html>
+</html>
--- a/devtools/client/inspector/rules/test/doc_invalid_sourcemap.html
+++ b/devtools/client/inspector/rules/test/doc_invalid_sourcemap.html
@@ -3,9 +3,9 @@
<head>
<meta charset="utf-8">
<title>Invalid source map</title>
<link rel="stylesheet" type="text/css" href="doc_invalid_sourcemap.css">
</head>
<body>
<div>invalid source map</div>
</body>
-</html>
+</html>
--- a/devtools/client/inspector/test/doc_inspector_add_node.html
+++ b/devtools/client/inspector/test/doc_inspector_add_node.html
@@ -14,9 +14,9 @@
<svg>
<rect x="0" y="0" width="100" height="50"></rect>
</svg>
<div id="bar">
<div id="baz"></div>
</div>
<iframe src="data:text/html;charset=utf-8,Test iframe content"></iframe>
</body>
-</html>
+</html>
--- a/devtools/client/inspector/test/doc_inspector_csp.html
+++ b/devtools/client/inspector/test/doc_inspector_csp.html
@@ -2,9 +2,9 @@
<html>
<head>
<title>Inspector CSP Test</title>
<meta charset="utf-8">
</head>
<body>
This HTTP response has CSP headers.
</body>
-</html>
+</html>
--- a/devtools/client/inspector/test/doc_inspector_embed.html
+++ b/devtools/client/inspector/test/doc_inspector_embed.html
@@ -1,6 +1,6 @@
<!doctype html><html><head><meta charset="UTF-8"></head><body>
<object>
<embed src="doc_inspector_menu.html" type="application/html"
width="422" height="258"></embed>
</object>
-</body></html>
+</body></html>
--- a/devtools/client/inspector/test/doc_inspector_highlighter-geometry_02.html
+++ b/devtools/client/inspector/test/doc_inspector_highlighter-geometry_02.html
@@ -112,9 +112,9 @@
<div class="static">
Static child with no width/height
</div>
<div class="static-size">
Static child with width/height
</div>
</div>
-</body></html>
\ No newline at end of file
+</body></html>
--- a/devtools/client/inspector/test/doc_inspector_highlighter_dom.html
+++ b/devtools/client/inspector/test/doc_inspector_highlighter_dom.html
@@ -12,9 +12,9 @@
<div id="simple-div2">
<p id="another">This is another node. You won't reach this in my test.</p>
<p id="ahoy">Ahoy! How you doin' Capn'? <em>#ahoy</em></p>
</div>
</div>
</body>
-</html>
+</html>
--- a/devtools/client/inspector/test/doc_inspector_search-svg.html
+++ b/devtools/client/inspector/test/doc_inspector_search-svg.html
@@ -8,9 +8,9 @@
<div class="class1"></div>
<svg>
<clipPath>
<rect x="0" y="0" width="10" height="5"></rect>
</clipPath>
<circle cx="0" cy="0" r="50" class="class2" />
</svg>
</body>
-</html>
+</html>
--- a/devtools/client/inspector/test/doc_inspector_select-last-selected-01.html
+++ b/devtools/client/inspector/test/doc_inspector_select-last-selected-01.html
@@ -13,9 +13,9 @@
<li class="item"></li>
<li class="item"></li>
<li class="item">
<span id="id4"></span>
</li>
</ul>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/inspector/test/doc_inspector_select-last-selected-02.html
+++ b/devtools/client/inspector/test/doc_inspector_select-last-selected-02.html
@@ -2,9 +2,9 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>select last selected test</title>
</head>
<body>
<div id="id5"></div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/responsive.html/test/browser/geolocation.html
+++ b/devtools/client/responsive.html/test/browser/geolocation.html
@@ -5,9 +5,9 @@
<title>Geolocation permission test</title>
</head>
<body>
<script type="text/javascript">
"use strict";
navigator.geolocation.getCurrentPosition(function (pos) {});
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/shared/test/browser_layoutHelpers-getBoxQuads.html
+++ b/devtools/client/shared/test/browser_layoutHelpers-getBoxQuads.html
@@ -57,9 +57,9 @@
<iframe src="data:text/html,%3Cstyle%3Ebody%7Bmargin:0;padding:0;%7D%3C/style%3E%3Ciframe%20src=%22data:text/html,%253Cstyle%253Ebody%257Bmargin:0;padding:0;%257D%253C/style%253E%253Cdiv%2520id='inner-node'%2520style='width:100px;height:100px;border:10px%2520solid%2520red;margin:10px;padding:10px;'%253E%253C/div%253E%22%20style=%22margin:10px;border:0;width:200px;height:200px;%22%3E%3C/iframe%3E" style="margin:10px;border:0;width:300px;height:300px;"></iframe>
<div id="scrolled-node">
<div id="sub-scrolled-node">
<div id="inner-scrolled-node"></div>
</div>
</div>
<span id="inline">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus porttitor luctus sem id scelerisque. Cras quis velit sed risus euismod lacinia. Donec viverra enim eu ligula efficitur, quis vulputate metus cursus. Duis sed interdum risus. Ut blandit velit vitae faucibus efficitur. Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br/ >
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed vitae dolor metus. Aliquam sed velit sit amet libero vestibulum aliquam vel a lorem. Integer eget ex eget justo auctor ullamcorper.<br/ >
-Praesent tristique maximus lacus, nec ultricies neque ultrices non. Phasellus vel lobortis justo. </span>
\ No newline at end of file
+Praesent tristique maximus lacus, nec ultricies neque ultrices non. Phasellus vel lobortis justo. </span>
--- a/devtools/client/shared/test/html-mdn-css-basic-testing.html
+++ b/devtools/client/shared/test/html-mdn-css-basic-testing.html
@@ -13,9 +13,9 @@
<h2 id="Syntax">Syntax</h2>
<pre>/* The part we want */
this: is-the-part-we-want;</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/shared/test/html-mdn-css-no-summary-or-syntax.html
+++ b/devtools/client/shared/test/html-mdn-css-no-summary-or-syntax.html
@@ -4,9 +4,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p>This is not the summary or the syntax.</p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/shared/test/html-mdn-css-no-summary.html
+++ b/devtools/client/shared/test/html-mdn-css-no-summary.html
@@ -13,9 +13,9 @@
<pre>To be ignored.</pre>
<pre>/* The part we want */
this: is-the-part-we-want;</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/shared/test/html-mdn-css-syntax-old-style.html
+++ b/devtools/client/shared/test/html-mdn-css-syntax-old-style.html
@@ -15,9 +15,9 @@
<pre>The part we should ignore</pre>
<pre>/* The part we want */
this: is-the-part-we-want;</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/styleeditor/test/media-rules-sourcemaps.html
+++ b/devtools/client/styleeditor/test/media-rules-sourcemaps.html
@@ -4,9 +4,9 @@
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="sourcemap-css/media-rules.css"
</head>
<body>
<div>
Testing style editor media sidebar with source maps
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/styleeditor/test/media-rules.html
+++ b/devtools/client/styleeditor/test/media-rules.html
@@ -5,9 +5,9 @@
<link rel="stylesheet" href="simple.css"/>
<link rel="stylesheet" href="media-rules.css"/>
</head>
<body>
<div>
Testing style editor media sidebar
</div>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/client/styleeditor/test/nostyle.html
+++ b/devtools/client/styleeditor/test/nostyle.html
@@ -1,5 +1,5 @@
<html>
<div>
Page with no stylesheets
</div>
-</html>
\ No newline at end of file
+</html>
--- a/devtools/server/tests/mochitest/test_webconsole-node-grip.html
+++ b/devtools/server/tests/mochitest/test_webconsole-node-grip.html
@@ -60,9 +60,9 @@ async function testInTreeTextNode(consol
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -14,19 +14,19 @@
"acorn": {
"version": "3.3.0",
"from": "acorn@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
}
}
},
"ajv": {
- "version": "4.11.6",
+ "version": "4.11.8",
"from": "ajv@>=4.7.0 <5.0.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.6.tgz"
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz"
},
"ajv-keywords": {
"version": "1.5.1",
"from": "ajv-keywords@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz"
},
"ansi-escapes": {
"version": "1.4.0",
@@ -75,17 +75,17 @@
},
"balanced-match": {
"version": "0.4.2",
"from": "balanced-match@>=0.4.1 <0.5.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
},
"brace-expansion": {
"version": "1.1.7",
- "from": "brace-expansion@>=1.0.0 <2.0.0",
+ "from": "brace-expansion@>=1.1.7 <2.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
},
"buffer-shims": {
"version": "1.0.0",
"from": "buffer-shims@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
},
"caller-path": {
@@ -144,19 +144,19 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"d": {
"version": "1.0.0",
"from": "d@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz"
},
"debug": {
- "version": "2.6.3",
+ "version": "2.6.6",
"from": "debug@>=2.1.1 <3.0.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.6.tgz"
},
"deep-is": {
"version": "0.1.3",
"from": "deep-is@>=0.1.3 <0.2.0",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
},
"define-properties": {
"version": "1.1.2",
@@ -186,24 +186,24 @@
}
},
"domelementtype": {
"version": "1.3.0",
"from": "domelementtype@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
},
"domhandler": {
- "version": "2.3.0",
+ "version": "2.4.1",
"from": "domhandler@>=2.3.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz"
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz"
},
"domutils": {
- "version": "1.5.1",
+ "version": "1.6.2",
"from": "domutils@>=1.5.1 <2.0.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz"
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz"
},
"entities": {
"version": "1.1.1",
"from": "entities@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
},
"es-abstract": {
"version": "1.7.0",
@@ -256,36 +256,36 @@
"resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz"
},
"eslint": {
"version": "3.19.0",
"from": "eslint@3.19.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz"
},
"eslint-plugin-html": {
- "version": "1.5.2",
- "from": "eslint-plugin-html@1.5.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-1.5.2.tgz"
+ "version": "2.0.3",
+ "from": "eslint-plugin-html@2.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-2.0.3.tgz"
},
"eslint-plugin-react": {
"version": "6.10.3",
"from": "eslint-plugin-react@6.10.3",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz",
"dependencies": {
"doctrine": {
"version": "1.5.0",
"from": "doctrine@>=1.2.2 <2.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz"
}
}
},
"espree": {
- "version": "3.4.1",
+ "version": "3.4.3",
"from": "espree@>=3.4.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.1.tgz"
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz"
},
"esprima": {
"version": "3.1.3",
"from": "esprima@>=3.1.1 <4.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"
},
"esquery": {
"version": "1.0.0",
@@ -400,19 +400,19 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
},
"htmlparser2": {
"version": "3.9.2",
"from": "htmlparser2@>=3.8.2 <4.0.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz"
},
"ignore": {
- "version": "3.2.7",
+ "version": "3.3.0",
"from": "ignore@>=3.2.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.7.tgz"
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.0.tgz"
},
"imurmurhash": {
"version": "0.1.4",
"from": "imurmurhash@>=0.1.4 <0.2.0",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
},
"inflight": {
"version": "1.0.6",
@@ -430,19 +430,19 @@
"resolved": "https://registry.npmjs.org/ini-parser/-/ini-parser-0.0.2.tgz"
},
"inquirer": {
"version": "0.12.0",
"from": "inquirer@>=0.12.0 <0.13.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz"
},
"interpret": {
- "version": "1.0.2",
+ "version": "1.0.3",
"from": "interpret@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.2.tgz"
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz"
},
"is-callable": {
"version": "1.1.3",
"from": "is-callable@>=1.1.3 <2.0.0",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz"
},
"is-date-object": {
"version": "1.0.1",
@@ -520,49 +520,49 @@
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
},
"jsonpointer": {
"version": "4.0.1",
"from": "jsonpointer@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz"
},
"jsx-ast-utils": {
- "version": "1.4.0",
+ "version": "1.4.1",
"from": "jsx-ast-utils@>=1.3.4 <2.0.0",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.0.tgz"
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz"
},
"levn": {
"version": "0.3.0",
"from": "levn@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
},
"lodash": {
"version": "4.17.4",
"from": "lodash@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
},
"minimatch": {
- "version": "3.0.3",
+ "version": "3.0.4",
"from": "minimatch@>=3.0.2 <4.0.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
},
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
},
"ms": {
- "version": "0.7.2",
- "from": "ms@0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+ "version": "0.7.3",
+ "from": "ms@0.7.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz"
},
"mute-stream": {
"version": "0.0.5",
"from": "mute-stream@0.0.5",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
},
"natural-compare": {
"version": "1.4.0",
@@ -675,19 +675,19 @@
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
},
"require-uncached": {
"version": "1.0.3",
"from": "require-uncached@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz"
},
"resolve": {
- "version": "1.3.2",
+ "version": "1.3.3",
"from": "resolve@>=1.1.6 <2.0.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz"
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz"
},
"resolve-from": {
"version": "1.0.1",
"from": "resolve-from@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz"
},
"restore-cursor": {
"version": "1.0.1",
--- a/package.json
+++ b/package.json
@@ -1,16 +1,16 @@
{
"name": "mozillaeslintsetup",
"description": "This package file is for setup of ESLint only for editor integration.",
"repository": {},
"license": "MPL-2.0",
"dependencies": {
"eslint": "3.19.0",
- "eslint-plugin-html": "1.5.2",
+ "eslint-plugin-html": "2.0.3",
"eslint-plugin-react": "6.10.3",
"escope": "^3.6.0",
"espree": "^3.4.0",
"estraverse": "^4.2.0",
"ini-parser": "^0.0.2",
"sax": "^1.2.2"
}
}
--- a/security/manager/ssl/tests/mochitest/mixedcontent/iframeMetaRedirect.html
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/iframeMetaRedirect.html
@@ -1,8 +1,8 @@
<!DOCTYPE HTML>
<META http-equiv="Refresh"
Content="0; URL=http://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/iframe.html">
<html>
<body>
Redirecting by meta tag...
</body>
-</html>
\ No newline at end of file
+</html>
--- a/security/manager/ssl/tests/mochitest/mixedcontent/test_bug521461.html
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/test_bug521461.html
@@ -16,24 +16,24 @@
loadAsInsecure = true;
function runTest()
{
window.location = "https://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/nocontent.sjs";
window.setTimeout(function() {
isSecurityState("insecure", "location.href doesn't effect the security state");
- is(document.body.innerHTML, "This is an unsecure page!", "Document has not changed content");
+ is(document.body.innerHTML, "This is an unsecure page!\n", "Document has not changed content");
finish();
}, 1000);
}
function afterNavigationTest()
{
isSecurityState("insecure", "still not secure after navigation");
- is(document.body.innerHTML, "This is an unsecure page!", "Document has not changed content");
+ is(document.body.innerHTML, "This is an unsecure page!\n", "Document has not changed content");
finish();
}
</script>
</head>
-<body>This is an unsecure page!</body></html>
\ No newline at end of file
+<body>This is an unsecure page!</body></html>
--- a/security/manager/ssl/tests/mochitest/mixedcontent/test_innerHtmlDelayedUnsecurePicture.html
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/test_innerHtmlDelayedUnsecurePicture.html
@@ -26,17 +26,17 @@
waitForSecurityState("broken", function () {
isSecurityState("broken", "innerHTML loading insecure changed to broken");
finish();
});
}
function afterNavigationTest()
{
- is(document.getElementById("buddy").innerHTML, "", "innerHTML back to previous");
+ is(document.getElementById("buddy").innerHTML, "\n", "innerHTML back to previous");
isSecurityState("secure");
finish();
}
</script>
</head>
-<body id="buddy"></body></html>
\ No newline at end of file
+<body id="buddy"></body></html>
--- a/security/manager/ssl/tests/mochitest/mixedcontent/test_innerHtmlUnsecurePicture.html
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/test_innerHtmlUnsecurePicture.html
@@ -24,17 +24,17 @@
window.setTimeout(function() {
isSecurityState("broken", "innerHTML loading insecure changed to broken");
finish();
}, 500);
}
function afterNavigationTest()
{
- is(document.getElementById("buddy").innerHTML, "", "innerHTML back to previous");
+ is(document.getElementById("buddy").innerHTML, "\n", "innerHTML back to previous");
isSecurityState("secure");
finish();
}
</script>
</head>
-<body id="buddy"></body></html>
\ No newline at end of file
+<body id="buddy"></body></html>
--- a/security/manager/ssl/tests/mochitest/mixedcontent/test_unsecureIframeMetaRedirect.html
+++ b/security/manager/ssl/tests/mochitest/mixedcontent/test_unsecureIframeMetaRedirect.html
@@ -30,9 +30,9 @@
</script>
</head>
<body>
<iframe src="https://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/iframeMetaRedirect.html"></iframe>
</body>
</html>
-
\ No newline at end of file
+
--- a/security/manager/ssl/tests/unit/test_signed_apps/gentestfiles/unsigned_app_1/index.html
+++ b/security/manager/ssl/tests/unit/test_signed_apps/gentestfiles/unsigned_app_1/index.html
@@ -1,6 +1,6 @@
<!doctype html>
<html lang=en>
<head><meta charset=utf-8><title>Simple App</title></head>
<body><p>This is a Simple App.</body>
-</html>
-
+</html>
+
--- a/toolkit/components/extensions/test/mochitest/file_remote_frame.html
+++ b/toolkit/components/extensions/test/mochitest/file_remote_frame.html
@@ -12,9 +12,9 @@
browser.tabs.create({url: "file_sample.html"});
response.tabs = true;
} catch (e) {
// ok
}
window.parent.postMessage(response, "*");
</script>
</head>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/places/tests/browser/461710_link_page-2.html
+++ b/toolkit/components/places/tests/browser/461710_link_page-2.html
@@ -5,9 +5,9 @@
<style type="text/css">
a:link { color: #0000ff; }
a:visited { color: #ff0000; }
</style>
</head>
<body>
<p><a href="461710_visited_page.html" id="link">Link to the second visited page</a></p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/places/tests/browser/461710_link_page-3.html
+++ b/toolkit/components/places/tests/browser/461710_link_page-3.html
@@ -5,9 +5,9 @@
<style type="text/css">
a:link { color: #0000ff; }
a:visited { color: #ff0000; }
</style>
</head>
<body>
<p><a href="461710_visited_page.html" id="link">Link to the third visited page</a></p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/places/tests/browser/461710_link_page.html
+++ b/toolkit/components/places/tests/browser/461710_link_page.html
@@ -5,9 +5,9 @@
<style type="text/css">
a:link { color: #0000ff; }
a:visited { color: #ff0000; }
</style>
</head>
<body>
<p><a href="461710_visited_page.html" id="link">Link to the visited page</a></p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/places/tests/browser/461710_visited_page.html
+++ b/toolkit/components/places/tests/browser/461710_visited_page.html
@@ -1,9 +1,9 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Visited page</title>
</head>
<body>
<p>This page is marked as visited</p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/printing/tests/simplifyArticleSample.html
+++ b/toolkit/components/printing/tests/simplifyArticleSample.html
@@ -8,9 +8,9 @@
<header>Site header</header>
<div>
<h1>Article title</h1>
<h2 class="author">by Jane Doe</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetu</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetu</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetu</p>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/viewsource/test/browser/file_bug464222.html
+++ b/toolkit/components/viewsource/test/browser/file_bug464222.html
@@ -1,1 +1,1 @@
-<a href="file_bug464222.html">I'm a link</a>
\ No newline at end of file
+<a href="file_bug464222.html">I'm a link</a>
--- a/toolkit/components/windowwatcher/test/file_storage_copied.html
+++ b/toolkit/components/windowwatcher/test/file_storage_copied.html
@@ -5,9 +5,9 @@ This page is opened in a new window by t
We need to return the sessionStorage value for the item "test-item",
by way of postMessage.
-->
<head>
<body>Opened!</body>
<script>
window.postMessage(window.sessionStorage.getItem("test-item"), "*");
</script>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/file_test_dialog.html
+++ b/toolkit/components/windowwatcher/test/file_test_dialog.html
@@ -6,9 +6,9 @@ a dialog which expects a Symbol to be pa
Once we load, we call back into the opener with the argument we were
passed.
-->
<head>
<body>Opened!</body>
<script>
window.opener.done(window.arguments[0]);
</script>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/test_blank_named_window.html
+++ b/toolkit/components/windowwatcher/test/test_blank_named_window.html
@@ -37,9 +37,9 @@ name result in new windows being opened.
let win2 = window.open("data:text/html,<p>This is window 2 for test_blank_named_window.html</p>", "_blank");
isnot(win1, win2, "Should not have gotten back the same window");
win1.close();
win2.close();
});
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/test_dialog_arguments.html
+++ b/toolkit/components/windowwatcher/test/test_dialog_arguments.html
@@ -30,9 +30,9 @@ Test that arguments can be passed to dia
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/test_modal_windows.html
+++ b/toolkit/components/windowwatcher/test/test_modal_windows.html
@@ -48,9 +48,9 @@ that is opened reports itself as being m
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/test_named_window.html
+++ b/toolkit/components/windowwatcher/test/test_named_window.html
@@ -83,9 +83,9 @@ window.
is(win1.location.href, new URL(TARGET_URL_3).href,
"Should have re-targeted pre-existing window");
win1.close();
});
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/components/windowwatcher/test/test_storage_copied.html
+++ b/toolkit/components/windowwatcher/test/test_storage_copied.html
@@ -36,9 +36,9 @@ same domain as the opener.
window.sessionStorage.setItem("test-item", TEST_VALUE);
let win = window.open("file_storage_copied.html", "my_window");
let data = yield waitForMessage(win);
is(data, TEST_VALUE, "Should have cloned the test value");
win.close();
});
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--- a/toolkit/content/tests/browser/file_nonAutoplayAudio.html
+++ b/toolkit/content/tests/browser/file_nonAutoplayAudio.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
</head>
<body>
-<audio id="testAudio" src="audio.ogg" loop></audio>
\ No newline at end of file
+<audio id="testAudio" src="audio.ogg" loop></audio>
--- a/toolkit/content/tests/browser/file_webAudio.html
+++ b/toolkit/content/tests/browser/file_webAudio.html
@@ -16,9 +16,9 @@
function stop_webaudio() {
ac.suspend();
}
</script>
<body>
<button id="start" onclick="start_webaudio()">Start</button>
<button id="stop" onclick="stop_webaudio()">Stop</button>
-</body>
\ No newline at end of file
+</body>
--- a/tools/lint/eslint/manifest.tt
+++ b/tools/lint/eslint/manifest.tt
@@ -1,9 +1,9 @@
[
{
- "size": 3009784,
+ "size": 3020742,
"visibility": "public",
- "digest": "4819d3b7faf0f6bbbbf213246e7a5158f27fcaae9bd352f18d3476775931b1daca1bc4e20c589b3e8559d01e5022a4fd3708a96f2e480e354a4f9b247eab1ba6",
+ "digest": "ff65beda308192c9831a9c290182a5a314da3f4783f0e473ad4aa23f073773fee0b4b51ff39dbd6c3d4d88cd3aac5c0c6ee5ad91d0cf8c6facbf12a6505b8746",
"algorithm": "sha512",
"filename": "eslint.tar.gz"
}
]