mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
This is no longer used. The returned promise should be used instead. There was also some old lefovers in WebConsole Front related to network events. As we no longer have legacy listeners, this is no longer used. The frontend code now uses DevToolsClient.request directly to query the NetworkEventActor's. Differential Revision: https://phabricator.services.mozilla.com/D180980
112 lines
3.0 KiB
JavaScript
112 lines
3.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";
|
|
|
|
const {
|
|
FrontClassWithSpec,
|
|
registerFront,
|
|
} = require("resource://devtools/shared/protocol.js");
|
|
const {
|
|
webconsoleSpec,
|
|
} = require("resource://devtools/shared/specs/webconsole.js");
|
|
const {
|
|
getAdHocFrontOrPrimitiveGrip,
|
|
} = require("resource://devtools/client/fronts/object.js");
|
|
|
|
/**
|
|
* A WebConsoleFront is used as a front end for the WebConsoleActor that is
|
|
* created on the server, hiding implementation details.
|
|
*
|
|
* @param object client
|
|
* The DevToolsClient instance we live for.
|
|
*/
|
|
class WebConsoleFront extends FrontClassWithSpec(webconsoleSpec) {
|
|
constructor(client, targetFront, parentFront) {
|
|
super(client, targetFront, parentFront);
|
|
this._client = client;
|
|
this.events = [];
|
|
|
|
// Attribute name from which to retrieve the actorID out of the target actor's form
|
|
this.formAttributeName = "consoleActor";
|
|
|
|
this.before("consoleAPICall", this.beforeConsoleAPICall);
|
|
this.before("pageError", this.beforePageError);
|
|
}
|
|
|
|
get actor() {
|
|
return this.actorID;
|
|
}
|
|
|
|
beforeConsoleAPICall(packet) {
|
|
if (packet.message && Array.isArray(packet.message.arguments)) {
|
|
// We might need to create fronts for each of the message arguments.
|
|
packet.message.arguments = packet.message.arguments.map(arg =>
|
|
getAdHocFrontOrPrimitiveGrip(arg, this)
|
|
);
|
|
}
|
|
return packet;
|
|
}
|
|
|
|
beforePageError(packet) {
|
|
if (packet?.pageError?.errorMessage) {
|
|
packet.pageError.errorMessage = getAdHocFrontOrPrimitiveGrip(
|
|
packet.pageError.errorMessage,
|
|
this
|
|
);
|
|
}
|
|
|
|
if (packet?.pageError?.exception) {
|
|
packet.pageError.exception = getAdHocFrontOrPrimitiveGrip(
|
|
packet.pageError.exception,
|
|
this
|
|
);
|
|
}
|
|
return packet;
|
|
}
|
|
|
|
async getCachedMessages(messageTypes) {
|
|
const response = await super.getCachedMessages(messageTypes);
|
|
if (Array.isArray(response.messages)) {
|
|
response.messages = response.messages.map(packet => {
|
|
if (Array.isArray(packet?.message?.arguments)) {
|
|
// We might need to create fronts for each of the message arguments.
|
|
packet.message.arguments = packet.message.arguments.map(arg =>
|
|
getAdHocFrontOrPrimitiveGrip(arg, this)
|
|
);
|
|
}
|
|
|
|
if (packet.pageError?.exception) {
|
|
packet.pageError.exception = getAdHocFrontOrPrimitiveGrip(
|
|
packet.pageError.exception,
|
|
this
|
|
);
|
|
}
|
|
|
|
return packet;
|
|
});
|
|
}
|
|
return response;
|
|
}
|
|
|
|
/**
|
|
* Close the WebConsoleFront.
|
|
*
|
|
*/
|
|
destroy() {
|
|
if (!this._client) {
|
|
return null;
|
|
}
|
|
|
|
// This will make future calls to this function harmless because of the early return
|
|
// at the top of the function.
|
|
this._client = null;
|
|
|
|
return super.destroy();
|
|
}
|
|
}
|
|
|
|
exports.WebConsoleFront = WebConsoleFront;
|
|
registerFront(WebConsoleFront);
|