mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-11 17:57:32 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,152 @@
|
|||
"use strict";
|
||||
|
||||
const PAGE = "data:text/html,<html><body>A%20regular,%20everyday,%20normal%20page.";
|
||||
const AUTOSUBMIT_PREF = "browser.crashReports.unsubmittedCheck.autoSubmit2";
|
||||
|
||||
const {TabStateFlusher} =
|
||||
Cu.import("resource:///modules/sessionstore/TabStateFlusher.jsm", {});
|
||||
|
||||
// On debug builds, crashing tabs results in much thinking, which
|
||||
// slows down the test and results in intermittent test timeouts,
|
||||
// so we'll pump up the expected timeout for this test.
|
||||
requestLongerTimeout(2);
|
||||
|
||||
/**
|
||||
* Tests that if the user is not configured to autosubmit
|
||||
* backlogged crash reports, that we offer to do that, and
|
||||
* that the user can accept that offer.
|
||||
*/
|
||||
add_task(function* test_show_form() {
|
||||
yield SpecialPowers.pushPrefEnv({
|
||||
set: [[AUTOSUBMIT_PREF, false]],
|
||||
})
|
||||
|
||||
return BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: PAGE,
|
||||
}, function*(browser) {
|
||||
// Make sure we've flushed the browser messages so that
|
||||
// we can restore it.
|
||||
yield TabStateFlusher.flush(browser);
|
||||
|
||||
// Now crash the browser.
|
||||
yield BrowserTestUtils.crashBrowser(browser);
|
||||
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
// Ensure the request is visible. We can safely reach into
|
||||
// the content since about:tabcrashed is an in-process URL.
|
||||
let requestAutoSubmit = doc.getElementById("requestAutoSubmit");
|
||||
Assert.ok(!requestAutoSubmit.hidden,
|
||||
"Request for autosubmission is visible.");
|
||||
|
||||
// Since the pref is set to false, the checkbox should be
|
||||
// unchecked.
|
||||
let autoSubmit = doc.getElementById("autoSubmit");
|
||||
Assert.ok(!autoSubmit.checked,
|
||||
"Checkbox for autosubmission is not checked.")
|
||||
|
||||
// Check the checkbox, and then restore the tab.
|
||||
autoSubmit.checked = true;
|
||||
let restoreButton = doc.getElementById("restoreTab");
|
||||
restoreButton.click();
|
||||
|
||||
yield BrowserTestUtils.browserLoaded(browser, false, PAGE);
|
||||
|
||||
// The autosubmission pref should now be set.
|
||||
Assert.ok(Services.prefs.getBoolPref(AUTOSUBMIT_PREF),
|
||||
"Autosubmission pref should have been set.");
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Tests that if the user is autosubmitting backlogged crash reports
|
||||
* that we don't make the offer again.
|
||||
*/
|
||||
add_task(function* test_show_form() {
|
||||
yield SpecialPowers.pushPrefEnv({
|
||||
set: [[AUTOSUBMIT_PREF, true]],
|
||||
})
|
||||
|
||||
return BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: PAGE,
|
||||
}, function*(browser) {
|
||||
yield TabStateFlusher.flush(browser);
|
||||
// Now crash the browser.
|
||||
yield BrowserTestUtils.crashBrowser(browser);
|
||||
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
// Ensure the request is NOT visible. We can safely reach into
|
||||
// the content since about:tabcrashed is an in-process URL.
|
||||
let requestAutoSubmit = doc.getElementById("requestAutoSubmit");
|
||||
Assert.ok(requestAutoSubmit.hidden,
|
||||
"Request for autosubmission is not visible.");
|
||||
|
||||
// Restore the tab.
|
||||
let restoreButton = doc.getElementById("restoreTab");
|
||||
restoreButton.click();
|
||||
|
||||
yield BrowserTestUtils.browserLoaded(browser, false, PAGE);
|
||||
|
||||
// The autosubmission pref should still be set to true.
|
||||
Assert.ok(Services.prefs.getBoolPref(AUTOSUBMIT_PREF),
|
||||
"Autosubmission pref should have been set.");
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Tests that we properly set the autoSubmit preference if the user is
|
||||
* presented with a tabcrashed page without a crash report.
|
||||
*/
|
||||
add_task(function* test_no_offer() {
|
||||
// We should default to sending the report.
|
||||
Assert.ok(TabCrashHandler.prefs.getBoolPref("sendReport"));
|
||||
|
||||
yield SpecialPowers.pushPrefEnv({
|
||||
set: [[AUTOSUBMIT_PREF, false]],
|
||||
});
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: PAGE,
|
||||
}, function*(browser) {
|
||||
yield TabStateFlusher.flush(browser);
|
||||
|
||||
// Make it so that it seems like no dump is available for the next crash.
|
||||
prepareNoDump();
|
||||
|
||||
// Now crash the browser.
|
||||
yield BrowserTestUtils.crashBrowser(browser);
|
||||
|
||||
// eslint-disable-next-line mozilla/no-cpows-in-tests
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
// Ensure the request to autosubmit is invisible, since there's no report.
|
||||
let requestRect = doc.getElementById("requestAutoSubmit")
|
||||
.getBoundingClientRect();
|
||||
Assert.equal(0, requestRect.height,
|
||||
"Request for autosubmission has no height");
|
||||
Assert.equal(0, requestRect.width,
|
||||
"Request for autosubmission has no width");
|
||||
|
||||
// Since the pref is set to false, the checkbox should be
|
||||
// unchecked.
|
||||
let autoSubmit = doc.getElementById("autoSubmit");
|
||||
Assert.ok(!autoSubmit.checked,
|
||||
"Checkbox for autosubmission is not checked.");
|
||||
|
||||
let restoreButton = doc.getElementById("restoreTab");
|
||||
restoreButton.click();
|
||||
|
||||
yield BrowserTestUtils.browserLoaded(browser, false, PAGE);
|
||||
|
||||
// The autosubmission pref should now be set.
|
||||
Assert.ok(!Services.prefs.getBoolPref(AUTOSUBMIT_PREF),
|
||||
"Autosubmission pref should not have changed.");
|
||||
});
|
||||
|
||||
// We should not have changed the default value for sending the report.
|
||||
Assert.ok(TabCrashHandler.prefs.getBoolPref("sendReport"));
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue