summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser_webconsole_bug_597136_network_requests_from_chrome.js
blob: 473f02ccc8cd2dc371469416b943170bf5191f25 (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
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

// Tests that network requests from chrome don't cause the Web Console to
// throw exceptions.

"use strict";

const TEST_URI = "http://example.com/";

var good = true;
var listener = {
  QueryInterface: XPCOMUtils.generateQI([ Ci.nsIObserver ]),
  observe: function (subject) {
    if (subject instanceof Ci.nsIScriptError &&
        subject.category === "XPConnect JavaScript" &&
        subject.sourceName.includes("webconsole")) {
      good = false;
    }
  }
};

var xhr;

function test() {
  Services.console.registerListener(listener);

  // trigger a lazy-load of the HUD Service
  HUDService;

  xhr = new XMLHttpRequest();
  xhr.addEventListener("load", xhrComplete, false);
  xhr.open("GET", TEST_URI, true);
  xhr.send(null);
}

function xhrComplete() {
  xhr.removeEventListener("load", xhrComplete, false);
  window.setTimeout(checkForException, 0);
}

function checkForException() {
  ok(good, "no exception was thrown when sending a network request from a " +
     "chrome window");

  Services.console.unregisterListener(listener);
  listener = xhr = null;

  finishTest();
}