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/ */
// Test that reloading re-reads the source maps.
"use strict";
const INITIAL_URL = URL_ROOT_SSL + "doc_empty-tab-01.html";
const PAGE_URL = URL_ROOT_SSL + "doc_reload.html";
const JS_URL = URL_ROOT_SSL + "sjs_code_reload.sjs";
const ORIGINAL_URL_1 = "webpack:///code_reload_1.js";
const ORIGINAL_URL_2 = "webpack:///code_reload_2.js";
const GENERATED_LINE = 86;
const ORIGINAL_LINE = 13;
add_task(async function() {
// Start with the empty page, then navigate, so that we can properly
// listen for new sources arriving.
const toolbox = await openNewTabAndToolbox(INITIAL_URL, "webconsole");
const service = toolbox.sourceMapURLService;
let sourceSeen = waitForSourceLoad(toolbox, JS_URL);
await navigateTo(PAGE_URL);
await sourceSeen;
info(`checking original location for ${JS_URL}:${GENERATED_LINE}`);
let newLoc = await new Promise(r =>
service.subscribeByURL(JS_URL, GENERATED_LINE, undefined, r)
);
is(newLoc.url, ORIGINAL_URL_1, "check mapped URL");
is(newLoc.line, ORIGINAL_LINE, "check mapped line number");
// Reload the page. The sjs ensures that a different source file
// will be loaded.
sourceSeen = waitForSourceLoad(toolbox, JS_URL);
await reloadBrowser();
await sourceSeen;
info(
`checking post-reload original location for ${JS_URL}:${GENERATED_LINE}`
);
newLoc = await new Promise(r =>
service.subscribeByURL(JS_URL, GENERATED_LINE, undefined, r)
);
is(newLoc.url, ORIGINAL_URL_2, "check post-reload mapped URL");
is(newLoc.line, ORIGINAL_LINE, "check post-reload mapped line number");
await toolbox.destroy();
gBrowser.removeCurrentTab();
});
|