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
--- 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.");
+ });
+});