blob: e96226176d650f2457bce747989b82c933197342 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Use the <code>system.cpu</code> API to query CPU metadata.
namespace system.cpu {
// Counters for assessing CPU utilization. Each field is monotonically
// increasing while the processor is powered on. Values are in milliseconds.
dictionary CpuTime {
// The cumulative time used by userspace programs on this processor.
double user;
// The cumulative time used by kernel programs on this processor.
double kernel;
// The cumulative time spent idle by this processor.
double idle;
// The total cumulative time for this processor. This value is equal to
// user + kernel + idle.
double total;
dictionary ProcessorInfo {
// Cumulative usage info for this logical processor.
CpuTime usage;
dictionary CpuInfo {
// The number of logical processors.
long numOfProcessors;
// The architecture name of the processors.
DOMString archName;
// The model name of the processors.
DOMString modelName;
// A set of feature codes indicating some of the processor's capabilities.
// The currently supported codes are "mmx", "sse", "sse2", "sse3", "ssse3",
// "sse4_1", "sse4_2", and "avx".
DOMString[] features;
// Information about each logical processor.
ProcessorInfo[] processors;
// List of CPU temperature readings from each thermal zone of the CPU.
// Temperatures are in degrees Celsius.
// <b>Currently supported on Chrome OS only.</b>
double[] temperatures;
callback CpuInfoCallback = void (CpuInfo info);
interface Functions {
// Queries basic CPU information of the system.
static void getInfo(CpuInfoCallback callback);