Backed out changeset 2450366cf7ca (bug 1891629) for causing win msix mochitest failures
[gecko.git] / netwerk / test / unit_ipc / test_httpcancel_wrap.js
blob3e54171ede823e15c75c18783b8b41510ab3e8f7
1 "use strict";
3 const ReferrerInfo = Components.Constructor(
4   "@mozilla.org/referrer-info;1",
5   "nsIReferrerInfo",
6   "init"
7 );
9 let observer = null;
11 function run_test() {
12   do_await_remote_message("register-observer").then(() => {
13     observer = {
14       QueryInterface: ChromeUtils.generateQI(["nsIObserver"]),
16       observe(subject) {
17         subject = subject.QueryInterface(Ci.nsIRequest);
18         subject.cancel(Cr.NS_BINDING_ABORTED);
20         // ENSURE_CALLED_BEFORE_CONNECT: setting values should still work
21         try {
22           subject.QueryInterface(Ci.nsIHttpChannel);
23           let currentReferrer = subject.getRequestHeader("Referer");
24           Assert.equal(currentReferrer, "http://site1.com/");
25           let uri = Services.io.newURI("http://site2.com");
26           subject.referrerInfo = new ReferrerInfo(
27             Ci.nsIReferrerInfo.EMPTY,
28             true,
29             uri
30           );
31         } catch (ex) {
32           do_throw("Exception: " + ex);
33         }
34       },
35     };
37     Services.obs.addObserver(observer, "http-on-modify-request");
38     do_send_remote_message("register-observer-done");
39   });
41   do_await_remote_message("unregister-observer").then(() => {
42     Services.obs.removeObserver(observer, "http-on-modify-request");
44     do_send_remote_message("unregister-observer-done");
45   });
47   run_test_in_child("../unit/test_httpcancel.js");