blob: d8f2f44ca8d0078fbd960aac56574a140a89f591 (
plain)
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
50
51
52
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test LocalTabCommandsFactory
const {
LocalTabCommandsFactory,
} = require("resource://devtools/client/framework/local-tab-commands-factory.js");
add_task(async function () {
await testTabDescriptorWithURL("data:text/html;charset=utf-8,foo");
// Bug 1699497: Also test against a page in the parent process
// which can hit some race with frame-connector's frame scripts.
await testTabDescriptorWithURL("about:robots");
});
async function testTabDescriptorWithURL(url) {
info(`Test TabDescriptor against url ${url}\n`);
const tab = await addTab(url);
const commands = await LocalTabCommandsFactory.createCommandsForTab(tab);
is(
commands.descriptorFront.localTab,
tab,
"TabDescriptor's localTab is set correctly"
);
info(
"Calling a second time createCommandsForTab with the same tab, will return the same commands"
);
const secondCommands = await LocalTabCommandsFactory.createCommandsForTab(
tab
);
is(commands, secondCommands, "second commands is the same");
// We have to involve TargetCommand in order to have a function TabDescriptor.getTarget.
await commands.targetCommand.startListening();
info("Wait for descriptor's target");
const target = await commands.descriptorFront.getTarget();
info("Call any method to ensure that each target works");
await target.logInPage("foo");
info("Destroy the command");
await commands.destroy();
gBrowser.removeCurrentTab();
}
|