184 lines
8.0 KiB
Plaintext
Executable File
184 lines
8.0 KiB
Plaintext
Executable File
// Copyright 2016 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Use the <code>chrome.processes</code> API to interact with the browser's
|
|
// processes.
|
|
namespace processes {
|
|
// The types of the browser processes.
|
|
enum ProcessType {
|
|
browser,
|
|
renderer,
|
|
extension,
|
|
notification,
|
|
plugin,
|
|
worker,
|
|
nacl,
|
|
service_worker,
|
|
utility,
|
|
gpu,
|
|
other
|
|
};
|
|
|
|
// An object that represents a Chrome task running on a process. Several tasks
|
|
// can share the same process.
|
|
dictionary TaskInfo {
|
|
// The title of the task.
|
|
DOMString title;
|
|
// Optional tab ID, if this task represents a tab running on a renderer
|
|
// process.
|
|
long? tabId;
|
|
};
|
|
|
|
// The Cache object contains information about the size and utilization of a
|
|
// cache used by the browser.
|
|
dictionary Cache {
|
|
// The size of the cache, in bytes.
|
|
double size;
|
|
// The part of the cache that is utilized, in bytes.
|
|
double liveSize;
|
|
};
|
|
|
|
// An object containing information about one of the browser's processes.
|
|
dictionary Process {
|
|
// Unique ID of the process provided by the browser.
|
|
long id;
|
|
// The ID of the process, as provided by the OS.
|
|
long osProcessId;
|
|
// The type of process.
|
|
ProcessType type;
|
|
// The profile which the process is associated with.
|
|
DOMString profile;
|
|
// The debugging port for Native Client processes. Zero for other process
|
|
// types and for NaCl processes that do not have debugging enabled.
|
|
long naclDebugPort;
|
|
// Array of TaskInfos representing the tasks running on this process.
|
|
TaskInfo[] tasks;
|
|
// The most recent measurement of the process's CPU usage, expressed as the
|
|
// percentage of a single CPU core used in total, by all of the process's
|
|
// threads. This gives a value from zero to CpuInfo.numOfProcessors*100,
|
|
// which can exceed 100% in multi-threaded processes.
|
|
// Only available when receiving the object as part of a callback from
|
|
// onUpdated or onUpdatedWithMemory.
|
|
double? cpu;
|
|
// The most recent measurement of the process network usage, in bytes per
|
|
// second. Only available when receiving the object as part of a callback
|
|
// from onUpdated or onUpdatedWithMemory.
|
|
double? network;
|
|
// The most recent measurement of the process private memory usage, in
|
|
// bytes. Only available when receiving the object as part of a callback
|
|
// from onUpdatedWithMemory or getProcessInfo with the includeMemory flag.
|
|
double? privateMemory;
|
|
// The most recent measurement of the process JavaScript allocated memory,
|
|
// in bytes. Only available when receiving the object as part of a callback
|
|
// from onUpdated or onUpdatedWithMemory.
|
|
double? jsMemoryAllocated;
|
|
// The most recent measurement of the process JavaScript memory used, in
|
|
// bytes. Only available when receiving the object as part of a callback
|
|
// from onUpdated or onUpdatedWithMemory.
|
|
double? jsMemoryUsed;
|
|
// The most recent measurement of the process's SQLite memory usage, in
|
|
// bytes. Only available when receiving the object as part of a callback
|
|
// from onUpdated or onUpdatedWithMemory.
|
|
double? sqliteMemory;
|
|
// The most recent information about the image cache for the process. Only
|
|
// available when receiving the object as part of a callback from onUpdated
|
|
// or onUpdatedWithMemory.
|
|
Cache? imageCache;
|
|
// The most recent information about the script cache for the process. Only
|
|
// available when receiving the object as part of a callback from onUpdated
|
|
// or onUpdatedWithMemory.
|
|
Cache? scriptCache;
|
|
// The most recent information about the CSS cache for the process. Only
|
|
// available when receiving the object as part of a callback from onUpdated
|
|
// or onUpdatedWithMemory.
|
|
Cache? cssCache;
|
|
};
|
|
|
|
// A callback to report the status of the termination.
|
|
// |didTerminate|: True if terminating the process was successful, and false
|
|
// otherwise.
|
|
callback TerminateCallback = void(boolean didTerminate);
|
|
|
|
// A callback to return the ID of the renderer process of a tab.
|
|
// |processId|: Process ID of the tab's renderer process.
|
|
callback GetProcessIdForTabCallback = void(long processId);
|
|
|
|
// A callback called when the processes information is collected.
|
|
// |processes|: A dictionary of $(ref:Process) objects for each requested
|
|
// process that is a live child process of the current browser process,
|
|
// indexed by process ID. Metrics requiring aggregation over time will not be
|
|
// populated in each Process object.
|
|
callback GetProcessInfoCallback = void(object processes);
|
|
|
|
interface Functions {
|
|
// Returns the ID of the renderer process for the specified tab.
|
|
// |tabId|: The ID of the tab for which the renderer process ID is to be
|
|
// returned.
|
|
[supportsPromises] static void getProcessIdForTab(
|
|
long tabId,
|
|
GetProcessIdForTabCallback callback);
|
|
|
|
// Terminates the specified renderer process. Equivalent to visiting
|
|
// about:crash, but without changing the tab's URL.
|
|
// |processId|: The ID of the process to be terminated.
|
|
[supportsPromises] static void terminate(
|
|
long processId,
|
|
optional TerminateCallback callback);
|
|
|
|
// Retrieves the process information for each process ID specified.
|
|
// |processIds|: The list of process IDs or single process ID for which
|
|
// to return the process information. An empty list indicates all processes
|
|
// are requested.
|
|
// |includeMemory|: True if detailed memory usage is required. Note,
|
|
// collecting memory usage information incurs extra CPU usage and should
|
|
// only be queried for when needed.
|
|
[supportsPromises] static void getProcessInfo(
|
|
(long or long[]) processIds,
|
|
boolean includeMemory,
|
|
GetProcessInfoCallback callback);
|
|
};
|
|
|
|
interface Events {
|
|
// Fired each time the Task Manager updates its process statistics,
|
|
// providing the dictionary of updated Process objects, indexed by process
|
|
// ID.
|
|
// |processes|: A dictionary of updated $(ref:Process) objects for each live
|
|
// process in the browser, indexed by process ID. Metrics requiring
|
|
// aggregation over time will be populated in each Process object.
|
|
static void onUpdated(object processes);
|
|
|
|
// Fired each time the Task Manager updates its process statistics,
|
|
// providing the dictionary of updated Process objects, indexed by process
|
|
// ID. Identical to onUpdate, with the addition of memory usage details
|
|
// included in each Process object. Note, collecting memory usage
|
|
// information incurs extra CPU usage and should only be listened for when
|
|
// needed.
|
|
// |processes|: A dictionary of updated $(ref:Process) objects for each live
|
|
// process in the browser, indexed by process ID. Memory usage details will
|
|
// be included in each Process object.
|
|
static void onUpdatedWithMemory(object processes);
|
|
|
|
// Fired each time a process is created, providing the corrseponding Process
|
|
// object.
|
|
// |process|: Details of the process that was created. Metrics requiring
|
|
// aggregation over time will not be populated in the object.
|
|
static void onCreated(Process process);
|
|
|
|
// Fired each time a process becomes unresponsive, providing the
|
|
// corrseponding Process object.
|
|
// |process|: Details of the unresponsive process. Metrics requiring
|
|
// aggregation over time will not be populated in the object. Only available
|
|
// for renderer processes.
|
|
static void onUnresponsive(Process process);
|
|
|
|
// Fired each time a process is terminated, providing the type of exit.
|
|
// |processId|: The ID of the process that exited.
|
|
// |exitType|: The type of exit that occurred for the process - normal,
|
|
// abnormal, killed, crashed. Only available for renderer processes.
|
|
// |exitCode|: The exit code if the process exited abnormally. Only
|
|
// available for renderer processes.
|
|
static void onExited(long processId, long exitType, long exitCode);
|
|
};
|
|
};
|