Bug 1378036 - Add a regression test for tabs crashing without a permanentKey. r=Felipe
authorMike Conley <mconley@mozilla.com>
Mon, 17 Jul 2017 18:27:55 -0400
changeset 418493 653720e594d17796bf940e69933c8a712a4db38c
parent 418492 7871c16d1652c96748c6e2e44c3a461bea4fcfb6
child 418494 b2f02ad2c82b2d5b0088aa20c7caaa3bd203ed53
push id7566
push usermtabara@mozilla.com
push dateWed, 02 Aug 2017 08:25:16 +0000
treeherdermozilla-beta@86913f512c3c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersFelipe
bugs1378036
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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;
+  });
+});