blob: 2058b85fa94447c044dc9a712842ba7ea2d095fd (
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
|
/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Testing that the inspector doesn't go blank when navigating to a page that
// deletes an iframe while loading.
const TEST_URL = URL_ROOT + "doc_inspector_remove-iframe-during-load.html";
add_task(function* () {
let {inspector, testActor} = yield openInspectorForURL("about:blank");
yield selectNode("body", inspector);
// We do not want to wait for the inspector to be fully ready before testing
// so we load TEST_URL and just wait for the content window to be done loading
yield testActor.loadAndWaitForCustomEvent(TEST_URL);
// The content doc contains a script that creates iframes and deletes them
// immediately after. It does this before the load event, after
// DOMContentLoaded and after load. This is what used to make the inspector go
// blank when navigating to that page.
// At this stage, there should be no iframes in the page anymore.
ok(!(yield testActor.hasNode("iframe")),
"Iframes added by the content page should have been removed");
// Create/remove an extra one now, after the load event.
info("Creating and removing an iframe.");
let onMarkupLoaded = inspector.once("markuploaded");
testActor.eval("new " + function () {
let iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.remove();
});
ok(!(yield testActor.hasNode("iframe")),
"The after-load iframe should have been removed.");
info("Waiting for markup-view to load.");
yield onMarkupLoaded;
// Assert that the markup-view is displayed and works
ok(!(yield testActor.hasNode("iframe")), "Iframe has been removed.");
is((yield testActor.getProperty("#yay", "textContent")), "load",
"Load event fired.");
yield selectNode("#yay", inspector);
});
|