summaryrefslogtreecommitdiffstats
path: root/testing/performance/perftest_android_view.js
blob: 50e4dce85ea0bb4b2f171fad6f3fd1f85b0bed59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
/* eslint-env node */
"use strict";

async function test(context, commands) {
  await commands.measure.start();
  await commands.measure.browser.wait(commands.measure.pageCompleteCheck);
  await commands.measure.stop();

  const browserScripts = commands.measure.result[0].browserScripts;

  const processLaunchToNavStart =
    browserScripts.pageinfo.navigationStartTime -
    browserScripts.browser.processStartTime;

  browserScripts.pageinfo.processLaunchToNavStart = processLaunchToNavStart;
  console.log("processLaunchToNavStart: " + processLaunchToNavStart);

  return true;
}

module.exports = {
  test,
  owner: "Performance Team",
  name: "VIEW",
  description: "Measures cold process view time",
  longDescription: `
  This test launches the appropriate android app, simulating a opening a link through VIEW intent
  workflow. The application is launched with the intent action
  android.intent.action.VIEW loading a trivially simple website. The reported
  metric is the time from process start to navigationStart, reported as processLaunchToNavStart
  `,
  usage: `
  ./mach perftest testing/performance/perftest_android_view.js \
    --android-install-apk ~/fenix.v2.fennec-nightly.2020.04.22-arm32.apk \
    --hooks testing/performance/hooks_android_view.py \
    --android-app-name org.mozilla.fenix \
    --perfherder-metrics processLaunchToNavStart
  `,
  supportedBrowsers: ["Fenix nightly", "Geckoview_example", "Fennec"],
  supportedPlatforms: ["Android"],
};