Bug 1510620 - Remove browser_dbg_addon-console.js;r=rpl

Depends on D13257
I think webextensions + console is already thoroughly tested in
devtools/client/aboutdebugging/test/browser_addons_debug_webextension_*.js

Luca, are there features that we might be missing after removing this?

Differential Revision: https://phabricator.services.mozilla.com/D13258

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Julian Descottes 2018-11-30 09:17:25 +00:00
parent 1e3fd282f3
commit 75755af410
3 changed files with 0 additions and 156 deletions

View File

@ -3,7 +3,6 @@ tags = devtools
subsuite = devtools
support-files =
addons/*
addon4.xpi
browser_devices.json
code_listworkers-worker1.js
code_listworkers-worker2.js
@ -75,10 +74,6 @@ support-files =
[browser_cubic-bezier-05.js]
[browser_cubic-bezier-06.js]
[browser_cubic-bezier-07.js]
[browser_dbg_addon-console.js]
# To be removed or updated in bug 1497264
# previously was: (e10s && debug || os == 'win' || verify)
skip-if = true
tags = addons
[browser_dbg_debugger-statement.js]
skip-if = e10s && debug

View File

@ -1,151 +0,0 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/* import-globals-from helper_addons.js */
Services.scriptloader.loadSubScript(
"chrome://mochitests/content/browser/devtools/client/shared/test/helper_addons.js",
this);
var { DebuggerServer } = require("devtools/server/main");
var { DebuggerClient } = require("devtools/shared/client/debugger-client");
var { Toolbox } = require("devtools/client/framework/toolbox");
var { Task } = require("devtools/shared/task");
// Test that the we can see console messages from the add-on
const ADDON_ID = "browser_dbg_addon4@tests.mozilla.org";
const ADDON_PATH = "addon4.xpi";
function getCachedMessages(webConsole) {
const deferred = getDeferredPromise().defer();
webConsole.getCachedMessages(["ConsoleAPI"], response => {
if (response.error) {
deferred.reject(response.error);
return;
}
deferred.resolve(response.messages);
});
return deferred.promise;
}
// Creates an add-on debugger for a given add-on. The returned AddonDebugger
// object must be destroyed before finishing the test
function initAddonDebugger(addonId) {
const addonDebugger = new AddonDebugger();
return addonDebugger.init(addonId).then(() => addonDebugger);
}
function AddonDebugger() {
this._onMessage = this._onMessage.bind(this);
this._onConsoleAPICall = this._onConsoleAPICall.bind(this);
EventEmitter.decorate(this);
}
AddonDebugger.prototype = {
init: Task.async(function* (addonId) {
info("Initializing an addon debugger panel.");
DebuggerServer.init();
DebuggerServer.registerAllActors();
DebuggerServer.allowChromeProcess = true;
this.frame = document.createElement("iframe");
this.frame.setAttribute("height", 400);
document.documentElement.appendChild(this.frame);
window.addEventListener("message", this._onMessage);
const transport = DebuggerServer.connectPipe();
this.client = new DebuggerClient(transport);
yield this.client.connect();
const addonTargetFront = yield this.client.mainRoot.getAddon({ id: addonId });
const targetOptions = {
activeTab: addonTargetFront,
client: this.client,
chrome: true,
};
const toolboxOptions = {
customIframe: this.frame,
};
this.target = yield TargetFactory.forRemoteTab(targetOptions);
const toolbox = yield gDevTools.showToolbox(
this.target, "jsdebugger", Toolbox.HostType.CUSTOM, toolboxOptions);
info("Addon debugger panel shown successfully.");
this.debuggerPanel = toolbox.getCurrentPanel();
yield this._attachConsole();
}),
destroy: Task.async(function* () {
yield this.client.close();
this.frame.remove();
window.removeEventListener("message", this._onMessage);
}),
_attachConsole: function() {
const deferred = getDeferredPromise().defer();
this.client.attachConsole(this.target.form.consoleActor, ["ConsoleAPI"])
.then(([aResponse, aWebConsoleClient]) => {
this.webConsole = aWebConsoleClient;
this.client.addListener("consoleAPICall", this._onConsoleAPICall);
deferred.resolve();
}, e => {
deferred.reject(e);
});
return deferred.promise;
},
_onConsoleAPICall: function(type, packet) {
if (packet.from != this.webConsole.actor) {
return;
}
this.emit("console", packet.message);
},
_onMessage: function(event) {
if (!event.data) {
return;
}
const msg = event.data;
switch (msg.name) {
case "toolbox-title":
this.title = msg.data.value;
break;
}
},
};
add_task(async function test() {
const addon = await addTemporaryAddon(ADDON_PATH);
const addonDebugger = await initAddonDebugger(ADDON_ID);
const webConsole = addonDebugger.webConsole;
const messages = await getCachedMessages(webConsole);
is(messages.length, 1, "Should be one cached message");
is(messages[0].arguments[0].type, "object", "Should have logged an object");
is(messages[0].arguments[0].preview.ownProperties.msg.value,
"Hello from the test add-on", "Should have got the right message");
const consolePromise = addonDebugger.once("console");
console.log("Bad message");
Services.obs.notifyObservers(null, "addon-test-ping");
const messageGrip = await consolePromise;
is(messageGrip.arguments[0].type, "object", "Should have logged an object");
is(messageGrip.arguments[0].preview.ownProperties.msg.value,
"Hello again", "Should have got the right message");
await addonDebugger.destroy();
await removeAddon(addon);
finish();
});