gecko-dev/devtools/shared/specs/perf.js
Makoto Kato 344ae3712c Bug 1444796 - Part 1. Add options to startProfiler to customize profiler parameter from remote. r=gregtatum
New remote profiler protocol uses perfActor, but startProfiler doesn't support
parameters such as interval, So perfActor should support parameters for
startProfiler.

nsIProfiler emit profiler-started event with parameters, but perfActor doesn't
set the parameter yet.  For unit test, we should set parameter on
profiler-started event.

MozReview-Commit-ID: 3QiNunLyhnf

--HG--
extra : rebase_source : 836f67d2f161816c9947a47a18f912dad77728bf
2018-03-14 15:05:48 +09:00

75 lines
1.7 KiB
JavaScript

/* 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/. */
"use strict";
const { Arg, Option, RetVal, generateActorSpec } = require("devtools/shared/protocol");
const perfDescription = {
typeName: "perf",
events: {
"profiler-started": {
type: "profiler-started",
entries: Arg(0, "number"),
interval: Arg(1, "number"),
features: Arg(2, "number"),
},
"profiler-stopped": {
type: "profiler-stopped"
},
"profile-locked-by-private-browsing": {
type: "profile-locked-by-private-browsing"
},
"profile-unlocked-from-private-browsing": {
type: "profile-unlocked-from-private-browsing"
}
},
methods: {
startProfiler: {
request: {
entries: Option(0, "number"),
interval: Option(0, "number"),
features: Option(0, "array:string"),
threads: Option(0, "array:string"),
},
response: { value: RetVal("boolean") }
},
/**
* Returns null when unable to return the profile.
*/
getProfileAndStopProfiler: {
request: {},
response: RetVal("nullable:json")
},
stopProfilerAndDiscardProfile: {
request: {},
response: {}
},
isActive: {
request: {},
response: { value: RetVal("boolean") }
},
isSupportedPlatform: {
request: {},
response: { value: RetVal("boolean") }
},
isLockedForPrivateBrowsing: {
request: {},
response: { value: RetVal("boolean") }
}
}
};
exports.perfDescription = perfDescription;
const perfSpec = generateActorSpec(perfDescription);
exports.perfSpec = perfSpec;