From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- netwerk/test/unit_ipc/test_redirect_veto_parent.js | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 netwerk/test/unit_ipc/test_redirect_veto_parent.js (limited to 'netwerk/test/unit_ipc/test_redirect_veto_parent.js') diff --git a/netwerk/test/unit_ipc/test_redirect_veto_parent.js b/netwerk/test/unit_ipc/test_redirect_veto_parent.js new file mode 100644 index 0000000000..c2fa3fa000 --- /dev/null +++ b/netwerk/test/unit_ipc/test_redirect_veto_parent.js @@ -0,0 +1,64 @@ +// +// Run test script in content process instead of chrome (xpcshell's default) +// +// + +let ChannelEventSink2 = { + _classDescription: "WebRequest channel event sink", + _classID: Components.ID("115062f8-92f1-11e5-8b7f-08001110f7ec"), + _contractID: "@mozilla.org/webrequest/channel-event-sink;1", + + QueryInterface: ChromeUtils.generateQI(["nsIChannelEventSink", "nsIFactory"]), + + init() { + Components.manager + .QueryInterface(Ci.nsIComponentRegistrar) + .registerFactory( + this._classID, + this._classDescription, + this._contractID, + this + ); + }, + + register() { + Services.catMan.addCategoryEntry( + "net-channel-event-sinks", + this._contractID, + this._contractID, + false, + true + ); + }, + + unregister() { + Components.manager + .QueryInterface(Ci.nsIComponentRegistrar) + .unregisterFactory(this._classID, ChannelEventSink2); + Services.catMan.deleteCategoryEntry( + "net-channel-event-sinks", + this._contractID, + false + ); + }, + + // nsIChannelEventSink implementation + asyncOnChannelRedirect(oldChannel, newChannel, flags, redirectCallback) { + // Abort the redirection + redirectCallback.onRedirectVerifyCallback(Cr.NS_ERROR_NO_INTERFACE); + }, + + // nsIFactory implementation + createInstance(iid) { + return this.QueryInterface(iid); + }, +}; + +add_task(async function run_test() { + ChannelEventSink2.init(); + ChannelEventSink2.register(); + + run_test_in_child("child_veto_in_parent.js"); + await do_await_remote_message("child-test-done"); + ChannelEventSink2.unregister(); +}); -- cgit v1.2.3