mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-02-02 07:30:08 +00:00
98 lines
3.5 KiB
JavaScript
98 lines
3.5 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";
|
|
|
|
/**
|
|
* A mixin to be used for PerformanceRecordingActor, PerformanceRecordingFront,
|
|
* and LegacyPerformanceRecording for helper methods to access data.
|
|
*/
|
|
|
|
const PerformanceRecordingCommon = exports.PerformanceRecordingCommon = {
|
|
// Private fields, only needed when a recording is started or stopped.
|
|
_console: false,
|
|
_imported: false,
|
|
_recording: false,
|
|
_completed: false,
|
|
_configuration: {},
|
|
_startingBufferStatus: null,
|
|
_localStartTime: 0,
|
|
|
|
// Serializable fields, necessary and sufficient for import and export.
|
|
_label: "",
|
|
_duration: 0,
|
|
_markers: null,
|
|
_frames: null,
|
|
_memory: null,
|
|
_ticks: null,
|
|
_allocations: null,
|
|
_profile: null,
|
|
_systemHost: null,
|
|
_systemClient: null,
|
|
|
|
/**
|
|
* Helper methods for returning the status of the recording.
|
|
* These methods should be consistent on both the front and actor.
|
|
*/
|
|
isRecording: function () { return this._recording; },
|
|
isCompleted: function () { return this._completed || this.isImported(); },
|
|
isFinalizing: function () { return !this.isRecording() && !this.isCompleted(); },
|
|
isConsole: function () { return this._console; },
|
|
isImported: function () { return this._imported; },
|
|
|
|
/**
|
|
* Helper methods for returning configuration for the recording.
|
|
* These methods should be consistent on both the front and actor.
|
|
*/
|
|
getConfiguration: function () { return this._configuration; },
|
|
getLabel: function () { return this._label; },
|
|
|
|
/**
|
|
* Gets duration of this recording, in milliseconds.
|
|
* @return number
|
|
*/
|
|
getDuration: function () {
|
|
// Compute an approximate ending time for the current recording if it is
|
|
// still in progress. This is needed to ensure that the view updates even
|
|
// when new data is not being generated. If recording is completed, use
|
|
// the duration from the profiler; if between recording and being finalized,
|
|
// use the last estimated duration.
|
|
if (this.isRecording()) {
|
|
return this._estimatedDuration = Date.now() - this._localStartTime;
|
|
} else {
|
|
return this._duration || this._estimatedDuration || 0;
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Helper methods for returning recording data.
|
|
* These methods should be consistent on both the front and actor.
|
|
*/
|
|
getMarkers: function() { return this._markers; },
|
|
getFrames: function() { return this._frames; },
|
|
getMemory: function() { return this._memory; },
|
|
getTicks: function() { return this._ticks; },
|
|
getAllocations: function() { return this._allocations; },
|
|
getProfile: function() { return this._profile; },
|
|
getHostSystemInfo: function() { return this._systemHost; },
|
|
getClientSystemInfo: function() { return this._systemClient; },
|
|
getStartingBufferStatus: function() { return this._startingBufferStatus; },
|
|
|
|
getAllData: function () {
|
|
let label = this.getLabel();
|
|
let duration = this.getDuration();
|
|
let markers = this.getMarkers();
|
|
let frames = this.getFrames();
|
|
let memory = this.getMemory();
|
|
let ticks = this.getTicks();
|
|
let allocations = this.getAllocations();
|
|
let profile = this.getProfile();
|
|
let configuration = this.getConfiguration();
|
|
let systemHost = this.getHostSystemInfo();
|
|
let systemClient = this.getClientSystemInfo();
|
|
|
|
return { label, duration, markers, frames, memory, ticks, allocations, profile, configuration, systemHost, systemClient };
|
|
},
|
|
};
|