Source code

Revision control

Copy as Markdown

Other Tools

/* 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/. */
// This file is loaded into the browser window scope.
/* eslint-env mozilla/browser-window */
/**
* Global browser interface with graphics utilities.
*/
var gGfxUtils = {
_isRecording: false,
_isTransactionLogging: false,
_isCapturingFrames: false,
init() {
if (Services.prefs.getBoolPref("gfx.webrender.debug.enable-capture")) {
document.getElementById("wrCaptureCmd").removeAttribute("disabled");
document
.getElementById("wrToggleCaptureSequenceCmd")
.removeAttribute("disabled");
}
},
/**
* Toggle composition recording for the current window.
*/
toggleWindowRecording() {
window.windowUtils.setCompositionRecording(!this._isRecording);
this._isRecording = !this._isRecording;
},
/**
* Trigger a WebRender capture of the current state into a local folder.
*/
webrenderCapture() {
window.windowUtils.wrCapture();
},
captureSequencePath: "wr-capture-sequence",
captureSequenceFlags:
window.windowUtils.WR_CAPTURE_SCENE |
window.windowUtils.WR_CAPTURE_EXTERNALS,
/**
* Trigger a WebRender capture of the current state and future state
* into a local folder. If called again, it will stop capturing.
*/
toggleWebrenderCaptureSequence() {
this._isCapturingFrames = !this._isCapturingFrames;
if (this._isCapturingFrames) {
window.windowUtils.wrStartCaptureSequence(
this.captureSequencePath,
this.captureSequenceFlags
);
} else {
window.windowUtils.wrStopCaptureSequence();
}
},
};