diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /remote/cdp/test/browser/systemInfo | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'remote/cdp/test/browser/systemInfo')
-rw-r--r-- | remote/cdp/test/browser/systemInfo/browser.toml | 21 | ||||
-rw-r--r-- | remote/cdp/test/browser/systemInfo/browser_getProcessInfo.js | 78 | ||||
-rw-r--r-- | remote/cdp/test/browser/systemInfo/head.js | 9 |
3 files changed, 108 insertions, 0 deletions
diff --git a/remote/cdp/test/browser/systemInfo/browser.toml b/remote/cdp/test/browser/systemInfo/browser.toml new file mode 100644 index 0000000000..8d814c91ee --- /dev/null +++ b/remote/cdp/test/browser/systemInfo/browser.toml @@ -0,0 +1,21 @@ +[DEFAULT] +tags = "cdp" +subsuite = "remote" +args = [ + "--remote-debugging-port", + "--remote-allow-origins=null", +] +prefs = [ # Bug 1600054: Make CDP Fission compatible + "fission.bfcacheInParent=false", + "fission.webContentIsolationStrategy=0", +] +skip-if = [ + "display == 'wayland'" # Bug 1861933: Timestamp unreliable due to worker setup +] +support-files = [ + "!/remote/cdp/test/browser/chrome-remote-interface.js", + "!/remote/cdp/test/browser/head.js", + "head.js", +] + +["browser_getProcessInfo.js"] diff --git a/remote/cdp/test/browser/systemInfo/browser_getProcessInfo.js b/remote/cdp/test/browser/systemInfo/browser_getProcessInfo.js new file mode 100644 index 0000000000..fb491e248f --- /dev/null +++ b/remote/cdp/test/browser/systemInfo/browser_getProcessInfo.js @@ -0,0 +1,78 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task( + async function getProcessInfoDetails({ client }) { + const { SystemInfo } = client; + + const processInfo = await SystemInfo.getProcessInfo(); + assertProcesses(processInfo); + }, + { createTab: false } +); + +add_task( + async function getProcessInfoMultipleTabs({ client }) { + const { SystemInfo, Target } = client; + + const { newTab: newTab1 } = await openTab(Target); + const { newTab: newTab2 } = await openTab(Target); + const { newTab: newTab3 } = await openTab(Target); + const { newTab: newTab4 } = await openTab(Target); + + const processInfo = await SystemInfo.getProcessInfo(); + assertProcesses(processInfo, [newTab1, newTab2, newTab3, newTab4]); + }, + { createTab: false } +); + +add_task( + async function getProcessInfoMultipleWindows({ client }) { + const { SystemInfo, Target } = client; + + const { newWindow: newWindow1 } = await openWindow(Target); + const { newWindow: newWindow2 } = await openWindow(Target); + + const processInfo = await SystemInfo.getProcessInfo(); + assertProcesses(processInfo, [ + ...newWindow1.gBrowser.tabs, + ...newWindow2.gBrowser.tabs, + ]); + + await BrowserTestUtils.closeWindow(newWindow1); + await BrowserTestUtils.closeWindow(newWindow2); + }, + { createTab: false } +); + +function assertProcesses(processInfo, tabs) { + ok(Array.isArray(processInfo), "Process info is an array"); + + for (const info of processInfo) { + ok(typeof info.id === "number", "Info has a numeric id"); + ok(typeof info.type === "string", "Info has a string type"); + ok(typeof info.cpuTime === "number", "Info has a numeric cpuTime"); + } + + const getByType = type => processInfo.filter(info => info.type === type); + + is( + getByType("browser").length, + 1, + "Got expected amount of browser processes" + ); + ok(!!getByType("renderer").length, "Got at least one renderer process"); + + if (tabs) { + const rendererPids = new Set( + processInfo.filter(info => info.type === "renderer").map(info => info.id) + ); + + for (const tab of tabs) { + const pid = tab.linkedBrowser.browsingContext.currentWindowGlobal.osPid; + ok(rendererPids.has(pid), `Found process info for pid (${pid})`); + } + } +} diff --git a/remote/cdp/test/browser/systemInfo/head.js b/remote/cdp/test/browser/systemInfo/head.js new file mode 100644 index 0000000000..1a1c90fbf6 --- /dev/null +++ b/remote/cdp/test/browser/systemInfo/head.js @@ -0,0 +1,9 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +Services.scriptloader.loadSubScript( + "chrome://mochitests/content/browser/remote/cdp/test/browser/head.js", + this +); |