From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test/performance/intercepted.txt | 1 + dom/serviceworkers/test/performance/perftest.toml | 14 ++ dom/serviceworkers/test/performance/perfutils.js | 46 ++++++ dom/serviceworkers/test/performance/sw_cacher.js | 18 +++ dom/serviceworkers/test/performance/sw_empty.js | 0 .../test/performance/sw_intercept_target.js | 7 + dom/serviceworkers/test/performance/target.txt | 1 + .../test/performance/test_caching.html | 89 +++++++++++ .../test/performance/test_fetch.html | 168 +++++++++++++++++++++ .../test/performance/test_registration.html | 89 +++++++++++ .../test/performance/time_fetch.html | 38 +++++ 11 files changed, 471 insertions(+) create mode 100644 dom/serviceworkers/test/performance/intercepted.txt create mode 100644 dom/serviceworkers/test/performance/perftest.toml create mode 100644 dom/serviceworkers/test/performance/perfutils.js create mode 100644 dom/serviceworkers/test/performance/sw_cacher.js create mode 100644 dom/serviceworkers/test/performance/sw_empty.js create mode 100644 dom/serviceworkers/test/performance/sw_intercept_target.js create mode 100644 dom/serviceworkers/test/performance/target.txt create mode 100644 dom/serviceworkers/test/performance/test_caching.html create mode 100644 dom/serviceworkers/test/performance/test_fetch.html create mode 100644 dom/serviceworkers/test/performance/test_registration.html create mode 100644 dom/serviceworkers/test/performance/time_fetch.html (limited to 'dom/serviceworkers/test/performance') diff --git a/dom/serviceworkers/test/performance/intercepted.txt b/dom/serviceworkers/test/performance/intercepted.txt new file mode 100644 index 0000000000..87c7a8efe7 --- /dev/null +++ b/dom/serviceworkers/test/performance/intercepted.txt @@ -0,0 +1 @@ +intercepted diff --git a/dom/serviceworkers/test/performance/perftest.toml b/dom/serviceworkers/test/performance/perftest.toml new file mode 100644 index 0000000000..6a7e5928be --- /dev/null +++ b/dom/serviceworkers/test/performance/perftest.toml @@ -0,0 +1,14 @@ +[DEFAULT] +support-files = [ + "intercepted.txt", + "perfutils.js", + "sw_cacher.js", + "sw_empty.js", + "sw_intercept_target.js", + "target.txt", + "time_fetch.html", +] + +["test_caching.html"] +["test_fetch.html"] +["test_registration.html"] diff --git a/dom/serviceworkers/test/performance/perfutils.js b/dom/serviceworkers/test/performance/perfutils.js new file mode 100644 index 0000000000..d7edbe2fe7 --- /dev/null +++ b/dom/serviceworkers/test/performance/perfutils.js @@ -0,0 +1,46 @@ +"use strict"; + +/** + * Given a map from test names to arrays of results, report perfherder metrics + * and log full results. + */ +function reportMetrics(journal) { + let metrics = {}; + let text = "\nResults (ms)\n"; + + const names = Object.keys(journal); + const prefixLen = 1 + Math.max(...names.map(str => str.length)); + + for (const name in journal) { + const med = median(journal[name]); + text += (name + ":").padEnd(prefixLen, " ") + stringify(journal[name]); + text += " median " + med + "\n"; + metrics[name] = med; + } + + dump(text); + info("perfMetrics", JSON.stringify(metrics)); +} + +function median(arr) { + arr = [...arr].sort((a, b) => a - b); + const mid = Math.floor(arr.length / 2); + + if (arr.length % 2) { + return arr[mid]; + } + + return (arr[mid - 1] + arr[mid]) / 2; +} + +function stringify(arr) { + function pad(num) { + let s = num.toString().padStart(5, " "); + if (s[0] != " ") { + s = " " + s; + } + return s; + } + + return arr.reduce((acc, elem) => acc + pad(elem), ""); +} diff --git a/dom/serviceworkers/test/performance/sw_cacher.js b/dom/serviceworkers/test/performance/sw_cacher.js new file mode 100644 index 0000000000..5a441ef785 --- /dev/null +++ b/dom/serviceworkers/test/performance/sw_cacher.js @@ -0,0 +1,18 @@ +"use strict"; + +oninstall = function (event) { + event.waitUntil( + caches.open("perftest").then(function (cache) { + return cache.put("cached.txt", new Response("cached.txt")); + }) + ); +}; + +onfetch = function (event) { + if (event.request.url.endsWith("/cached.txt")) { + var p = caches.match("cached.txt", { cacheName: "perftest" }); + event.respondWith(p); + } else if (event.request.url.endsWith("/uncached.txt")) { + event.respondWith(new Response("uncached.txt")); + } +}; diff --git a/dom/serviceworkers/test/performance/sw_empty.js b/dom/serviceworkers/test/performance/sw_empty.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dom/serviceworkers/test/performance/sw_intercept_target.js b/dom/serviceworkers/test/performance/sw_intercept_target.js new file mode 100644 index 0000000000..47b3853978 --- /dev/null +++ b/dom/serviceworkers/test/performance/sw_intercept_target.js @@ -0,0 +1,7 @@ +"use strict"; + +onfetch = function (event) { + if (event.request.url.indexOf("target.txt") != -1) { + event.respondWith(fetch("intercepted.txt")); + } +}; diff --git a/dom/serviceworkers/test/performance/target.txt b/dom/serviceworkers/test/performance/target.txt new file mode 100644 index 0000000000..eb5a316cbd --- /dev/null +++ b/dom/serviceworkers/test/performance/target.txt @@ -0,0 +1 @@ +target diff --git a/dom/serviceworkers/test/performance/test_caching.html b/dom/serviceworkers/test/performance/test_caching.html new file mode 100644 index 0000000000..cd6d4cf493 --- /dev/null +++ b/dom/serviceworkers/test/performance/test_caching.html @@ -0,0 +1,89 @@ + + + + Service worker performance test: caching + + + + + + + + diff --git a/dom/serviceworkers/test/performance/test_fetch.html b/dom/serviceworkers/test/performance/test_fetch.html new file mode 100644 index 0000000000..29dd65b595 --- /dev/null +++ b/dom/serviceworkers/test/performance/test_fetch.html @@ -0,0 +1,168 @@ + + + + Service worker performance test: fetch + + + + + + + + diff --git a/dom/serviceworkers/test/performance/test_registration.html b/dom/serviceworkers/test/performance/test_registration.html new file mode 100644 index 0000000000..d5abbf6775 --- /dev/null +++ b/dom/serviceworkers/test/performance/test_registration.html @@ -0,0 +1,89 @@ + + + + Service worker performance test: registration + + + + + + + + diff --git a/dom/serviceworkers/test/performance/time_fetch.html b/dom/serviceworkers/test/performance/time_fetch.html new file mode 100644 index 0000000000..a771d4889f --- /dev/null +++ b/dom/serviceworkers/test/performance/time_fetch.html @@ -0,0 +1,38 @@ + + + + + + + + -- cgit v1.2.3