|
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #include "nsISupports.idl" |
|
7 |
|
8 [scriptable, uuid(d64e01e1-603f-4478-bb9e-47d502f23f7b)] |
|
9 interface nsIProfiler : nsISupports |
|
10 { |
|
11 void StartProfiler(in uint32_t aEntries, in double aInterval, |
|
12 [array, size_is(aFeatureCount)] in string aFeatures, |
|
13 in uint32_t aFeatureCount, |
|
14 [array, size_is(aFilterCount), optional] in string aThreadNameFilters, |
|
15 [optional] in uint32_t aFilterCount); |
|
16 void StopProfiler(); |
|
17 boolean IsPaused(); |
|
18 void PauseSampling(); |
|
19 void ResumeSampling(); |
|
20 void AddMarker(in string aMarker); |
|
21 string GetProfile(); |
|
22 [implicit_jscontext] |
|
23 jsval getProfileData(); |
|
24 boolean IsActive(); |
|
25 void GetResponsivenessTimes(out uint32_t aCount, [retval, array, size_is(aCount)] out double aResult); |
|
26 void GetFeatures(out uint32_t aCount, [retval, array, size_is(aCount)] out string aFeatures); |
|
27 |
|
28 /** |
|
29 * Returns a JSON string of an array of shared library objects. |
|
30 * Every object has three properties: start, end, and name. |
|
31 * start and end are integers describing the address range that the library |
|
32 * occupies in memory. name is the path of the library as a string. |
|
33 * |
|
34 * On Windows profiling builds, the shared library objects will have |
|
35 * additional pdbSignature and pdbAge properties for uniquely identifying |
|
36 * shared library versions for stack symbolication. |
|
37 */ |
|
38 AString getSharedLibraryInformation(); |
|
39 }; |
|
40 |