summaryrefslogtreecommitdiffstats
path: root/layout/generic/test/file_SlowImage.sjs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:44:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:44:51 +0000
commit9e3c08db40b8916968b9f30096c7be3f00ce9647 (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /layout/generic/test/file_SlowImage.sjs
parentInitial commit. (diff)
downloadthunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.tar.xz
thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/generic/test/file_SlowImage.sjs')
-rw-r--r--layout/generic/test/file_SlowImage.sjs45
1 files changed, 45 insertions, 0 deletions
diff --git a/layout/generic/test/file_SlowImage.sjs b/layout/generic/test/file_SlowImage.sjs
new file mode 100644
index 0000000000..a9eaeef838
--- /dev/null
+++ b/layout/generic/test/file_SlowImage.sjs
@@ -0,0 +1,45 @@
+"use strict";
+
+const IMG_BYTES = atob(
+ "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAA" +
+ "DUlEQVQImWNgY2P7DwABOgESJhRQtgAAAABJRU5ErkJggg=="
+);
+
+function handleRequest(request, response) {
+ response.processAsync();
+ getObjectState("context", function (obj) {
+ let ctx;
+ if (obj == null) {
+ ctx = {
+ QueryInterface: function (iid) {
+ if (iid.equals(Ci.nsISupports)) {
+ return this;
+ }
+ throw Components.Exception("", Cr.NS_ERROR_NO_INTERFACE);
+ },
+ };
+ ctx.wrappedJSObject = ctx;
+
+ ctx.promise = new Promise(resolve => {
+ ctx.resolve = resolve;
+ });
+
+ setObjectState("context", ctx);
+ } else {
+ ctx = obj.wrappedJSObject;
+ }
+ Promise.resolve(ctx).then(next);
+ });
+
+ function next(ctx) {
+ if (request.queryString.indexOf("continue") >= 0) {
+ ctx.resolve();
+ }
+
+ ctx.promise.then(() => {
+ response.setHeader("Content-Type", "image/png");
+ response.write(IMG_BYTES);
+ response.finish();
+ });
+ }
+}