summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/test_remoteTroubleshoot.html
blob: c0c3f5e6049bd0985a38219b58c6e68104e697dd (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
<!DOCTYPE HTML>
<html>
<script>
// This test is run multiple times, once with only strings allowed through the
// WebChannel, and once with objects allowed. This function allows us to handle
// both cases without too much pain.
function makeDetails(object) {
  if (window.location.search.includes("object")) {
    return object;
  }
  return JSON.stringify(object);
}
// Add a listener for responses to our remote requests.
window.addEventListener("WebChannelMessageToContent", function(event) {
  if (event.detail.id == "remote-troubleshooting") {
    // Send what we got back to the test.
    var backEvent = new window.CustomEvent("WebChannelMessageToChrome", {
      detail: makeDetails({
        id: "test-remote-troubleshooting-backchannel",
        message: {
          message: event.detail.message,
        },
      }),
    });
    window.dispatchEvent(backEvent);
    // and stick it in our DOM just for good measure/diagnostics.
    document.getElementById("troubleshooting").textContent =
      JSON.stringify(event.detail.message, null, 2);
  }
});

// Make a request for the troubleshooting data as we load.
window.onload = function() {
  var event = new window.CustomEvent("WebChannelMessageToChrome", {
    detail: makeDetails({
      id: "remote-troubleshooting",
      message: {
        command: "request",
      },
    }),
  });
  window.dispatchEvent(event);
};
</script>

<body>
  <pre id="troubleshooting"/>
</body>

</html>