Bug 1378036 - Add a regression test for tabs crashing without a permanentKey. r?felipe draft
authorMike Conley <mconley@mozilla.com>
Mon, 17 Jul 2017 18:27:55 -0400
changeset 611505 6578361532cbbd12c8dbb27984b18a3b8cf50d6c
parent 611504 d7db44ea97f74305ea64b0fdbca966152fca92bd
child 638185 3bfee059f306d89687f69675779217529293fc6c
push id69247
push usermconley@mozilla.com
push dateWed, 19 Jul 2017 20:41:46 +0000
reviewersfelipe
bugs1378036
milestone56.0a1
Bug 1378036 - Add a regression test for tabs crashing without a permanentKey. r?felipe MozReview-Commit-ID: DYx3TJ0gsIZ
browser/base/content/test/tabcrashed/browser.ini
browser/base/content/test/tabcrashed/browser_noPermanentKey.js
--- 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;
+  });
+});