1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
"use strict";
const triggeringPrincipal_base64 = E10SUtils.SERIALIZED_SYSTEMPRINCIPAL;
const SESSION = {
windows: [
{
tabs: [
{ entries: [{ url: "about:blank", triggeringPrincipal_base64 }] },
{
entries: [
{ url: "https://example.com/", triggeringPrincipal_base64 },
],
},
],
},
],
};
add_task(async function () {
SessionStore.setBrowserState(JSON.stringify(SESSION));
await promiseWindowRestored(window);
const tab = gBrowser.tabs[1];
is(tab.getAttribute("pending"), "true", "The tab is pending restore");
is(tab.linkedBrowser.isConnected, false, "The tab is lazy");
async function background() {
const [tab] = await browser.tabs.query({ url: "https://example.com/" });
browser.test.assertRejects(
browser.tabs.sendMessage(tab.id, "void"),
/Could not establish connection. Receiving end does not exist/,
"No recievers in a tab pending restore."
);
browser.test.notifyPass("lazy");
}
const manifest = { permissions: ["tabs"] };
const extension = ExtensionTestUtils.loadExtension({ manifest, background });
await extension.startup();
await extension.awaitFinish("lazy");
await extension.unload();
is(tab.getAttribute("pending"), "true", "The tab is still pending restore");
is(tab.linkedBrowser.isConnected, false, "The tab is still lazy");
BrowserTestUtils.removeTab(tab);
});
|