merge mozilla-inbound to mozilla-central a=merge

This commit is contained in:
Carsten "Tomcat" Book 2017-07-04 10:48:33 +02:00
commit 8e3fa527c9
118 changed files with 886 additions and 521 deletions

View File

@ -63,6 +63,7 @@
var shadow = component.createShadowRoot();
for (var child = component.firstChild; child; child = child.nextSibling) {
if (child.nodeType === 8)
// eslint-disable-next-line no-unsanitized/property
shadow.innerHTML = child.data;
}
}

View File

@ -177,11 +177,13 @@
errDesc = document.getElementById("ed_generic");
}
// eslint-disable-next-line no-unsanitized/property
document.querySelector(".title-text").innerHTML = errTitle.innerHTML;
var sd = document.getElementById("errorShortDescText");
if (sd) {
if (gIsCertError) {
// eslint-disable-next-line no-unsanitized/property
sd.innerHTML = errDesc.innerHTML;
} else {
sd.textContent = getDescription();
@ -201,6 +203,7 @@
var ld = document.getElementById("errorLongDesc");
if (ld) {
// eslint-disable-next-line no-unsanitized/property
ld.innerHTML = errDesc.innerHTML;
}

View File

@ -334,6 +334,7 @@ function showSnippets() {
if (snippets) {
// Injecting snippets can throw if they're invalid XML.
try {
// eslint-disable-next-line no-unsanitized/property
snippetsElt.innerHTML = snippets;
// Scripts injected by innerHTML are inactive, so we have to relocate them
// through DOM manipulation to activate their contents.

View File

@ -124,6 +124,7 @@ var gEMEHandler = {
// Do a little dance to get rich content into the notification:
let fragment = document.createDocumentFragment();
let descriptionContainer = document.createElement("description");
// eslint-disable-next-line no-unsanitized/property
descriptionContainer.innerHTML = message;
while (descriptionContainer.childNodes.length) {
fragment.appendChild(descriptionContainer.childNodes[0]);

View File

@ -620,6 +620,7 @@ ContentSearchUIController.prototype = {
}
let searchWithHeader = document.getElementById("contentSearchSearchWithHeader");
if (this.input.value) {
// eslint-disable-next-line no-unsanitized/property
searchWithHeader.innerHTML = this._strings.searchForSomethingWith;
searchWithHeader.querySelector(".contentSearchSearchWithHeaderSearchText").textContent = this.input.value;
} else {

View File

@ -40,6 +40,7 @@ async function doTest(parentTabSpec, childTabSpec, testTaskFn, waitForMetaRefres
// Add the link for the child tab to the page.
let mainDiv = content.document.createElement("div");
// eslint-disable-next-line no-unsanitized/property
mainDiv.innerHTML =
'<p><a id="linkToOpenInNewTab" href="' + childTabSpec + '">Link</a></p>';
content.document.body.appendChild(mainDiv);

View File

@ -35,6 +35,7 @@
is(blockedMixedDisplay, false, "OK: Should not block mixed display content!");
var newValue = "Verifying MCB does not trigger warning/error for an http page with https css that includes http font";
// eslint-disable-next-line no-unsanitized/property
document.getElementById("testDiv").innerHTML = newValue;
}
</script>

View File

@ -36,6 +36,7 @@
var newValue = "Verifying MCB does not trigger warning/error for an http page ";
newValue += "with https css that imports another http css which includes http font";
// eslint-disable-next-line no-unsanitized/property
document.getElementById("testDiv").innerHTML = newValue;
}
</script>

View File

@ -35,6 +35,7 @@
is(blockedMixedDisplay, false, "OK: Should not block mixed display content!");
var newValue = "Verifying MCB does not trigger warning/error for an http page with https css that includes http image";
// eslint-disable-next-line no-unsanitized/property
document.getElementById("testDiv").innerHTML = newValue;
}
</script>

View File

@ -18,6 +18,7 @@ try {
}
function message(m) {
// eslint-disable-next-line no-unsanitized/property
document.getElementById("message").innerHTML = m;
window.parent.postMessage(m, "*");
}

View File

@ -18,6 +18,7 @@ try {
}
function message(m) {
// eslint-disable-next-line no-unsanitized/property
document.getElementById("message").innerHTML = m;
window.parent.postMessage(m, "*");
}

View File

@ -331,6 +331,7 @@ const CustomizableWidgets = [
let promoParentElt = doc.getElementById("PanelUI-remotetabs-mobile-promo");
// Put it all together...
let contents = bundle.getFormattedString("appMenuRemoteTabs.mobilePromo.text2", formatArgs);
// eslint-disable-next-line no-unsanitized/property
promoParentElt.innerHTML = contents;
// We manually manage the "click" event to open the promo links because
// allowing the "text-link" widget handle it has 2 problems: (1) it only

View File

@ -726,6 +726,7 @@ CustomizeMode.prototype = {
// Put the tip contents in the popup.
let bundle = this.document.getElementById("bundle_browser");
const kLabelClass = "customization-tipPanel-link";
// eslint-disable-next-line no-unsanitized/property
messageNode.innerHTML = bundle.getFormattedString("customizeTips.tip0", [
"<label class=\"customization-tipPanel-em\" value=\"" +
bundle.getString("customizeTips.tip0.hint") + "\"/>",

View File

@ -12,6 +12,7 @@ async function getResultFromSharedworker(aBrowser) {
let result = await new Promise(resolve => {
worker.port.onmessage = function(e) {
// eslint-disable-next-line no-unsanitized/property
content.document.getElementById("display").innerHTML = e.data;
resolve(e.data);
};

View File

@ -10,6 +10,7 @@
<script type="text/javascript">
let bc = new BroadcastChannel("testBroadcastChannel");
bc.onmessage = function(e) {
// eslint-disable-next-line no-unsanitized/property
document.getElementById("display").innerHTML = e.data;
};
</script>

View File

@ -1,5 +1,7 @@
<meta charset="UTF-8">
Hi, I was opened via a <script>document.write(location.search ?
Hi, I was opened via a <script>
// eslint-disable-next-line no-unsanitized/method
document.write(location.search ?
"popup call from the opened window... uh oh, that shouldn't happen!" :
"bookmarklet, and I will open a new window myself.")</script><br>
<script>

View File

@ -267,6 +267,7 @@ var gSearchResultsPane = {
strings.getFormattedString("searchResults.sorryMessageUnix", [this.query]);
let helpUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "preferences";
let brandName = document.getElementById("bundleBrand").getString("brandShortName");
// eslint-disable-next-line no-unsanitized/property
document.getElementById("need-help").innerHTML =
strings.getFormattedString("searchResults.needHelp2", [helpUrl, brandName]);
} else {

View File

@ -23,6 +23,7 @@
result["buildID"] = navigator.buildID;
result["hardwareConcurrency"] = navigator.hardwareConcurrency;
// eslint-disable-next-line no-unsanitized/property
document.getElementById("result").innerHTML = JSON.stringify(result);
}
</script>

View File

@ -20,6 +20,7 @@ function test() {
tab.linkedBrowser.removeEventListener("load", arguments.callee, true);
let iframes = tab.linkedBrowser.contentWindow.frames;
// eslint-disable-next-line no-unsanitized/property
iframes[1].document.body.innerHTML = uniqueValue;
frameCount = 0;

View File

@ -75,6 +75,7 @@ SyncedTabsDeckView.prototype = {
});
// Put it all together...
let contents = bundle.getFormattedString("appMenuRemoteTabs.mobilePromo.text2", formatArgs);
// eslint-disable-next-line no-unsanitized/property
this.container.querySelector(".device-promo").innerHTML = contents;
},

View File

@ -163,6 +163,7 @@ var onboardingTours = [
let div = win.document.createElement("div");
let defaultBrowserButtonId = win.matchMedia("(-moz-os-version: windows-win7)").matches ?
"onboarding.tour-default-browser.win7.button" : "onboarding.tour-default-browser.button";
// eslint-disable-next-line no-unsanitized/property
div.innerHTML = `
<section class="onboarding-tour-description">
<h1 data-l10n-id="onboarding.tour-default-browser.title2"></h1>

View File

@ -378,8 +378,10 @@ this.ExtensionsUI = {
function eventCallback(topic) {
let doc = this.browser.ownerDocument;
if (topic == "showing") {
// eslint-disable-next-line no-unsanitized/property
doc.getElementById("addon-webext-perm-header").innerHTML = strings.header;
let textEl = doc.getElementById("addon-webext-perm-text");
// eslint-disable-next-line no-unsanitized/property
textEl.innerHTML = strings.text;
textEl.hidden = !strings.text;
@ -436,6 +438,7 @@ this.ExtensionsUI = {
];
win.PopupNotifications.show(browser, "addon-webext-permissions", "",
// eslint-disable-next-line no-unsanitized/property
"addons-notification-icon",
action, secondaryActions, popupOptions);
});
@ -476,8 +479,10 @@ this.ExtensionsUI = {
eventCallback(topic) {
if (topic == "showing") {
let doc = this.browser.ownerDocument;
// eslint-disable-next-line no-unsanitized/property
doc.getElementById("addon-installed-notification-header")
.innerHTML = msg1;
// eslint-disable-next-line no-unsanitized/property
doc.getElementById("addon-installed-notification-message")
.innerHTML = msg2;
} else if (topic == "dismissed") {

View File

@ -248,6 +248,36 @@ add_task(async function test_one_pending() {
clearPendingCrashReports();
});
/**
* Tests that an ignored crash report does not suppress a notification that
* would be trigged by another, unignored crash report.
*/
add_task(async function test_other_ignored() {
let toIgnore = await createPendingCrashReports(1);
let notification =
await UnsubmittedCrashHandler.checkForUnsubmittedCrashReports();
Assert.ok(notification, "There should be a notification");
// Dismiss notification, creating the .dmp.ignore file
let anonyNodes = document.getAnonymousNodes(notification)[0];
let closeButton = anonyNodes.querySelector(".close-icon");
closeButton.click();
gNotificationBox.removeNotification(notification, true);
await waitForIgnoredReports(toIgnore);
notification =
await UnsubmittedCrashHandler.checkForUnsubmittedCrashReports();
Assert.ok(!notification, "There should not be a notification");
await createPendingCrashReports(1);
notification =
await UnsubmittedCrashHandler.checkForUnsubmittedCrashReports();
Assert.ok(notification, "There should be a notification");
gNotificationBox.removeNotification(notification, true);
clearPendingCrashReports();
});
/**
* Tests that there is a notification if there is more than one
* pending crash report.

View File

@ -636,6 +636,7 @@ function prompt(aBrowser, aRequest) {
string = bundle.getFormattedString("getUserMedia.shareFirefoxWarning.message",
[brand, learnMore]);
}
// eslint-disable-next-line no-unsanitized/property
warning.innerHTML = string;
}

View File

@ -1388,6 +1388,7 @@ MarkupView.prototype = {
let injectedNodes = [];
container.undo.do(() => {
// eslint-disable-next-line no-unsanitized/method
this.walker.insertAdjacentHTML(node, position, value).then(nodeArray => {
injectedNodes = nodeArray.nodes;
return nodeArray;

View File

@ -388,6 +388,7 @@ AutocompletePopup.prototype = {
}
// Update the clone content to match the current list content.
// eslint-disable-next-line no-unsanitized/property
this._listClone.innerHTML = this._list.innerHTML;
this._activeElement.setAttribute("aria-activedescendant", id);

View File

@ -29,6 +29,7 @@ function runTest(index, host, doc) {
holder.id = options.name;
let body = doc.body;
body.appendChild(holder);
// eslint-disable-next-line no-unsanitized/property
holder.innerHTML = options.template;
info("Running " + options.name);

View File

@ -265,6 +265,7 @@ ColorWidget.prototype = {
this.element = this.parentEl.ownerDocument.createElementNS(XHTML_NS, "div");
this.element.className = "colorwidget-container";
// eslint-disable-next-line no-unsanitized/property
this.element.innerHTML = `
<div class="colorwidget-top">
<div class="colorwidget-fill"></div>

View File

@ -162,6 +162,7 @@ CSSFilterEditorWidget.prototype = {
let newPresetPlaceholder = L10N.getStr("newPresetPlaceholder");
let savePresetButton = L10N.getStr("savePresetButton");
// eslint-disable-next-line no-unsanitized/property
this.el.innerHTML = `
<div class="filters-list">
<div id="filters"></div>
@ -216,6 +217,7 @@ CSSFilterEditorWidget.prototype = {
let select = this.filterSelect;
filterList.forEach(filter => {
let option = this.doc.createElementNS(XHTML_NS, "option");
// eslint-disable-next-line no-unsanitized/property
option.innerHTML = option.value = filter.name;
select.appendChild(option);
});
@ -628,6 +630,7 @@ CSSFilterEditorWidget.prototype = {
*/
render: function () {
if (!this.filters.length) {
// eslint-disable-next-line no-unsanitized/property
this.filtersList.innerHTML = `<p> ${L10N.getStr("emptyFilterList")} <br />
${L10N.getStr("addUsingList")} </p>`;
this.emit("render");
@ -709,6 +712,7 @@ CSSFilterEditorWidget.prototype = {
}
if (!presets || !presets.length) {
// eslint-disable-next-line no-unsanitized/property
this.presetsList.innerHTML = `<p>${L10N.getStr("emptyPresetList")}</p>`;
this.emit("render");
return;

View File

@ -506,6 +506,7 @@ HTMLTooltip.prototype = {
if (this.type === TYPE.ARROW) {
html += '<div class="tooltip-arrow"></div>';
}
// eslint-disable-next-line no-unsanitized/property
container.innerHTML = html;
return container;
},

View File

@ -106,6 +106,7 @@ function setImageTooltip(tooltip, doc, imageUrl, options) {
<span class="theme-comment devtools-tooltip-caption">${label}</span>
</div>`;
}
// eslint-disable-next-line no-unsanitized/property
div.innerHTML = html;
// Calculate tooltip dimensions

View File

@ -819,6 +819,7 @@ Editor.prototype = {
let marker = cm.getWrapperElement().ownerDocument.createElement("div");
marker.className = markerClass;
// eslint-disable-next-line no-unsanitized/property
marker.innerHTML = content;
cm.setGutterMarker(info.line, gutterName, marker);
},

View File

@ -306,6 +306,7 @@ function* generateConsoleApiStubs() {
[key, code],
function ([subKey, subCode]) {
let script = content.document.createElement("script");
// eslint-disable-next-line no-unsanitized/property
script.innerHTML = `function triggerPacket() {${subCode}}`;
content.document.body.appendChild(script);
content.wrappedJSObject.triggerPacket();
@ -349,6 +350,7 @@ function* generateCssMessageStubs() {
[key, code],
function ([subKey, subCode]) {
let style = content.document.createElement("style");
// eslint-disable-next-line no-unsanitized/property
style.innerHTML = subCode;
content.document.body.appendChild(style);
}
@ -438,6 +440,7 @@ function* generateNetworkEventStubs() {
[key, code],
function ([subKey, subCode]) {
let script = content.document.createElement("script");
// eslint-disable-next-line no-unsanitized/property
script.innerHTML = `function triggerPacket() {${subCode}}`;
content.document.body.appendChild(script);
content.wrappedJSObject.triggerPacket();
@ -484,6 +487,7 @@ function* generatePageErrorStubs() {
[key, code],
function ([subKey, subCode]) {
let script = content.document.createElement("script");
// eslint-disable-next-line no-unsanitized/property
script.innerHTML = subCode;
content.document.body.appendChild(script);
script.remove();

View File

@ -177,7 +177,7 @@ stubPackets.set("GET request", {
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 7,
"lineNumber": 8,
"columnNumber": 9,
"functionName": null,
"asyncCause": null
@ -250,7 +250,7 @@ stubPackets.set("XHR GET request", {
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 7,
"lineNumber": 8,
"columnNumber": 9,
"functionName": null,
"asyncCause": null
@ -323,7 +323,7 @@ stubPackets.set("XHR POST request", {
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 7,
"lineNumber": 8,
"columnNumber": 9,
"functionName": null,
"asyncCause": null

View File

@ -44,7 +44,7 @@ stubPreparedMessages.set("ReferenceError: asdf is not defined", new ConsoleMessa
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},
@ -80,7 +80,7 @@ stubPreparedMessages.set("SyntaxError: redeclaration of let a", new ConsoleMessa
"stacktrace": [
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},
@ -135,7 +135,7 @@ stubPreparedMessages.set("TypeError longString message", new ConsoleMessage({
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},
@ -197,7 +197,7 @@ stubPackets.set("ReferenceError: asdf is not defined", {
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},
@ -233,7 +233,7 @@ stubPackets.set("SyntaxError: redeclaration of let a", {
"stacktrace": [
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},
@ -289,7 +289,7 @@ stubPackets.set("TypeError longString message", {
},
{
"filename": "resource://testing-common/content-task.js line 52 > eval",
"lineNumber": 6,
"lineNumber": 7,
"columnNumber": 9,
"functionName": null
},

View File

@ -1997,6 +1997,7 @@ var WalkerActor = protocol.ActorClassWithSpec(walkerSpec, {
if (rawNode.nodeType !== rawNode.ownerDocument.ELEMENT_NODE) {
throw new Error("Can only change innerHTML to element nodes");
}
// eslint-disable-next-line no-unsanitized/property
rawNode.innerHTML = value;
},
@ -2036,12 +2037,14 @@ var WalkerActor = protocol.ActorClassWithSpec(walkerSpec, {
if (parsedDOM.head.innerHTML === "") {
parentNode.replaceChild(parsedDOM.body, rawNode);
} else {
// eslint-disable-next-line no-unsanitized/property
rawNode.outerHTML = value;
}
} else if (rawNode.tagName === "HEAD") {
if (parsedDOM.body.innerHTML === "") {
parentNode.replaceChild(parsedDOM.head, rawNode);
} else {
// eslint-disable-next-line no-unsanitized/property
rawNode.outerHTML = value;
}
} else if (node.isDocumentElement()) {
@ -2065,6 +2068,7 @@ var WalkerActor = protocol.ActorClassWithSpec(walkerSpec, {
rawNode.replaceChild(parsedDOM.head, rawNode.querySelector("head"));
rawNode.replaceChild(parsedDOM.body, rawNode.querySelector("body"));
} else {
// eslint-disable-next-line no-unsanitized/property
rawNode.outerHTML = value;
}
},

View File

@ -42,6 +42,7 @@ Test that css-logic calculates CSS specificity properly
function createDocument() {
let text = TEST_DATA.map(i=>i.text).join(",");
text = '<style type="text/css">' + text + " {color:red;}</style>";
// eslint-disable-next-line no-unsanitized/property
document.body.innerHTML = text;
}

View File

@ -109,7 +109,7 @@ protected:
{
}
nsTArray< nsCOMPtr<nsIContent> > mElements;
AutoTArray<nsCOMPtr<nsIContent>, 10> mElements;
};

View File

@ -301,8 +301,9 @@ public:
if (mTimer) {
mTimer->SetTarget(mTarget);
mTimer->InitWithFuncCallback(TimedOut, this, aDelay,
nsITimer::TYPE_ONE_SHOT);
mTimer->InitWithNamedFuncCallback(TimedOut, this, aDelay,
nsITimer::TYPE_ONE_SHOT,
"CollectorRunner");
mTimerActive = true;
}
}
@ -360,8 +361,9 @@ public:
// We weren't allowed to do idle dispatch immediately, do it after a
// short timeout.
mScheduleTimer->InitWithFuncCallback(ScheduleTimedOut, this, 16,
nsITimer::TYPE_ONE_SHOT_LOW_PRIORITY);
mScheduleTimer->InitWithNamedFuncCallback(ScheduleTimedOut, this, 16,
nsITimer::TYPE_ONE_SHOT_LOW_PRIORITY,
"CollectorRunner");
}
}
}

View File

@ -1227,7 +1227,6 @@ BrowserElementChild.prototype = {
var visible = data.json.visible;
if (docShell && docShell.isActive !== visible) {
docShell.isActive = visible;
sendAsyncMsg('visibilitychange', {visible: visible});
// Ensure painting is not frozen if the app goes visible.
if (visible && this._paintFrozenTimer) {

View File

@ -172,7 +172,6 @@ BrowserElementParent.prototype = {
"fullscreen-origin-change": this._fullscreenOriginChange,
"exit-dom-fullscreen": this._exitDomFullscreen,
"got-visible": this._gotDOMRequestResult,
"visibilitychange": this._childVisibilityChange,
"got-set-input-method-active": this._gotDOMRequestResult,
"scrollviewchange": this._handleScrollViewChange,
"caretstatechanged": this._handleCaretStateChanged,
@ -862,16 +861,6 @@ BrowserElementParent.prototype = {
{visible: !this._window.document.hidden});
},
/*
* Called when the child notices that its visibility has changed.
*/
_childVisibilityChange: function(data) {
debug("_childVisibilityChange(" + data.json.visible + ")");
this._frameLoader.visible = data.json.visible;
this._fireEventFromMsg(data);
},
_requestedDOMFullscreen: function() {
this._pendingDOMFullscreen = true;
this._windowUtils.remoteFrameFullscreenChanged(this._frameElement);

View File

@ -320,11 +320,6 @@ WebGLTexture::IsComplete(const char* funcName, uint32_t texUnit,
return false;
}
if (!EnsureLevelInitialized(funcName, mBaseMipmapLevel)) {
*out_initFailed = true;
return false;
}
// Texture completeness is established at GLES 3.0.4, p160-161.
// "[A] texture is complete unless any of the following conditions hold true:"
@ -452,6 +447,11 @@ WebGLTexture::IsComplete(const char* funcName, uint32_t texUnit,
// (already covered)
}
if (!EnsureLevelInitialized(funcName, mBaseMipmapLevel)) {
*out_initFailed = true;
return false;
}
return true;
}

View File

@ -228,7 +228,7 @@ GetDirectoryListingTaskParent::GetSuccessRequestResult(ErrorResult& aRv) const
nsresult rv = NS_NewLocalFile(mTargetData[i].mPath, true,
getter_AddRefs(path));
if (NS_WARN_IF(NS_FAILED(rv))) {
return FileSystemErrorResponse(rv);
continue;
}
FileSystemDirectoryListingResponseFile fileData;
@ -251,7 +251,7 @@ GetDirectoryListingTaskParent::GetSuccessRequestResult(ErrorResult& aRv) const
rv =
IPCBlobUtils::Serialize(blobImpl, mRequestParent->Manager(), ipcBlob);
if (NS_WARN_IF(NS_FAILED(rv))) {
return FileSystemErrorResponse(rv);
continue;
}
fileData.blob() = ipcBlob;

View File

@ -27,7 +27,7 @@ function create_fileList() {
}
script.addMessageListener("dir.opened", onOpened);
script.sendAsyncMessage("dir.open", { path: 'ProfD' });
script.sendAsyncMessage("dir.open", { path: 'test' });
}
function test_worker() {

View File

@ -342,9 +342,10 @@ DirectInputMessageLoopOnceCallback(nsITimer *aTimer, void* aClosure)
}
aTimer->Cancel();
if (!sIsShutdown) {
aTimer->InitWithFuncCallback(DirectInputMessageLoopOnceCallback,
nullptr, kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT);
aTimer->InitWithNamedFuncCallback(DirectInputMessageLoopOnceCallback,
nullptr, kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT,
"DirectInputMessageLoopOnceCallback");
}
}
@ -367,9 +368,10 @@ class WindowsGamepadService
void StartMessageLoop()
{
MOZ_ASSERT(mDirectInputTimer);
mDirectInputTimer->InitWithFuncCallback(DirectInputMessageLoopOnceCallback,
nullptr, kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT);
mDirectInputTimer->InitWithNamedFuncCallback(DirectInputMessageLoopOnceCallback,
nullptr, kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT,
"DirectInputMessageLoopOnceCallback");
}
void Startup();
@ -444,8 +446,9 @@ WindowsGamepadService::XInputMessageLoopOnceCallback(nsITimer *aTimer,
self->PollXInput();
if (self->mIsXInputMonitoring) {
aTimer->Cancel();
aTimer->InitWithFuncCallback(XInputMessageLoopOnceCallback, self,
kWindowsGamepadPollInterval, nsITimer::TYPE_ONE_SHOT);
aTimer->InitWithNamedFuncCallback(XInputMessageLoopOnceCallback, self,
kWindowsGamepadPollInterval, nsITimer::TYPE_ONE_SHOT,
"XInputMessageLoopOnceCallback");
}
}
@ -533,9 +536,10 @@ WindowsGamepadService::ScanForDevices()
mXInputTimer->Cancel();
if (ScanForXInputDevices()) {
mIsXInputMonitoring = true;
mXInputTimer->InitWithFuncCallback(XInputMessageLoopOnceCallback, this,
kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT);
mXInputTimer->InitWithNamedFuncCallback(XInputMessageLoopOnceCallback, this,
kWindowsGamepadPollInterval,
nsITimer::TYPE_ONE_SHOT,
"XInputMessageLoopOnceCallback");
} else {
mIsXInputMonitoring = false;
}
@ -943,9 +947,10 @@ WindowsGamepadService::DevicesChanged(bool aIsStablizing)
{
if (aIsStablizing) {
mDeviceChangeTimer->Cancel();
mDeviceChangeTimer->InitWithFuncCallback(DevicesChangeCallback, this,
kDevicesChangedStableDelay,
nsITimer::TYPE_ONE_SHOT);
mDeviceChangeTimer->InitWithNamedFuncCallback(DevicesChangeCallback, this,
kDevicesChangedStableDelay,
nsITimer::TYPE_ONE_SHOT,
"DevicesChangeCallback");
} else {
ScanForDevices();
}

View File

@ -12463,10 +12463,11 @@ ConnectionPool::AdjustIdleTimer()
}
MOZ_ALWAYS_SUCCEEDS(
mIdleTimer->InitWithFuncCallback(IdleTimerCallback,
this,
delay,
nsITimer::TYPE_ONE_SHOT));
mIdleTimer->InitWithNamedFuncCallback(IdleTimerCallback,
this,
delay,
nsITimer::TYPE_ONE_SHOT,
"ConnectionPool::IdleTimerCallback"));
mTargetIdleTime = newTargetIdleTime;
}

View File

@ -53,6 +53,7 @@
#include "mozilla/intl/LocaleService.h"
#include "mozilla/ipc/TestShellChild.h"
#include "mozilla/jsipc/CrossProcessObjectWrappers.h"
#include "mozilla/jsipc/PJavaScript.h"
#include "mozilla/layers/APZChild.h"
#include "mozilla/layers/CompositorManagerChild.h"
#include "mozilla/layers/ContentProcessController.h"
@ -3539,5 +3540,16 @@ ContentChild::RecvShareCodeCoverageMutex(const CrossProcessMutexHandle& aHandle)
#endif
}
already_AddRefed<nsIEventTarget>
ContentChild::GetSpecificMessageEventTarget(const Message& aMsg)
{
if (aMsg.type() == PJavaScript::Msg_DropTemporaryStrongReferences__ID
|| aMsg.type() == PJavaScript::Msg_DropObject__ID) {
return do_AddRef(SystemGroup::EventTargetFor(TaskCategory::Other));
}
return nullptr;
}
} // namespace dom
} // namespace mozilla

View File

@ -681,6 +681,9 @@ private:
virtual already_AddRefed<nsIEventTarget>
GetConstructedEventTarget(const Message& aMsg) override;
virtual already_AddRefed<nsIEventTarget>
GetSpecificMessageEventTarget(const Message& aMsg) override;
InfallibleTArray<nsAutoPtr<AlertObserver> > mAlertObservers;
RefPtr<ConsoleListener> mConsoleListener;

View File

@ -91,8 +91,9 @@ ChannelMediaDecoder::ResourceCallback::NotifyDataArrived()
// calls to MediaDecoder::NotifyDataArrived() which will update the buffer
// ranges of the reader.
mTimerArmed = true;
mTimer->InitWithFuncCallback(
TimerCallback, this, sDelay, nsITimer::TYPE_ONE_SHOT);
mTimer->InitWithNamedFuncCallback(
TimerCallback, this, sDelay, nsITimer::TYPE_ONE_SHOT,
"ChannelMediaDecoder::ResourceCallback::TimerCallback");
}
void

View File

@ -1419,8 +1419,9 @@ void nsPluginInstanceOwner::AddToCARefreshTimer() {
if (sCARefreshListeners->Length() == 1) {
*sCATimer = do_CreateInstance("@mozilla.org/timer;1");
(*sCATimer)->InitWithFuncCallback(CARefresh, nullptr,
DEFAULT_REFRESH_RATE, nsITimer::TYPE_REPEATING_SLACK);
(*sCATimer)->InitWithNamedFuncCallback(CARefresh, nullptr,
DEFAULT_REFRESH_RATE, nsITimer::TYPE_REPEATING_SLACK,
"nsPluginInstanceOwner::CARefresh");
}
}

View File

@ -3634,10 +3634,11 @@ QuotaManager::Shutdown()
// Kick off the shutdown timer.
MOZ_ALWAYS_SUCCEEDS(
mShutdownTimer->InitWithFuncCallback(&ShutdownTimerCallback,
this,
DEFAULT_SHUTDOWN_TIMER_MS,
nsITimer::TYPE_ONE_SHOT));
mShutdownTimer->InitWithNamedFuncCallback(&ShutdownTimerCallback,
this,
DEFAULT_SHUTDOWN_TIMER_MS,
nsITimer::TYPE_ONE_SHOT,
"QuotaManager::ShutdownTimerCallback"));
// Each client will spin the event loop while we wait on all the threads
// to close. Our timer may fire during that loop.

View File

@ -1985,10 +1985,11 @@ RuntimeService::ShutdownIdleThreads(nsITimer* aTimer, void* /* aClosure */)
// Reschedule the timer.
MOZ_ALWAYS_SUCCEEDS(
aTimer->InitWithFuncCallback(ShutdownIdleThreads,
nullptr,
delay,
nsITimer::TYPE_ONE_SHOT));
aTimer->InitWithNamedFuncCallback(ShutdownIdleThreads,
nullptr,
delay,
nsITimer::TYPE_ONE_SHOT,
"RuntimeService::ShutdownIdleThreads"));
}
for (uint32_t index = 0; index < expiredThreads.Length(); index++) {
@ -2622,10 +2623,11 @@ RuntimeService::NoteIdleThread(WorkerThread* aThread)
MOZ_ALWAYS_SUCCEEDS(aThread->Shutdown());
} else if (scheduleTimer) {
MOZ_ALWAYS_SUCCEEDS(
mIdleThreadTimer->InitWithFuncCallback(ShutdownIdleThreads,
nullptr,
IDLE_THREAD_TIMEOUT_SEC * 1000,
nsITimer::TYPE_ONE_SHOT));
mIdleThreadTimer->InitWithNamedFuncCallback(ShutdownIdleThreads,
nullptr,
IDLE_THREAD_TIMEOUT_SEC * 1000,
nsITimer::TYPE_ONE_SHOT,
"RuntimeService::ShutdownIdleThreads"));
}
}

View File

@ -351,11 +351,15 @@ nsBindingManager::AddToAttachedQueue(nsXBLBinding* aBinding)
void
nsBindingManager::PostProcessAttachedQueueEvent()
{
MOZ_ASSERT(NS_IsMainThread());
if (!mDocument) {
return;
}
mProcessAttachedQueueEvent =
NewRunnableMethod("nsBindingManager::DoProcessAttachedQueue",
this, &nsBindingManager::DoProcessAttachedQueue);
nsresult rv = NS_DispatchToCurrentThread(mProcessAttachedQueueEvent);
if (NS_SUCCEEDED(rv) && mDocument) {
nsresult rv = mDocument->EventTargetFor(TaskCategory::Other)->Dispatch(do_AddRef(mProcessAttachedQueueEvent));
if (NS_SUCCEEDED(rv)) {
mDocument->BlockOnload();
}
}

View File

@ -12,6 +12,7 @@
#include "mozilla/gfx/Blur.h"
#include "mozilla/gfx/PathHelpers.h"
#include "mozilla/Maybe.h"
#include "mozilla/SystemGroup.h"
#include "nsExpirationTracker.h"
#include "nsClassHashtable.h"
#include "gfxUtils.h"
@ -351,7 +352,8 @@ class BlurCache final : public nsExpirationTracker<BlurCacheData,4>
{
public:
BlurCache()
: nsExpirationTracker<BlurCacheData, 4>(GENERATION_MS, "BlurCache")
: nsExpirationTracker<BlurCacheData, 4>(GENERATION_MS, "BlurCache",
SystemGroup::EventTargetFor(TaskCategory::Other))
{
}

View File

@ -8,6 +8,7 @@
#include "PLDHashTable.h"
#include "nsExpirationTracker.h"
#include "nsClassHashtable.h"
#include "mozilla/SystemGroup.h"
#include "mozilla/Telemetry.h"
#include "gfxGradientCache.h"
#include <time.h>
@ -123,7 +124,8 @@ class GradientCache final : public nsExpirationTracker<GradientCacheData,4>
public:
GradientCache()
: nsExpirationTracker<GradientCacheData,4>(MAX_GENERATION_MS,
"GradientCache")
"GradientCache",
SystemGroup::EventTargetFor(TaskCategory::Other))
{
srand(time(nullptr));
mTimerPeriod = rand() % MAX_GENERATION_MS + 1;

View File

@ -457,7 +457,8 @@ public:
// because on a late 2013 15" retina, it takes about that
// long to come back up from sleep.
uint32_t delay = 100;
mTimer->InitWithFuncCallback(RetryEnableVsync, this, delay, nsITimer::TYPE_ONE_SHOT);
mTimer->InitWithNamedFuncCallback(RetryEnableVsync, this, delay, nsITimer::TYPE_ONE_SHOT,
"RetryEnableVsync");
return;
}

View File

@ -113,10 +113,11 @@ EnableSensorNotifications(SensorType aSensor)
if (!sUpdateTimer) {
CallCreateInstance("@mozilla.org/timer;1", &sUpdateTimer);
if (sUpdateTimer) {
sUpdateTimer->InitWithFuncCallback(UpdateHandler,
nullptr,
DEFAULT_SENSOR_POLL,
nsITimer::TYPE_REPEATING_SLACK);
sUpdateTimer->InitWithNamedFuncCallback(UpdateHandler,
nullptr,
DEFAULT_SENSOR_POLL,
nsITimer::TYPE_REPEATING_SLACK,
"hal_impl::UpdateHandler");
}
}
}

View File

@ -1184,10 +1184,11 @@ ParentImpl::ShutdownBackgroundThread()
TimerCallbackClosure closure(thread, liveActors);
MOZ_ALWAYS_SUCCEEDS(
shutdownTimer->InitWithFuncCallback(&ShutdownTimerCallback,
&closure,
kShutdownTimerDelayMS,
nsITimer::TYPE_ONE_SHOT));
shutdownTimer->InitWithNamedFuncCallback(&ShutdownTimerCallback,
&closure,
kShutdownTimerDelayMS,
nsITimer::TYPE_ONE_SHOT,
"ParentImpl::ShutdownTimerCallback"));
SpinEventLoopUntil([&]() { return !sLiveActorCount; });

View File

@ -84,40 +84,6 @@ bool nsStyleCoord::operator==(const nsStyleCoord& aOther) const
return false;
}
uint32_t nsStyleCoord::HashValue(uint32_t aHash = 0) const
{
aHash = mozilla::AddToHash(aHash, mUnit);
switch (mUnit) {
case eStyleUnit_Null:
case eStyleUnit_Normal:
case eStyleUnit_Auto:
case eStyleUnit_None:
return mozilla::AddToHash(aHash, true);
case eStyleUnit_Percent:
case eStyleUnit_Factor:
case eStyleUnit_Degree:
case eStyleUnit_Grad:
case eStyleUnit_Radian:
case eStyleUnit_Turn:
case eStyleUnit_FlexFraction:
return mozilla::AddToHash(aHash, mValue.mFloat);
case eStyleUnit_Coord:
case eStyleUnit_Integer:
case eStyleUnit_Enumerated:
return mozilla::AddToHash(aHash, mValue.mInt);
case eStyleUnit_Calc:
Calc* calcValue = GetCalcValue();
aHash = mozilla::AddToHash(aHash, calcValue->mLength);
if (HasPercent()) {
return mozilla::AddToHash(aHash, calcValue->mPercent);
}
return aHash;
}
MOZ_ASSERT(false, "unexpected unit");
return aHash;
}
void nsStyleCoord::Reset()
{
Reset(mUnit, mValue);

View File

@ -224,7 +224,6 @@ public:
double GetAngleValueInRadians() const;
float GetFlexFractionValue() const;
Calc* GetCalcValue() const;
uint32_t HashValue(uint32_t aHash) const;
template<typename T,
typename = typename std::enable_if<std::is_enum<T>::value>::type>
T GetEnumValue() const

View File

@ -850,10 +850,11 @@ void TransportLayerDtls::StateChange(TransportLayer *layer, State state) {
TL_SET_STATE(TS_CONNECTING);
timer_->Cancel();
timer_->SetTarget(target_);
timer_->InitWithFuncCallback(TimerCallback,
this,
0,
nsITimer::TYPE_ONE_SHOT);
timer_->InitWithNamedFuncCallback(TimerCallback,
this,
0,
nsITimer::TYPE_ONE_SHOT,
"TransportLayerDtls::TimerCallback");
break;
case TS_CLOSED:
@ -912,9 +913,10 @@ void TransportLayerDtls::Handshake() {
MOZ_MTLOG(ML_DEBUG,
LAYER_INFO << "Setting DTLS timeout to " << timeout_ms);
timer_->SetTarget(target_);
timer_->InitWithFuncCallback(TimerCallback,
this, timeout_ms,
nsITimer::TYPE_ONE_SHOT);
timer_->InitWithNamedFuncCallback(TimerCallback,
this, timeout_ms,
nsITimer::TYPE_ONE_SHOT,
"TransportLayerDtls::TimerCallback");
}
break;
default:

View File

@ -91,8 +91,9 @@ public:
{
mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
mTimer->SetTarget(test_utils->sts_target());
mTimer->InitWithFuncCallback(FakeAudioStreamTrackGenerateData, this, 20,
nsITimer::TYPE_REPEATING_SLACK);
mTimer->InitWithNamedFuncCallback(FakeAudioStreamTrackGenerateData, this, 20,
nsITimer::TYPE_REPEATING_SLACK,
"FakeAudioStreamTrack::FakeAudioStreamTrackGenerateData");
}

View File

@ -282,8 +282,9 @@ WebrtcVideoConduit::WebrtcVideoConduit(RefPtr<WebRtcCallWrapper> aCall)
self->mRecvPacketCounts = stats.rtcp_packet_type_counts;
}
};
mVideoStatsTimer->InitWithFuncCallback(
callback, this, 1000, nsITimer::TYPE_REPEATING_PRECISE_CAN_SKIP);
mVideoStatsTimer->InitWithNamedFuncCallback(
callback, this, 1000, nsITimer::TYPE_REPEATING_PRECISE_CAN_SKIP,
"WebrtcVideoConduit::WebrtcVideoConduit");
}
WebrtcVideoConduit::~WebrtcVideoConduit()

View File

@ -370,8 +370,9 @@ nsresult PeerConnectionCtx::Initialize() {
MOZ_ASSERT(mTelemetryTimer);
nsresult rv = mTelemetryTimer->SetTarget(gMainThread);
NS_ENSURE_SUCCESS(rv, rv);
mTelemetryTimer->InitWithFuncCallback(EverySecondTelemetryCallback_m, this, 1000,
nsITimer::TYPE_REPEATING_PRECISE_CAN_SKIP);
mTelemetryTimer->InitWithNamedFuncCallback(EverySecondTelemetryCallback_m, this, 1000,
nsITimer::TYPE_REPEATING_PRECISE_CAN_SKIP,
"EverySecondTelemetryCallback_m");
if (XRE_IsContentProcess()) {
WebrtcGlobalChild::Create();

View File

@ -2523,8 +2523,9 @@ PeerConnectionImpl::InsertDTMF(mozilla::dom::RTCRtpSender& sender,
state->mDuration = duration;
state->mInterToneGap = interToneGap;
if (!state->mTones.IsEmpty()) {
state->mSendTimer->InitWithFuncCallback(DTMFSendTimerCallback_m, state, 0,
nsITimer::TYPE_ONE_SHOT);
state->mSendTimer->InitWithNamedFuncCallback(DTMFSendTimerCallback_m, state, 0,
nsITimer::TYPE_ONE_SHOT,
"DTMFSendTimerCallback_m");
}
return NS_OK;
}
@ -4048,13 +4049,15 @@ PeerConnectionImpl::DTMFSendTimerCallback_m(nsITimer* timer, void* closure)
state->mTones.Cut(0, 1);
if (tone == -1) {
state->mSendTimer->InitWithFuncCallback(DTMFSendTimerCallback_m, state,
2000, nsITimer::TYPE_ONE_SHOT);
state->mSendTimer->InitWithNamedFuncCallback(DTMFSendTimerCallback_m, state,
2000, nsITimer::TYPE_ONE_SHOT,
"DTMFSendTimerCallback_m");
} else {
// Reset delay if necessary
state->mSendTimer->InitWithFuncCallback(DTMFSendTimerCallback_m, state,
state->mDuration + state->mInterToneGap,
nsITimer::TYPE_ONE_SHOT);
state->mSendTimer->InitWithNamedFuncCallback(DTMFSendTimerCallback_m, state,
state->mDuration + state->mInterToneGap,
nsITimer::TYPE_ONE_SHOT,
"DTMFSendTimerCallback_m");
RefPtr<AudioSessionConduit> conduit =
state->mPeerConnectionImpl->mMedia->GetAudioConduit(state->mLevel);

View File

@ -597,6 +597,7 @@ Pref.prototype = {
this.li.setAttribute("contextmenu", "prefs-context-menu");
// Create list item outline, bind to object actions
// eslint-disable-next-line no-unsanitized/property
this.li.innerHTML =
"<div class='pref-name' " +
"onclick='AboutConfig.selectOrToggleBoolPref(event);'>" +

View File

@ -33,6 +33,7 @@ for (var y = 0; y < 2000; y += 100) {
g = g & 0xFC;
var b = (Math.floor(y / 3) % 256);
b = b & 0xF8;
// eslint-disable-next-line no-unsanitized/method
document.write("<div style='float: left; width: 100px; height: 100px; margin: 0; padding: 0; border: none; background-color: rgb(" + r + "," + g + "," + b + ")'> </div>\n");
}
document.write("</div>\n");

View File

@ -119,6 +119,7 @@
SpecialPowers.Ci.nsIDocShell).editor;
};
setValue = function(val) {
// eslint-disable-next-line no-unsanitized/property
contentEditable.innerHTML = val;
};
setSelection = function(pos) {
@ -136,6 +137,7 @@
SpecialPowers.Ci.nsIDocShell).editor;
};
setValue = function(val) {
// eslint-disable-next-line no-unsanitized/property
designMode.contentDocument.body.innerHTML = val;
};
setSelection = function(pos) {

View File

@ -5741,13 +5741,9 @@ pref("fuzzing.enabled", false);
#endif
#if defined(XP_WIN)
#if defined(NIGHTLY_BUILD)
pref("layers.mlgpu.dev-enabled", true);
#else
pref("layers.mlgpu.dev-enabled", false);
#endif
// Both this and the master "enabled" pref must be on to use Advanced Layers
// Both this and the master "enabled" pref must be on to use Advanced LAyers
// on Windows 7.
pref("layers.mlgpu.enable-on-windows7", false);
#endif

View File

@ -64,14 +64,14 @@ CacheFileChunkBuffer::FillInvalidRanges(CacheFileChunkBuffer *aOther,
MOZ_RELEASE_ASSERT(invalidOffset <= validOffset);
invalidLength = validOffset - invalidOffset;
if (invalidLength > 0) {
MOZ_RELEASE_ASSERT(invalidOffset + invalidLength <= aOther->mBufSize);
MOZ_RELEASE_ASSERT(invalidOffset + invalidLength <= aOther->mDataSize);
memcpy(mBuf + invalidOffset, aOther->mBuf + invalidOffset, invalidLength);
}
invalidOffset = validOffset + validLength;
}
if (invalidOffset < aOther->mBufSize) {
invalidLength = aOther->mBufSize - invalidOffset;
if (invalidOffset < aOther->mDataSize) {
invalidLength = aOther->mDataSize - invalidOffset;
memcpy(mBuf + invalidOffset, aOther->mBuf + invalidOffset, invalidLength);
}

554
npm-shrinkwrap.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,9 +7,10 @@
"escope": "^3.6.0",
"eslint": "3.19.0",
"eslint-plugin-html": "2.0.3",
"eslint-plugin-mozilla": "file:tools\\lint\\eslint\\eslint-plugin-mozilla",
"eslint-plugin-mozilla": "file:tools/lint/eslint/eslint-plugin-mozilla",
"eslint-plugin-no-unsanitized": "2.0.1",
"eslint-plugin-react": "6.10.3",
"eslint-plugin-spidermonkey-js": "file:tools\\lint\\eslint\\eslint-plugin-spidermonkey-js",
"eslint-plugin-spidermonkey-js": "file:tools/lint/eslint/eslint-plugin-spidermonkey-js",
"espree": "^3.4.0",
"estraverse": "^4.2.0",
"ini-parser": "^0.0.2",

View File

@ -2,6 +2,7 @@
"use strict";
document.open();
// eslint-disable-next-line no-unsanitized/method
document.write("This is insecure XSS script " + document.cookie);
isSecurityState("broken", "security broken after document write from unsecure script");
finish();

View File

@ -7,6 +7,7 @@
This is frame 1:
<script>
"use strict";
// eslint-disable-next-line no-unsanitized/method
document.write(location.href);
</script>
</body>

View File

@ -7,6 +7,7 @@
This is frame 2:
<script>
"use strict";
// eslint-disable-next-line no-unsanitized/method
document.write(location.href);
</script>
<iframe src="http://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/iframe.html"></iframe>

View File

@ -19,6 +19,7 @@
<!-- This frame should be loaded over HTTPS to set the STS header. -->
This frame was loaded using
<script>
// eslint-disable-next-line no-unsanitized/method
document.write(document.location.protocol);
</script>
and set the STS header to force this site and allow subdomain upgrading.

View File

@ -19,6 +19,7 @@
<!-- This frame should be loaded over HTTPS to set the STS header. -->
This frame was loaded using
<script>
// eslint-disable-next-line no-unsanitized/method
document.write(document.location.protocol);
</script>
and set the STS header to force this site and allow subdomain upgrading.

View File

@ -19,6 +19,7 @@
<!-- This frame should be loaded over HTTPS to set the STS header. -->
This frame was loaded using
<script>
// eslint-disable-next-line no-unsanitized/method
document.write(document.location.protocol);
</script>
and set the STS header to force this site and allow subdomain upgrading.

View File

@ -202,6 +202,7 @@ macosx64/opt:
- macosx64-tests-talos
- macosx64-tests
- desktop-screenshot-capture
- awsy
macosx64-nightly/opt:
build-platform: macosx64-nightly/opt

View File

@ -21,6 +21,8 @@ awsy:
by-test-platform:
windows.*/opt:
- awsy/taskcluster_windows_config.py
macosx.*/opt:
- awsy/macosx_config.py
default:
- awsy/linux_config.py

View File

@ -0,0 +1,41 @@
import os
import platform
PYTHON = "/usr/bin/env python"
VENV_PATH = '%s/build/venv' % os.getcwd()
TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/macosx64/releng.manifest"
MINIDUMP_STACKWALK_PATH = "macosx64-minidump_stackwalk"
ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.dmg")
config = {
"log_name": "awsy",
"download_tooltool": True,
"installer_path": INSTALLER_PATH,
"virtualenv_path": VENV_PATH,
"find_links": [
"http://pypi.pvt.build.mozilla.org/pub",
"http://pypi.pub.build.mozilla.org/pub",
],
"cmd_timeout": 6500,
"pip_index": False,
"exes": {
},
"title": os.uname()[1].lower().split('.')[0],
"default_actions": [
"clobber",
"download-and-extract",
"populate-webroot",
"create-virtualenv",
"install",
"run-tests",
],
"default_blob_upload_servers": [
"https://blobupload.elasticbeanstalk.com",
],
"blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
"download_minidump_stackwalk": True,
"minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH,
"minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH,
"tooltool_cache": os.path.join(os.getcwd(), "tooltool_cache"),
}

View File

@ -29,13 +29,17 @@
function triggerBuildXpi() {
function $(id) { return document.getElementById(id); }
// eslint-disable-next-line no-unsanitized/property
$("status-text").innerHTML = "Preparing ...";
$("result").style.display = "none";
$("status").style.display = "inline";
createXpiDataUri(base, files, {
// eslint-disable-next-line no-unsanitized/property
onprogress(p) { $("status-text").innerHTML = "Preparing ... " + p.toFixed(0) + "%"; },
// eslint-disable-next-line no-unsanitized/property
onerror(e) { $("status-text").innerHTML = "Oops, couldn't generate XPI. Reload to retry.<br/>" + e; },
onsuccess(u) {

View File

@ -31,8 +31,11 @@
$("status").style.display = "inline";
createXpiDataUri(base, files, {
// eslint-disable-next-line no-unsanitized/property
onprogress(p) { $("status-text").innerHTML = "Preparing ... " + p.toFixed(0) + "%"; },
// eslint-disable-next-line no-unsanitized/property
onerror(e) { $("status-text").innerHTML = "Oops, couldn't generate XPI. Reload to retry.<br/>" + e; },
onsuccess(u) {

View File

@ -31,6 +31,8 @@
}
for (i = 0; i < 2000; i++) {
div = document.createElement("div");
// eslint-disable-next-line no-unsanitized/property
div.innerHTML = "<div role='progressbar'>progressbar</div>" +
"<span id='span" + i + "'>cb</span>";
container.appendChild(div);

View File

@ -100,6 +100,8 @@ function doneTest(dispResult) {
dispStats += "<hr/><b>Individual animations</b>:<br/>";
}
// eslint-disable-next-line no-unsanitized/property
$("run-results").innerHTML = "<hr/><br/>Results <button onclick='toClipboard(lastResults)'>[ Copy to clipboard as JSON ]</button>:<br/>" + dispStats + dispResult.join("<br/>");
}
}

View File

@ -67,6 +67,8 @@ Utilities:
<b>Configure DAMP</b> (CTRL-F5 to reset to talos defaults) <button type="button" onclick="deselectAll()">Deselect all tests</button><br/>
<script>
for (var test in defaultConfig.subtests) {
// eslint-disable-next-line no-unsanitized/method
document.write('<input type="checkbox" id="subtest-' + test + '" ' + (defaultConfig.subtests[test] ? "" : "un") + "checked>"
+ test + "</input>"
+ '<span style="color:grey">&nbsp;&nbsp;&nbsp;' + testsInfo[test] + "</span>"

View File

@ -113,6 +113,8 @@ function doneTest(dispResult) {
dispStats += "<hr/><b>Individual animations</b>:<br/>";
}
// eslint-disable-next-line no-unsanitized/property
$("run-results").innerHTML = "<hr/><br/>Results <button onclick='toClipboard(lastResults)'>[ Copy to clipboard as JSON ]</button>:<br/>" + dispStats + dispResult.join("<br/>");
}
}
@ -264,6 +266,8 @@ Utilities:
<b>Configure TART</b> (CTRL-F5 to reset to talos defaults) <button type="button" onclick="deselectAll()">Deselect all tests</button><br/>
<script>
for (var test in defaultConfig.subtests) {
// eslint-disable-next-line no-unsanitized/method
document.write('<input type="checkbox" id="subtest-' + test + '" ' + (defaultConfig.subtests[test] ? "" : "un") + "checked>"
+ test + "</input>"
+ '<span style="color:grey">&nbsp;&nbsp;&nbsp;' + testsInfo[test] + "</span>"

View File

@ -42,6 +42,7 @@ function NarrateControls(mm, win, languagePromise) {
dropdown.id = "narrate-dropdown";
// We need inline svg here for the animation to work (bug 908634 & 1190881).
// The style animation can't be scoped (bug 830056).
// eslint-disable-next-line no-unsanitized/property
dropdown.innerHTML =
localize`<style scoped>
@import url("chrome://global/skin/narrateControls.css");

View File

@ -13,6 +13,7 @@ function VoiceSelect(win, label) {
let element = win.document.createElement("div");
element.classList.add("voiceselect");
// eslint-disable-next-line no-unsanitized/property
element.innerHTML =
`<button class="select-toggle" aria-controls="voice-options">
<span class="label">${label}</span> <span class="current-voice"></span>

View File

@ -121,6 +121,7 @@ add_task(async function test() {
let processedFormPromise = promiseFormsProcessed(numFormLikesExpected);
// eslint-disable-next-line no-unsanitized/property
frameDoc.documentElement.innerHTML = tc.document;
info("waiting for " + numFormLikesExpected + " processed form(s)");
await processedFormPromise;

View File

@ -140,6 +140,7 @@ add_task(async function test() {
for (let tc of TESTCASES) {
info("Starting testcase: " + JSON.stringify(tc));
// eslint-disable-next-line no-unsanitized/property
frameDoc.documentElement.innerHTML = tc.document;
let inputForFormLike = frameDoc.querySelectorAll("input")[tc.inputIndexForFormLike];

View File

@ -148,6 +148,7 @@ add_task(async function test() {
await loadedPromise;
let frameDoc = SpecialPowers.wrap(loginFrame.contentWindow).document;
// eslint-disable-next-line no-unsanitized/property
frameDoc.documentElement.innerHTML = tc.document;
// Wait for the form to be processed before trying to submit.
await promiseFormsProcessed();

View File

@ -101,6 +101,7 @@ add_task(async function test() {
await loadedPromise;
let frameDoc = SpecialPowers.wrap(loginFrame.contentWindow).document;
// eslint-disable-next-line no-unsanitized/property
frameDoc.documentElement.innerHTML = tc.document;
// Wait for the form to be processed before trying to submit.

View File

@ -113,6 +113,7 @@ async function reinitializeForm(index) {
let form = document.getElementById("form" + index);
let temp = form.innerHTML;
form.innerHTML = "";
// eslint-disable-next-line no-unsanitized/property
form.innerHTML = temp;
await new Promise(resolve => {

View File

@ -266,6 +266,8 @@ var Settings = {
let parameters = [fhrEnabled, extendedEnabled].map(this.convertStringToLink);
let explanation = bundle.formatStringFromName("homeExplanation", parameters, 2);
// eslint-disable-next-line no-unsanitized/property
homeExplanation.innerHTML = explanation;
this.attachObservers()
},
@ -335,6 +337,8 @@ var PingPicker = {
let explanation = bundle.formatStringFromName("pingExplanation", [pingLink, pingName], 2);
let pingExplanation = document.getElementById("ping-explanation");
// eslint-disable-next-line no-unsanitized/property
pingExplanation.innerHTML = explanation;
GenericSubsection.deleteAllSubSections();
},

View File

@ -140,6 +140,7 @@ Control.prototype = {
this.ctrl.textContent = this._label;
if (this._message) {
// eslint-disable-next-line no-unsanitized/property
this.msg.innerHTML =
`<span class="info-label">${this._messageHeader}:</span> ${this._message}`;
} else {
@ -305,6 +306,7 @@ var AboutWebRTC = {
msg.textContent = getString("cannot_retrieve_log");
parent.appendChild(msg);
msg = document.createElement("p");
// eslint-disable-next-line no-unsanitized/property
msg.innerHTML = `${data.error.name}: ${data.error.message}`;
parent.appendChild(msg);
return;

View File

@ -15,6 +15,7 @@
var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
var pluginsbundle = strBundleService.createBundle("chrome://global/locale/plugins.properties");
// eslint-disable-next-line no-unsanitized/method
document.writeln("<title>" + pluginsbundle.GetStringFromName("title_label") + "<\/title>");
</script>
<link rel="stylesheet" type="text/css" href="chrome://global/content/plugins.css">

View File

@ -519,7 +519,7 @@ this.CrashSubmit = {
let matchesIgnore = entry.name.match(/(.+)\.dmp.ignore$/);
if (matchesIgnore) {
let id = matches[1];
let id = matchesIgnore[1];
if (UUID_REGEX.test(id)) {
ignored[id] = true;
@ -532,7 +532,7 @@ this.CrashSubmit = {
for (let entry in entries) {
let entryInfo = await entries[entry];
if (!(`${entry}.dmp.ignore` in ignored) &&
if (!(entry in ignored) &&
entryInfo.lastAccessDate > minFileDate) {
ids.push(entry);
}

View File

@ -204,6 +204,7 @@ var FormDataInternal = {
// designMode is undefined e.g. for XUL documents (as about:config)
if ((doc.designMode || "") == "on" && doc.body) {
// eslint-disable-next-line no-unsanitized/property
ret.innerHTML = doc.body.innerHTML;
}
@ -261,6 +262,7 @@ var FormDataInternal = {
if ("innerHTML" in data) {
if (doc.body && doc.designMode == "on") {
// eslint-disable-next-line no-unsanitized/property
doc.body.innerHTML = data.innerHTML;
this.fireEvent(doc.body, "input");
}

View File

@ -3255,6 +3255,7 @@ var gDetailView = {
// plugins without having bug 624602 fixed yet, and intentionally ignores
// localisation.
if (aAddon.isGMPlugin) {
// eslint-disable-next-line no-unsanitized/property
fullDesc.innerHTML = aAddon.fullDescription;
} else {
fullDesc.textContent = aAddon.fullDescription;

Some files were not shown because too many files have changed in this diff Show More