зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1506546 - Change the spec type of listAddons and accomodate using the front rather than the form. r=yulia
MozReview-Commit-ID: 4MAjszUiGUZ Depends on D12573 Differential Revision: https://phabricator.services.mozilla.com/D12574 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
70a9542626
Коммит
31a22e9610
|
@ -576,14 +576,11 @@ Target.prototype = {
|
|||
// to be attached via DebuggerClient.attachTarget.
|
||||
if (this.isBrowsingContext) {
|
||||
await attachBrowsingContextTarget();
|
||||
} else if (this.isLegacyAddon) {
|
||||
const [, addonTargetFront] = await this._client.attachAddon(this.form);
|
||||
this.activeTab = addonTargetFront;
|
||||
|
||||
// Worker and Content process targets are the first target to have their front already
|
||||
// instantiated. The plan is to have all targets to have their front passed as
|
||||
// constructor argument.
|
||||
} else if (this.isWorkerTarget) {
|
||||
// Addon Worker and Content process targets are the first targets to have their
|
||||
// front already instantiated. The plan is to have all targets to have their front
|
||||
// passed as constructor argument.
|
||||
} else if (this.isWorkerTarget || this.isLegacyAddon) {
|
||||
// Worker is the first front to be completely migrated to have only its attach
|
||||
// method being called from Target.attach. Other fronts should be refactored.
|
||||
await this.activeTab.attach();
|
||||
|
|
|
@ -22,7 +22,6 @@ loader.lazyRequireGetter(this, "DebuggerSocket", "devtools/shared/security/socke
|
|||
loader.lazyRequireGetter(this, "EventEmitter", "devtools/shared/event-emitter");
|
||||
|
||||
loader.lazyRequireGetter(this, "WebConsoleClient", "devtools/shared/webconsole/client", true);
|
||||
loader.lazyRequireGetter(this, "AddonTargetFront", "devtools/shared/fronts/targets/addon", true);
|
||||
loader.lazyRequireGetter(this, "RootFront", "devtools/shared/fronts/root", true);
|
||||
loader.lazyRequireGetter(this, "BrowsingContextTargetFront", "devtools/shared/fronts/targets/browsing-context", true);
|
||||
loader.lazyRequireGetter(this, "ThreadClient", "devtools/shared/client/thread-client");
|
||||
|
@ -380,23 +379,6 @@ DebuggerClient.prototype = {
|
|||
return [response, front];
|
||||
},
|
||||
|
||||
/**
|
||||
* Attach to an addon target actor.
|
||||
*
|
||||
* @param string addonTargetActor
|
||||
* The actor ID for the addon to attach.
|
||||
*/
|
||||
attachAddon: async function(form) {
|
||||
let front = this._frontPool.actor(form.actor);
|
||||
if (!front) {
|
||||
front = new AddonTargetFront(this, form);
|
||||
this._frontPool.manage(front);
|
||||
}
|
||||
|
||||
const response = await front.attach();
|
||||
return [response, front];
|
||||
},
|
||||
|
||||
/**
|
||||
* Attach to a Web Console actor. Depending on the listeners being passed as second
|
||||
* arguments, starts listening for:
|
||||
|
|
|
@ -8,14 +8,31 @@ const protocol = require("devtools/shared/protocol");
|
|||
const {custom} = protocol;
|
||||
|
||||
const AddonTargetFront = protocol.FrontClassWithSpec(addonTargetSpec, {
|
||||
initialize: function(client, form) {
|
||||
protocol.Front.prototype.initialize.call(this, client, form);
|
||||
initialize: function(client) {
|
||||
protocol.Front.prototype.initialize.call(this, client);
|
||||
|
||||
this.client = client;
|
||||
|
||||
this.traits = {};
|
||||
},
|
||||
|
||||
form(json) {
|
||||
this.actorID = json.actor;
|
||||
|
||||
// Save the full form for Target class usage.
|
||||
// Do not use `form` name to avoid colliding with protocol.js's `form` method
|
||||
this.targetForm = json;
|
||||
|
||||
// We used to manipulate the form rather than the front itself.
|
||||
// Expose all form attributes to ease accessing them.
|
||||
for (const name in json) {
|
||||
if (name == "actor") {
|
||||
continue;
|
||||
}
|
||||
this[name] = json[name];
|
||||
}
|
||||
},
|
||||
|
||||
attach: custom(async function() {
|
||||
const response = await this._attach();
|
||||
|
||||
|
|
|
@ -239,6 +239,11 @@ const Types = exports.__TypesForTests = [
|
|||
spec: "devtools/shared/specs/symbol-iterator",
|
||||
front: null,
|
||||
},
|
||||
{
|
||||
types: ["addonTarget"],
|
||||
spec: "devtools/shared/specs/targets/addon",
|
||||
front: "devtools/shared/fronts/targets/addon",
|
||||
},
|
||||
{
|
||||
types: ["browsingContextTarget"],
|
||||
spec: "devtools/shared/specs/targets/browsing-context",
|
||||
|
|
|
@ -11,9 +11,6 @@ types.addDictType("root.getTab", {
|
|||
types.addDictType("root.getWindow", {
|
||||
window: "json",
|
||||
});
|
||||
types.addDictType("root.listAddons", {
|
||||
addons: "array:json",
|
||||
});
|
||||
types.addDictType("root.listWorkers", {
|
||||
workers: "array:workerTarget",
|
||||
});
|
||||
|
@ -57,7 +54,9 @@ const rootSpecPrototype = {
|
|||
|
||||
listAddons: {
|
||||
request: {},
|
||||
response: RetVal("root.listAddons"),
|
||||
response: {
|
||||
addons: RetVal("array:addonTarget"),
|
||||
},
|
||||
},
|
||||
|
||||
listWorkers: {
|
||||
|
|
Загрузка…
Ссылка в новой задаче