Commit 63d3a6d3 authored by Kuo Jen Wei's avatar Kuo Jen Wei Committed by Commit Bot

[CCA] Convert perf.js into ES6 module.

Bug: 141518780
Test: Pass closure compiler check, tast run <DUT> 'camera.CCAUI*' and manually
validate tooltips function of CCA works correctly.

Change-Id: Ie4dd0afe79ad2787949618f3f7e59da12b5867c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1981420
Commit-Queue: Kuo Jen Wei <inker@chromium.org>
Auto-Submit: Kuo Jen Wei <inker@chromium.org>
Reviewed-by: default avatarShik Chen <shik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#727412}
parent c80eda4c
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
var cca = { var cca = {
mojo: {}, mojo: {},
perf: {},
proxy: {}, proxy: {},
state: {}, state: {},
toast: {}, toast: {},
......
...@@ -2,23 +2,14 @@ ...@@ -2,23 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
'use strict'; import {ChromeHelper} from './mojo/chrome_helper.js';
import {PerfInformation} from './type.js'; // eslint-disable-line no-unused-vars
/**
* Namespace for the Camera app.
*/
var cca = cca || {};
/**
* Namespace for perf.
*/
cca.perf = cca.perf || {};
/** /**
* Type for performance event. * Type for performance event.
* @enum {string} * @enum {string}
*/ */
cca.perf.PerfEvent = { export const PerfEvent = {
PHOTO_TAKING: 'photo-taking', PHOTO_TAKING: 'photo-taking',
PHOTO_CAPTURE_POST_PROCESSING: 'photo-capture-post-processing', PHOTO_CAPTURE_POST_PROCESSING: 'photo-capture-post-processing',
VIDEO_CAPTURE_POST_PROCESSING: 'video-capture-post-processing', VIDEO_CAPTURE_POST_PROCESSING: 'video-capture-post-processing',
...@@ -31,26 +22,22 @@ cca.perf.PerfEvent = { ...@@ -31,26 +22,22 @@ cca.perf.PerfEvent = {
LAUNCHING_FROM_LAUNCH_APP_WARM: 'launching-from-launch-app-warm', LAUNCHING_FROM_LAUNCH_APP_WARM: 'launching-from-launch-app-warm',
}; };
/* eslint-disable no-unused-vars */
/** /**
* @typedef {function(cca.perf.PerfEvent, number, Object=)} * @typedef {function(PerfEvent, number, Object=)}
*/ */
var PerfEventListener; let PerfEventListener; // eslint-disable-line no-unused-vars
/* eslint-enable no-unused-vars */
/** /**
* Logger for performance events. * Logger for performance events.
*/ */
cca.perf.PerfLogger = class { export class PerfLogger {
/** /**
* @public * @public
*/ */
constructor() { constructor() {
/** /**
* Map to store events starting timestamp. * Map to store events starting timestamp.
* @type {!Map<cca.perf.PerfEvent, number>} * @type {!Map<PerfEvent, number>}
* @private * @private
*/ */
this.startTimeMap_ = new Map(); this.startTimeMap_ = new Map();
...@@ -87,7 +74,7 @@ cca.perf.PerfLogger = class { ...@@ -87,7 +74,7 @@ cca.perf.PerfLogger = class {
/** /**
* Starts the measurement for given event. * Starts the measurement for given event.
* @param {cca.perf.PerfEvent} event Target event. * @param {PerfEvent} event Target event.
*/ */
start(event) { start(event) {
if (this.startTimeMap_.has(event)) { if (this.startTimeMap_.has(event)) {
...@@ -96,13 +83,13 @@ cca.perf.PerfLogger = class { ...@@ -96,13 +83,13 @@ cca.perf.PerfLogger = class {
return; return;
} }
this.startTimeMap_.set(event, performance.now()); this.startTimeMap_.set(event, performance.now());
cca.mojo.ChromeHelper.getInstance().startTracing(event); ChromeHelper.getInstance().startTracing(event);
} }
/** /**
* Stops the measurement for given event and returns the measurement result. * Stops the measurement for given event and returns the measurement result.
* @param {cca.perf.PerfEvent} event Target event. * @param {PerfEvent} event Target event.
* @param {cca.PerfInformation=} perfInfo Optional information of this event * @param {PerfInformation=} perfInfo Optional information of this event
* for performance measurement. * for performance measurement.
*/ */
stop(event, perfInfo = {}) { stop(event, perfInfo = {}) {
...@@ -127,20 +114,20 @@ cca.perf.PerfLogger = class { ...@@ -127,20 +114,20 @@ cca.perf.PerfLogger = class {
} }
const duration = performance.now() - startTime; const duration = performance.now() - startTime;
cca.mojo.ChromeHelper.getInstance().stopTracing(event); ChromeHelper.getInstance().stopTracing(event);
this.listeners_.forEach((listener) => listener(event, duration, perfInfo)); this.listeners_.forEach((listener) => listener(event, duration, perfInfo));
} }
/** /**
* Stops the measurement of launch-related events. * Stops the measurement of launch-related events.
* @param {cca.PerfInformation=} perfInfo Optional information of this event * @param {PerfInformation=} perfInfo Optional information of this event
* for performance measurement. * for performance measurement.
*/ */
stopLaunch(perfInfo) { stopLaunch(perfInfo) {
const launchEvents = [ const launchEvents = [
cca.perf.PerfEvent.LAUNCHING_FROM_WINDOW_CREATION, PerfEvent.LAUNCHING_FROM_WINDOW_CREATION,
cca.perf.PerfEvent.LAUNCHING_FROM_LAUNCH_APP_COLD, PerfEvent.LAUNCHING_FROM_LAUNCH_APP_COLD,
cca.perf.PerfEvent.LAUNCHING_FROM_LAUNCH_APP_WARM, PerfEvent.LAUNCHING_FROM_LAUNCH_APP_WARM,
]; ];
launchEvents.forEach((event) => { launchEvents.forEach((event) => {
...@@ -156,4 +143,9 @@ cca.perf.PerfLogger = class { ...@@ -156,4 +143,9 @@ cca.perf.PerfLogger = class {
interrupt() { interrupt() {
this.interruptedTime_ = performance.now(); this.interruptedTime_ = performance.now();
} }
}; }
/** @const */
cca.perf.PerfEvent = PerfEvent;
/** @const */
cca.perf.PerfLogger = PerfLogger;
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<script src="../js/mojo/camera_app_helper.mojom-lite.js"></script> <script src="../js/mojo/camera_app_helper.mojom-lite.js"></script>
<script type="module" src="../js/mojo/chrome_helper.js"></script> <script type="module" src="../js/mojo/chrome_helper.js"></script>
<script type="module" src="../js/type.js"></script> <script type="module" src="../js/type.js"></script>
<script defer src="../js/perf.js"></script> <script type="module" src="../js/perf.js"></script>
<script defer src="../js/intent.js"></script> <script defer src="../js/intent.js"></script>
<script defer src="../js/background_ops.js"></script> <script defer src="../js/background_ops.js"></script>
<script defer src="../js/background.js"></script> <script defer src="../js/background.js"></script>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<script type="module" src="../js/browser_proxy/browser_proxy.js"></script> <script type="module" src="../js/browser_proxy/browser_proxy.js"></script>
<script src="../js/google-analytics-bundle.js"></script> <script src="../js/google-analytics-bundle.js"></script>
<script type="module" src="../js/type.js"></script> <script type="module" src="../js/type.js"></script>
<script defer src="../js/perf.js"></script> <script type="module" src="../js/perf.js"></script>
<script defer src="../js/metrics.js"></script> <script defer src="../js/metrics.js"></script>
<script defer src="../js/intent.js"></script> <script defer src="../js/intent.js"></script>
<script type="module" src="../js/util.js"></script> <script type="module" src="../js/util.js"></script>
......
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