mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-10 13:23:42 +00:00
69 lines
2.0 KiB
JavaScript
69 lines
2.0 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";
|
|
|
|
loader.lazyRequireGetter(this, "promise");
|
|
loader.lazyRequireGetter(this, "EventEmitter",
|
|
"devtools/shared/event-emitter");
|
|
|
|
/**
|
|
* A dummy front decorated with the provided methods.
|
|
*
|
|
* @param array blueprint
|
|
* A list of [funcName, retVal] describing the class.
|
|
*/
|
|
function MockFront (blueprint) {
|
|
EventEmitter.decorate(this);
|
|
|
|
for (let [funcName, retVal] of blueprint) {
|
|
this[funcName] = (x => typeof x === "function" ? x() : x).bind(this, retVal);
|
|
}
|
|
}
|
|
|
|
function MockTimelineFront () {
|
|
MockFront.call(this, [
|
|
["destroy"],
|
|
["start", 0],
|
|
["stop", 0],
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Takes a TabTarget, and checks existence of a TimelineActor on
|
|
* the server, or if TEST_MOCK_TIMELINE_ACTOR is to be used.
|
|
*
|
|
* @param {TabTarget} target
|
|
* @return {Boolean}
|
|
*/
|
|
function timelineActorSupported(target) {
|
|
// This `target` property is used only in tests to test
|
|
// instances where the timeline actor is not available.
|
|
if (target.TEST_MOCK_TIMELINE_ACTOR) {
|
|
return false;
|
|
}
|
|
|
|
return target.hasActor("timeline");
|
|
}
|
|
|
|
/**
|
|
* Returns a function to be used as a method on an "Front" in ./actors.
|
|
* Calls the underlying actor's method.
|
|
*/
|
|
function callFrontMethod (method) {
|
|
return function () {
|
|
// If there's no target or client on this actor facade,
|
|
// abort silently -- this occurs in tests when polling occurs
|
|
// after the test ends, when tests do not wait for toolbox destruction
|
|
// (which will destroy the actor facade, turning off the polling).
|
|
if (!this._target || !this._target.client) {
|
|
return;
|
|
}
|
|
return this._front[method].apply(this._front, arguments);
|
|
};
|
|
}
|
|
|
|
exports.MockTimelineFront = MockTimelineFront;
|
|
exports.timelineActorSupported = timelineActorSupported;
|
|
exports.callFrontMethod = callFrontMethod;
|