summaryrefslogtreecommitdiffstats
path: root/remote/cdp/domains/parent/SystemInfo.sys.mjs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /remote/cdp/domains/parent/SystemInfo.sys.mjs
parentInitial commit. (diff)
downloadfirefox-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/domains/parent/SystemInfo.sys.mjs')
-rw-r--r--remote/cdp/domains/parent/SystemInfo.sys.mjs48
1 files changed, 48 insertions, 0 deletions
diff --git a/remote/cdp/domains/parent/SystemInfo.sys.mjs b/remote/cdp/domains/parent/SystemInfo.sys.mjs
new file mode 100644
index 0000000000..8b5e4a27c2
--- /dev/null
+++ b/remote/cdp/domains/parent/SystemInfo.sys.mjs
@@ -0,0 +1,48 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import { Domain } from "chrome://remote/content/cdp/domains/Domain.sys.mjs";
+
+export class SystemInfo extends Domain {
+ async getProcessInfo() {
+ const procInfo = await ChromeUtils.requestProcInfo();
+
+ // Add child processes
+ const processInfo = procInfo.children.map(proc => ({
+ type: this.#getProcessType(proc.type),
+ id: proc.pid,
+ cpuTime: this.#getCpuTime(proc.cpuTime),
+ }));
+
+ // Add parent process
+ processInfo.unshift({
+ type: "browser",
+ id: procInfo.pid,
+ cpuTime: this.#getCpuTime(procInfo.cpuTime),
+ });
+
+ return processInfo;
+ }
+
+ #getProcessType(type) {
+ // Map internal types to CDP types if applicable
+ switch (type) {
+ case "gpu":
+ return "GPU";
+
+ case "web":
+ case "webIsolated":
+ case "privilegedabout":
+ return "renderer";
+
+ default:
+ return type;
+ }
+ }
+
+ #getCpuTime(cpuTime) {
+ // cpuTime is tracked internally as nanoseconds, CDP is in seconds
+ return cpuTime / 1000 / 1000 / 1000;
+ }
+}