|  | // 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; | 
|  | }; | 
|  |  | 
|  | callback CpuInfoCallback = void (CpuInfo info); | 
|  |  | 
|  | interface Functions { | 
|  | // Queries basic CPU information of the system. | 
|  | static void getInfo(CpuInfoCallback callback); | 
|  | }; | 
|  | }; |