Commit afa3670a authored by Zentaro Kavanagh's avatar Zentaro Kavanagh Committed by Commit Bot

Diagnostics: Switch to use real telemetry

Bug: 1125150
Test: browser_tests --gtest_filter=DiagnosticsApp*
Change-Id: I2f07955c2be3e50c7dbec24f0f09a3e735e7ae7f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2532905
Commit-Queue: Zentaro Kavanagh <zentaro@chromium.org>
Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826633}
parent 55e85aae
......@@ -8,6 +8,7 @@ import {BatteryChargeStatus, BatteryHealth, BatteryInfo, SystemDataProviderInter
import {fakeBatteryChargeStatus, fakeBatteryHealth, fakeBatteryInfo} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {mojoString16ToString} from 'chrome://diagnostics/mojo_utils.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
......@@ -82,7 +83,8 @@ export function batteryStatusCardTestSuite() {
fakeBatteryChargeStatus[0].chargeNowMilliampHours,
dataPoints[3].value);
assertEquals(
fakeBatteryChargeStatus[0].powerTime, dataPoints[4].value);
mojoString16ToString(fakeBatteryChargeStatus[0].powerTime),
dataPoints[4].value);
assertEquals(
fakeBatteryChargeStatus[0].powerAdapterStatus,
dataPoints[5].value);
......
......@@ -93,7 +93,7 @@ export function cpuCardTestSuite() {
const currentlyUsingValue =
fakeCpuUsage[0].percentUsageUser + fakeCpuUsage[0].percentUsageSystem;
assertEquals(currentlyUsingValue, dataPoints[0].value);
assertEquals(fakeCpuUsage[0].cpuTempDegreesCelsius, dataPoints[1].value);
assertEquals(fakeCpuUsage[0].averageCpuTempCelsius, dataPoints[1].value);
const cpuChart = dx_utils.getRealtimeCpuChartElement(cpuElement);
assertEquals(fakeCpuUsage[0].percentUsageUser, cpuChart.user);
......
......@@ -59,12 +59,11 @@ export function fakeSystemDataProviderTestSuite() {
test('ObserveBatteryHealth', () => {
provider.setFakeBatteryHealth(fakeBatteryHealth);
/** @type {!BatteryHealthObserver} */
const batteryHealthObserverRemote = {
const batteryHealthObserverRemote = /** @type {!BatteryHealthObserver} */ ({
onBatteryHealthUpdated: (batteryHealth) => {
assertDeepEquals(fakeBatteryHealth[0], batteryHealth);
}
};
});
return provider.observeBatteryHealth(batteryHealthObserverRemote);
});
......@@ -72,12 +71,12 @@ export function fakeSystemDataProviderTestSuite() {
test('ObserveBatteryChargeStatus', () => {
provider.setFakeBatteryChargeStatus(fakeBatteryChargeStatus);
/** @type {!BatteryChargeStatusObserver} */
const batteryChargeStatusObserverRemote = {
onBatteryChargeStatusUpdated: (batteryChargeStatus) => {
assertDeepEquals(fakeBatteryChargeStatus[0], batteryChargeStatus);
}
};
const batteryChargeStatusObserverRemote =
/** @type {!BatteryChargeStatusObserver} */ ({
onBatteryChargeStatusUpdated: (batteryChargeStatus) => {
assertDeepEquals(fakeBatteryChargeStatus[0], batteryChargeStatus);
}
});
return provider.observeBatteryChargeStatus(
batteryChargeStatusObserverRemote);
......@@ -86,12 +85,11 @@ export function fakeSystemDataProviderTestSuite() {
test('ObserveCpuUsage', () => {
provider.setFakeCpuUsage(fakeCpuUsage);
/** @type {!CpuUsageObserver} */
const cpuObserverRemote = {
const cpuObserverRemote = /** @type {!CpuUsageObserver} */ ({
onCpuUsageUpdated: (cpuUsage) => {
assertDeepEquals(fakeCpuUsage[0], cpuUsage);
}
};
});
return provider.observeCpuUsage(cpuObserverRemote);
});
......@@ -99,12 +97,11 @@ export function fakeSystemDataProviderTestSuite() {
test('ObserveMemoryUsage', () => {
provider.setFakeMemoryUsage(fakeMemoryUsage);
/** @type {!MemoryUsageObserver} */
const memoryUsageObserverRemote = {
const memoryUsageObserverRemote = /** @type {!MemoryUsageObserver} */ ({
onMemoryUsageUpdated: (memoryUsage) => {
assertDeepEquals(fakeMemoryUsage[0], memoryUsage);
}
};
});
return provider.observeMemoryUsage(memoryUsageObserverRemote);
});
......@@ -162,7 +159,7 @@ export function fakeSystemDataProviderTestSuite() {
let completeResolver = new PromiseResolver();
/** @type {!CpuUsageObserver} */
const cpuObserverRemote = {
const cpuObserverRemote = /** @type {!CpuUsageObserver} */ ({
onCpuUsageUpdated: (cpuUsage) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
......@@ -176,7 +173,7 @@ export function fakeSystemDataProviderTestSuite() {
}
whichSample++;
}
};
});
return provider.observeCpuUsage(cpuObserverRemote)
.then(() => {
......@@ -200,8 +197,7 @@ export function fakeSystemDataProviderTestSuite() {
let firstResolver = new PromiseResolver();
let completeResolver = new PromiseResolver();
/** @type {!MemoryUsageObserver} */
const memoryObserverRemote = {
const memoryObserverRemote = /** @type {!MemoryUsageObserver} */ ({
onMemoryUsageUpdated: (memoryUsage) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
......@@ -215,7 +211,7 @@ export function fakeSystemDataProviderTestSuite() {
}
whichSample++;
}
};
});
return provider.observeMemoryUsage(memoryObserverRemote)
.then(() => {
......@@ -239,8 +235,7 @@ export function fakeSystemDataProviderTestSuite() {
let firstResolver = new PromiseResolver();
let completeResolver = new PromiseResolver();
/** @type {!BatteryHealthObserver} */
const batteryHealthObserverRemote = {
const batteryHealthObserverRemote = /** @type {!BatteryHealthObserver} */ ({
onBatteryHealthUpdated: (batteryHealth) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
......@@ -254,7 +249,7 @@ export function fakeSystemDataProviderTestSuite() {
}
whichSample++;
}
};
});
return provider.observeBatteryHealth(batteryHealthObserverRemote)
.then(() => {
......@@ -278,23 +273,23 @@ export function fakeSystemDataProviderTestSuite() {
let firstResolver = new PromiseResolver();
let completeResolver = new PromiseResolver();
/** @type {!BatteryChargeStatusObserver} */
const batteryChargeStatusObserverRemote = {
onBatteryChargeStatusUpdated: (batteryChargeStatus) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
assertTrue(whichSample <= 1);
assertDeepEquals(
fakeBatteryChargeStatus[whichSample], batteryChargeStatus);
if (whichSample === 0) {
firstResolver.resolve();
} else {
completeResolver.resolve();
}
whichSample++;
}
};
const batteryChargeStatusObserverRemote =
/** @type {!BatteryChargeStatusObserver} */ ({
onBatteryChargeStatusUpdated: (batteryChargeStatus) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
assertTrue(whichSample <= 1);
assertDeepEquals(
fakeBatteryChargeStatus[whichSample], batteryChargeStatus);
if (whichSample === 0) {
firstResolver.resolve();
} else {
completeResolver.resolve();
}
whichSample++;
}
});
return provider
.observeBatteryChargeStatus(batteryChargeStatusObserverRemote)
......@@ -320,7 +315,7 @@ export function fakeSystemDataProviderTestSuite() {
let completeResolver = new PromiseResolver();
/** @type {!CpuUsageObserver} */
const cpuObserverRemote = {
const cpuObserverRemote = /** @type {!CpuUsageObserver} */ ({
onCpuUsageUpdated: (cpuUsage) => {
// Only expect 2 calls.
assertTrue(whichSample >= 0);
......@@ -336,7 +331,7 @@ export function fakeSystemDataProviderTestSuite() {
}
whichSample++;
}
};
});
return provider.observeCpuUsage(cpuObserverRemote)
.then(() => {
......
......@@ -3,6 +3,7 @@
// found in the LICENSE file.
import {SystemDataProviderInterface} from 'chrome://diagnostics/diagnostics_types.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {FakeSystemRoutineController} from 'chrome://diagnostics/fake_system_routine_controller.js';
import {getSystemDataProvider, getSystemRoutineController, setSystemDataProviderForTesting, setSystemRoutineControllerForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
......@@ -10,9 +11,7 @@ import {assertEquals} from '../../chai_assert.js';
export function fakeMojoProviderTestSuite() {
test('SettingGettingTestProvider', () => {
// TODO(zentaro): Replace with fake when built.
let fake_provider =
/** @type {SystemDataProviderInterface} */ (new Object());
let fake_provider = new FakeSystemDataProvider();
setSystemDataProviderForTesting(fake_provider);
assertEquals(fake_provider, getSystemDataProvider());
});
......
......@@ -23,6 +23,7 @@ js_type_check("closure_compile_module") {
":fake_system_routine_controller",
":memory_card",
":mojo_interface_provider",
":mojo_utils",
":overview_card",
":percent_bar_chart",
":realtime_cpu_chart",
......@@ -37,6 +38,7 @@ js_library("battery_status_card") {
deps = [
":data_point",
":mojo_interface_provider",
":mojo_utils",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:i18n_behavior.m",
]
......@@ -121,6 +123,12 @@ js_library("mojo_interface_provider") {
]
}
js_library("mojo_utils") {
deps = [
"//chromeos/components/diagnostics_ui/mojom:mojom_js_library_for_compile",
]
}
js_library("overview_card") {
deps = [
":diagnostics_card",
......
......@@ -21,7 +21,7 @@
value="[[batteryChargeStatus_.chargeNowMilliampHours]]">
</data-point>
<data-point slot="body" id="powerTime" header="[[i18n('powerTime')]]"
value="[[batteryChargeStatus_.powerTime]]">
value="[[powerTimeString_]]">
</data-point>
<data-point slot="body" id="adapterStatus" header="[[i18n('adapterStatus')]]"
value="[[batteryChargeStatus_.powerAdapterStatus]]">
......
......@@ -13,6 +13,7 @@ import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bun
import {BatteryChargeStatus, BatteryHealth, BatteryInfo, SystemDataProviderInterface} from './diagnostics_types.js'
import {getSystemDataProvider} from './mojo_interface_provider.js';
import {mojoString16ToString} from './mojo_utils.js';
/**
* @fileoverview
......@@ -30,6 +31,20 @@ Polymer({
*/
systemDataProvider_: null,
/**
* Receiver responsible for observing battery charge status.
* @private {
* ?chromeos.diagnostics.mojom.BatteryChargeStatusObserverReceiver}
*/
batteryChargeStatusObserverReceiver_: null,
/**
* Receiver responsible for observing battery health.
* @private {
* ?chromeos.diagnostics.mojom.BatteryHealthObserverReceiver}
*/
batteryHealthObserverReceiver_: null,
properties: {
/** @private {!BatteryChargeStatus} */
batteryChargeStatus_: {
......@@ -45,6 +60,12 @@ Polymer({
batteryInfo_: {
type: Object,
},
/** @protected {string} */
powerTimeString_: {
type: String,
computed: 'decodeString16_(batteryChargeStatus_.powerTime)',
},
},
/** @override */
......@@ -55,6 +76,12 @@ Polymer({
this.observeBatteryHealth_();
},
/** @override */
detached() {
this.batteryChargeStatusObserverReceiver_.$.close();
this.batteryHealthObserverReceiver_.$.close();
},
/** @private */
fetchBatteryInfo_() {
this.systemDataProvider_.getBatteryInfo().then(
......@@ -71,7 +98,16 @@ Polymer({
/** @private */
observeBatteryChargeStatus_() {
this.systemDataProvider_.observeBatteryChargeStatus(this);
this.batteryChargeStatusObserverReceiver_ =
new chromeos.diagnostics.mojom.BatteryChargeStatusObserverReceiver(
/**
* @type {!chromeos.diagnostics.mojom.
* BatteryChargeStatusObserverInterface}
*/
(this));
this.systemDataProvider_.observeBatteryChargeStatus(
this.batteryChargeStatusObserverReceiver_.$.bindNewPipeAndPassRemote());
},
/**
......@@ -84,7 +120,26 @@ Polymer({
/** @private */
observeBatteryHealth_() {
this.systemDataProvider_.observeBatteryHealth(this);
this.batteryHealthObserverReceiver_ =
new chromeos.diagnostics.mojom.BatteryHealthObserverReceiver(
/**
* @type {!chromeos.diagnostics.mojom.
* BatteryHealthObserverInterface}
*/
(this));
this.systemDataProvider_.observeBatteryHealth(
this.batteryHealthObserverReceiver_.$.bindNewPipeAndPassRemote());
},
/**
* Converts utf16 to a readable string.
* @param {!mojoBase.mojom.String16} str16
* @return {string}
* @private
*/
decodeString16_(str16) {
return mojoString16ToString(str16);
},
/**
......
......@@ -15,7 +15,7 @@
<!-- TODO(michaelcheco): Investigate whether or not temperature can be
localized. -->
<data-point slot="body" id="cpuTemp" header="[[i18n('cpuTemp')]]"
value="[[cpuUsage_.cpuTempDegreesCelsius]]">
value="[[cpuUsage_.averageCpuTempCelsius]]">
</data-point>
<routine-section slot="routines" routines="[[routines_]]"></routine-section>
......
......@@ -11,7 +11,7 @@ import './strings.m.js';
import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {CpuUsage, RoutineName, SystemDataProviderInterface} from './diagnostics_types.js'
import {CpuUsage, RoutineName, SystemDataProviderInterface} from './diagnostics_types.js';
import {getSystemDataProvider} from './mojo_interface_provider.js';
/**
......@@ -30,6 +30,12 @@ Polymer({
*/
systemDataProvider_: null,
/**
* Receiver responsible for observing CPU usage.
* @private {?chromeos.diagnostics.mojom.CpuUsageObserverReceiver}
*/
cpuUsageObserverReceiver_: null,
properties: {
routines_: {
type: Array,
......@@ -55,9 +61,22 @@ Polymer({
this.observeCpuUsage_();
},
/** @override */
detached() {
this.cpuUsageObserverReceiver_.$.close();
},
/** @private */
observeCpuUsage_() {
this.systemDataProvider_.observeCpuUsage(this);
this.cpuUsageObserverReceiver_ =
new chromeos.diagnostics.mojom.CpuUsageObserverReceiver(
/**
* @type {!chromeos.diagnostics.mojom.CpuUsageObserverInterface}
*/
(this));
this.systemDataProvider_.observeCpuUsage(
this.cpuUsageObserverReceiver_.$.bindNewPipeAndPassRemote());
},
/**
......
......@@ -28,6 +28,7 @@
<include name="IDR_DIAGNOSTICS_FONTS_CSS_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/diagnostics_fonts_css.js" use_base_dir="false" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_MEMORY_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/memory_card.js" use_base_dir="false" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_MOJO_INTERFACE_PROVIDER_JS" file="mojo_interface_provider.js" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_MOJO_UTILS_JS" file="mojo_utils.js" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_OVERVIEW_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/overview_card.js" use_base_dir="false" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_PERCENT_BAR_CHART_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/percent_bar_chart.js" use_base_dir="false" type="BINDATA"/>
<include name="IDR_DIAGNOSTICS_REALTIME_CPU_CHART_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/realtime_cpu_chart.js" use_base_dir="false" type="BINDATA"/>
......
......@@ -10,178 +10,96 @@
* re-aliased to the corresponding mojo types, or replaced by them.
*/
/**
* Type of SystemDataProviderInterface.ObserveBatteryChargeStatus function.
* @typedef {!function(!BatteryChargeStatusObserver): !Promise}
*/
export let ObserveBatteryChargeStatusFunction;
/**
* Type of SystemDataProviderInterface.ObserveBatteryHealth function.
* @typedef {!function(!BatteryHealthObserver): !Promise}
*/
export let ObserveBatteryHealthFunction;
/**
* Type of SystemDataProviderInterface.ObserveCpuUsage function.
* @typedef {!function(!CpuUsageObserver): !Promise}
*/
export let ObserveCpuUsageFunction;
/**
* Type of SystemDataProviderInterface.ObserveMemoryUsage function.
* @typedef {!function(!MemoryUsageObserver): !Promise}
*/
export let ObserveMemoryUsageFunction;
/**
* Type alias for the SystemDataProviderInterface.
* TODO(zentaro): Replace with a real mojo type when implemented.
* @typedef {{
* getBatteryInfo: !function(): !Promise<!{batteryInfo: !BatteryInfo}>,
* getSystemInfo: !function(): !Promise<!{systemInfo: SystemInfo}>,
* observeBatteryChargeStatus: !ObserveBatteryChargeStatusFunction,
* observeBatteryHealth: !ObserveBatteryHealthFunction,
* observeCpuUsage: !ObserveCpuUsageFunction,
* observeMemoryUsage: !ObserveMemoryUsageFunction,
* }}
* @typedef {chromeos.diagnostics.mojom.SystemDataProviderInterface}
*/
export let SystemDataProviderInterface;
/**
* Type alias for DeviceCapabilities.
* @typedef {{
* hasBattery: boolean,
* }}
* @typedef {chromeos.diagnostics.mojom.DeviceCapabilities}
*/
export let DeviceCapabilities;
/**
* Type alias for VersionInfo.
* @typedef {{
* milestoneVersion: string,
* }}
* @typedef {chromeos.diagnostics.mojom.VersionInfo}
*/
export let VersionInfo;
/**
* Type alias for SystemInfo.
* @typedef {{
* boardName: string,
* cpuModelName: string,
* cpuThreadsCount: number,
* deviceCapabilities: DeviceCapabilities,
* marketingName: string,
* totalMemoryKib: number,
* versionInfo: VersionInfo,
* }}
* @typedef {chromeos.diagnostics.mojom.SystemInfo}
*/
export let SystemInfo;
/**
* Type alias for BatteryInfo.
* @typedef {{
* chargeFullDesignMilliampHours: number,
* manufacturer: string,
* }}
* Type alias for ExternalPowerSource.
* @typedef {chromeos.diagnostics.mojom.ExternalPowerSource}
*/
export let BatteryInfo;
export let ExternalPowerSource;
/**
* Type alias for CpuUsageObserver.
* @typedef {{
* onCpuUsageUpdated: !function(!CpuUsage),
* }}
* Type alias for BatteryState.
* @typedef {chromeos.diagnostics.mojom.BatteryState}
*/
export let CpuUsageObserver;
export let BatteryState;
/**
* Type alias for CpuUsage.
* @typedef {{
* cpuTempDegreesCelsius: number,
* percentUsageSystem: number,
* percentUsageUser: number,
* }}
* Type alias for BatteryInfo.
* @typedef {chromeos.diagnostics.mojom.BatteryInfo}
*/
export let CpuUsage;
export let BatteryInfo;
/**
* Type alias for BatteryChargeStatusObserver.
* @typedef {{
* onBatteryChargeStatusUpdated: !function(!BatteryChargeStatus)
* }}
* Type alias for BatteryHealthObserver.
* @typedef {chromeos.diagnostics.mojom.BatteryChargeStatusObserver}
*/
export let BatteryChargeStatusObserver;
/**
* External power source enumeration.
* @enum {number}
*/
export let ExternalPowerSource = {
kAc: 0,
kUsb: 1,
kDisconnected: 2,
};
/**
* Battery state enumeration.
* @enum {number}
*/
export let BatteryState = {
kCharging: 0,
kDischarging: 1,
kFull: 2,
};
/**
* Type alias for BatteryChargeStatus.
* @typedef {{
* batteryState: BatteryState,
* chargeNowMilliampHours: number,
* currentNowMilliamps: number,
* powerAdapterStatus: ExternalPowerSource,
* powerTime: string,
* }}
* @typedef {chromeos.diagnostics.mojom.BatteryChargeStatus}
*/
export let BatteryChargeStatus;
/**
* Type alias for BatteryHealthObserver.
* @typedef {{
* onBatteryHealthUpdated: !function(!BatteryHealth)
* }}
* @typedef {chromeos.diagnostics.mojom.BatteryHealthObserver}
*/
export let BatteryHealthObserver;
/**
* Type alias for BatteryHealth.
* @typedef {{
* batteryWearPercentage: number,
* chargeFullDesignMilliampHours: number,
* chargeFullNowMilliampHours: number,
* cycleCount: number,
* }}
* @typedef {chromeos.diagnostics.mojom.BatteryHealth}
*/
export let BatteryHealth;
/**
* Type alias for MemoryUsageObserver.
* @typedef {{
* onMemoryUsageUpdated: !function(!MemoryUsage)
* }}
* @typedef {chromeos.diagnostics.mojom.MemoryUsageObserver}
*/
export let MemoryUsageObserver;
/**
* Type alias for MemoryUsage.
* @typedef {{
* availableMemoryKib: number,
* freeMemoryKib: number,
* totalMemoryKib: number,
* }}
* @typedef {chromeos.diagnostics.mojom.MemoryUsage}
*/
export let MemoryUsage;
/**
* Type alias for CpuUsageObserver.
* @typedef {chromeos.diagnostics.mojom.CpuUsageObserver}
*/
export let CpuUsageObserver;
/**
* Type alias for CpuUsage.
* @typedef {chromeos.diagnostics.mojom.CpuUsage}
*/
export let CpuUsage;
/**
* Enumeration of routines.
* @enum {number}
......
......@@ -3,6 +3,7 @@
// found in the LICENSE file.
import {BatteryChargeStatus, BatteryHealth, CpuUsage, ExternalPowerSource, MemoryUsage, RoutineName, StandardRoutineResult, SystemInfo} from './diagnostics_types.js'
import {stringToMojoString16} from './mojo_utils.js';
/* @type {!Array<!BatteryChargeStatus>} */
export const fakeBatteryChargeStatus = [
......@@ -10,22 +11,22 @@ export const fakeBatteryChargeStatus = [
chargeFullNowMilliampHours: 5700,
chargeNowMilliampHours: 4200,
currentNowMilliamps: 1123,
powerAdapterStatus: ExternalPowerSource.kAc,
powerTime: '3h 15m',
powerAdapterStatus: chromeos.diagnostics.mojom.ExternalPowerSource.kAc,
powerTime: stringToMojoString16('3h 15m'),
},
{
chargeFullNowMilliampHours: 5700,
chargeNowMilliampHours: 4500,
currentNowMilliamps: 1123,
powerAdapterStatus: ExternalPowerSource.kAc,
powerTime: '3h 01m',
powerAdapterStatus: chromeos.diagnostics.mojom.ExternalPowerSource.kAc,
powerTime: stringToMojoString16('3h 01m'),
},
{
chargeFullNowMilliampHours: 5700,
chargeNowMilliampHours: 4800,
currentNowMilliamps: 1123,
powerAdapterStatus: ExternalPowerSource.kAc,
powerTime: '2h 45m',
powerAdapterStatus: chromeos.diagnostics.mojom.ExternalPowerSource.kAc,
powerTime: stringToMojoString16('2h 45m'),
}
];
......@@ -60,42 +61,42 @@ export const fakeBatteryInfo2 = {
/* @type {!Array<!CpuUsage>} */
export const fakeCpuUsage = [
{
cpuTempDegreesCelsius: 107,
averageCpuTempCelsius: 107,
percentUsageSystem: 15,
percentUsageUser: 20,
},
{
cpuTempDegreesCelsius: 106,
averageCpuTempCelsius: 106,
percentUsageSystem: 30,
percentUsageUser: 40,
},
{
cpuTempDegreesCelsius: 107,
averageCpuTempCelsius: 107,
percentUsageSystem: 31,
percentUsageUser: 45,
},
{
cpuTempDegreesCelsius: 109,
averageCpuTempCelsius: 109,
percentUsageSystem: 55,
percentUsageUser: 24,
},
{
cpuTempDegreesCelsius: 109,
averageCpuTempCelsius: 109,
percentUsageSystem: 49,
percentUsageUser: 10,
},
{
cpuTempDegreesCelsius: 161,
averageCpuTempCelsius: 161,
percentUsageSystem: 1,
percentUsageUser: 99,
},
{
cpuTempDegreesCelsius: 118,
averageCpuTempCelsius: 118,
percentUsageSystem: 35,
percentUsageUser: 37,
},
{
cpuTempDegreesCelsius: 110,
averageCpuTempCelsius: 110,
percentUsageSystem: 26,
percentUsageUser: 30,
},
......
......@@ -31,6 +31,13 @@ Polymer({
*/
systemDataProvider_: null,
/**
* Receiver responsible for observing memory usage.
* @private {
* ?chromeos.diagnostics.mojom.MemoryUsageObserverReceiver}
*/
memoryUsageObserverReceiver_: null,
properties: {
/** @private {!Array<!RoutineName>} */
routines_: {
......@@ -54,9 +61,22 @@ Polymer({
this.observeMemoryUsage_();
},
/** @override */
detached() {
this.memoryUsageObserverReceiver_.$.close();
},
/** @private */
observeMemoryUsage_() {
this.systemDataProvider_.observeMemoryUsage(this);
this.memoryUsageObserverReceiver_ =
new chromeos.diagnostics.mojom.MemoryUsageObserverReceiver(
/**
* @type {!chromeos.diagnostics.mojom.MemoryUsageObserverInterface}
*/
(this));
this.systemDataProvider_.observeMemoryUsage(
this.memoryUsageObserverReceiver_.$.bindNewPipeAndPassRemote());
},
/**
......
......@@ -2,6 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
import 'chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js';
import 'chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js';
import './system_data_provider.mojom-lite.js';
import './system_routine_controller.mojom-lite.js';
import {assert} from 'chrome://resources/js/assert.m.js';
import {SystemDataProviderInterface, SystemInfo, SystemRoutineControllerInterface} from './diagnostics_types.js';
import {fakeBatteryChargeStatus, fakeBatteryHealth, fakeBatteryInfo, fakeCpuUsage, fakeMemoryUsage, fakeRoutineResults, fakeSystemInfo} from './fake_data.js';
......@@ -79,8 +84,8 @@ export function setSystemDataProviderForTesting(testProvider) {
*/
export function getSystemDataProvider() {
if (!systemDataProvider) {
// TODO(zentaro): Instantiate a real mojo interface here.
setupFakeSystemDataProvider_();
systemDataProvider =
chromeos.diagnostics.mojom.SystemDataProvider.getRemote();
}
assert(!!systemDataProvider);
......
// Copyright 2020 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.
import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
import 'chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js';
import 'chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js';
/**
* Converts a JS string to mojo_base::mojom::String16 object.
* @param {string} str
* @return {!mojoBase.mojom.String16}
*/
export function stringToMojoString16(str) {
let arr = [];
for (var i = 0; i < str.length; i++) {
arr[i] = str.charCodeAt(i);
}
return {data: arr};
}
/**
* Converts mojo_base::mojom::String16 to a JS string.
* @param {!mojoBase.mojom.String16} str16
* @return {string}
*/
export function mojoString16ToString(str16) {
return str16.data.map(ch => String.fromCodePoint(ch)).join('');
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment