From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- remote/cdp/domains/parent/SystemInfo.sys.mjs | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 remote/cdp/domains/parent/SystemInfo.sys.mjs (limited to 'remote/cdp/domains/parent/SystemInfo.sys.mjs') 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; + } +} -- cgit v1.2.3