From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../mozapps/extensions/test/xpinstall/redirect.sjs | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 toolkit/mozapps/extensions/test/xpinstall/redirect.sjs (limited to 'toolkit/mozapps/extensions/test/xpinstall/redirect.sjs') diff --git a/toolkit/mozapps/extensions/test/xpinstall/redirect.sjs b/toolkit/mozapps/extensions/test/xpinstall/redirect.sjs new file mode 100644 index 0000000000..14236ee821 --- /dev/null +++ b/toolkit/mozapps/extensions/test/xpinstall/redirect.sjs @@ -0,0 +1,39 @@ +// Script has two modes based on the query string. If the mode is "setup" then +// parameters from the query string configure the redirection. If the mode is +// "redirect" then a redirect is returned + +function handleRequest(request, response) { + let parts = request.queryString.split("&"); + let settings = {}; + + parts.forEach(function (aString) { + let [k, v] = aString.split("="); + settings[k] = decodeURIComponent(v); + }); + + if (settings.mode == "setup") { + delete settings.mode; + + // Object states must be an nsISupports + var state = { + settings, + QueryInterface: ChromeUtils.generateQI([]), + }; + state.wrappedJSObject = state; + + setObjectState("xpinstall-redirect-settings", state); + response.setStatusLine(request.httpVersion, 200, "Ok"); + response.setHeader("Content-Type", "text/plain"); + response.write("Setup complete"); + } else if (settings.mode == "redirect") { + getObjectState("xpinstall-redirect-settings", function (aObject) { + settings = aObject.wrappedJSObject.settings; + }); + + response.setStatusLine(request.httpVersion, 302, "Found"); + for (var name in settings) { + response.setHeader(name, settings[name]); + } + response.write("Done"); + } +} -- cgit v1.2.3