In a following patch, all DevTools moz.build files will use DevToolsModules to install JS modules at a path that corresponds directly to their source tree location. Here we rewrite all require and import calls to match the new location that these files are installed to.
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;
|