Bug 1378036 - Add a regression test for tabs crashing without a permanentKey. r?felipe
MozReview-Commit-ID: DYx3TJ0gsIZ
--- a/browser/base/content/test/tabcrashed/browser.ini
+++ b/browser/base/content/test/tabcrashed/browser.ini
@@ -6,8 +6,10 @@ skip-if = !e10s || !crashreporter
[browser_clearEmail.js]
skip-if = !e10s || !crashreporter
[browser_showForm.js]
skip-if = !e10s || !crashreporter
[browser_withoutDump.js]
skip-if = !e10s || !crashreporter
[browser_autoSubmitRequest.js]
skip-if = !e10s || !crashreporter
+[browser_noPermanentKey.js]
+skip-if = !e10s || !crashreporter
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/tabcrashed/browser_noPermanentKey.js
@@ -0,0 +1,35 @@
+"use strict";
+
+const PAGE = "data:text/html,<html><body>A%20regular,%20everyday,%20normal%20page.";
+
+add_task(async function setup() {
+ await setupLocalCrashReportServer();
+});
+
+/**
+ * Tests tab crash page when a browser that somehow doesn't have a permanentKey
+ * crashes.
+ */
+add_task(async function test_without_dump() {
+ return BrowserTestUtils.withNewTab({
+ gBrowser,
+ url: PAGE,
+ }, async function(browser) {
+ delete browser.permanentKey;
+
+ await BrowserTestUtils.crashBrowser(browser);
+ let crashReport = promiseCrashReport();
+
+ await ContentTask.spawn(browser, null, async function() {
+ let doc = content.document;
+ Assert.ok(doc.documentElement.classList.contains("crashDumpAvailable"),
+ "Should be offering to submit a crash report.");
+ // With the permanentKey gone, restoring this tab is no longer
+ // possible. We'll just close it instead.
+ let closeTab = doc.getElementById("closeTab");
+ closeTab.click();
+ });
+
+ await crashReport;
+ });
+});