Bug 1096013 - Add a test that ensures that we don't lose the favicon for background tabs that crash. r?mikedeboer draft
authorMike Conley <mconley@mozilla.com>
Fri, 24 Mar 2017 10:26:49 -0400
changeset 551451 567c803e1b30155a021b5f4836524db9c74736c4
parent 551450 93f2b536601b063b98fa947d60d2ff00e367b500
child 621538 f170f3b2aed0d9f9fe9bef920479d9c265691ad8
push id51045
push usermconley@mozilla.com
push dateSun, 26 Mar 2017 03:38:12 +0000
reviewersmikedeboer
bugs1096013
milestone55.0a1
Bug 1096013 - Add a test that ensures that we don't lose the favicon for background tabs that crash. r?mikedeboer MozReview-Commit-ID: BoF62uPSfUC
browser/components/sessionstore/test/browser.ini
browser/components/sessionstore/test/browser_tabicon_after_bg_tab_crash.js
--- a/browser/components/sessionstore/test/browser.ini
+++ b/browser/components/sessionstore/test/browser.ini
@@ -241,8 +241,10 @@ run-if = e10s && crashreporter
 skip-if = debug
 [browser_docshell_uuid_consistency.js]
 [browser_grouped_session_store.js]
 skip-if = !e10s # GroupedSHistory is e10s-only
 
 [browser_closed_objects_changed_notifications_tabs.js]
 [browser_closed_objects_changed_notifications_windows.js]
 [browser_duplicate_history.js]
+[browser_tabicon_after_bg_tab_crash.js]
+skip-if = !e10s # Tabs can't crash without e10s
new file mode 100644
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_tabicon_after_bg_tab_crash.js
@@ -0,0 +1,32 @@
+"use strict";
+
+const FAVICON = "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
+const PAGE_URL = `data:text/html,
+<html>
+  <head>
+    <link rel="shortcut icon" href="${FAVICON}">
+  </head>
+  <body>
+    Favicon!
+  </body>
+</html>`;
+
+/**
+ * Tests that if a background tab crashes that it doesn't
+ * lose the favicon in the tab.
+ */
+add_task(function* test_tabicon_after_bg_tab_crash() {
+  let originalTab = gBrowser.selectedTab;
+
+  yield BrowserTestUtils.withNewTab({
+    gBrowser,
+    url: PAGE_URL,
+  }, function*(browser) {
+    Assert.equal(browser.mIconURL, FAVICON, "Favicon is correctly set.");
+    yield BrowserTestUtils.switchTab(gBrowser, originalTab);
+    yield BrowserTestUtils.crashBrowser(browser,
+                                        false /* shouldShowTabCrashPage */);
+    Assert.equal(browser.mIconURL, FAVICON,
+                 "Favicon is still set after crash.");
+  });
+});