Bug 1278405 - Decouple the DirectorRegistryFront from the DirectorRegistryActor; r=ejpbruel

This commit is contained in:
Nick Fitzgerald 2016-06-07 07:53:22 -07:00
parent cb37130245
commit 6d367104ff
6 changed files with 76 additions and 47 deletions

View File

@ -7,10 +7,11 @@
"use strict";
const protocol = require("devtools/shared/protocol");
const { method, Arg, Option, RetVal } = protocol;
const {DebuggerServer} = require("devtools/server/main");
const {directorRegistrySpec} = require("devtools/shared/specs/director-registry");
/**
* Error Messages
*/
@ -199,9 +200,7 @@ function setupChildProcess() {
* The DirectorRegistry Actor is a global actor which manages install/uninstall of
* director scripts definitions.
*/
const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClass({
typeName: "director-registry",
const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClassWithSpec(directorRegistrySpec, {
/* init & destroy methods */
initialize: function (conn, parentActor) {
protocol.Actor.prototype.initialize.call(this, conn);
@ -211,11 +210,9 @@ const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClas
this.finalize();
},
finalize: method(function () {
finalize: function () {
// nothing to cleanup
}, {
oneway: true
}),
},
/**
* Install a new director-script definition.
@ -227,7 +224,7 @@ const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClas
* @param Object scriptOptions
* The director-script option object.
*/
install: method(function (id, { scriptCode, scriptOptions }) {
install: function (id, { scriptCode, scriptOptions }) {
// TODO: add more checks on id format?
if (!id || id.length === 0) {
throw Error("director-script id is mandatory");
@ -242,16 +239,7 @@ const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClas
scriptCode: scriptCode,
scriptOptions: scriptOptions
});
}, {
request: {
scriptId: Arg(0, "string"),
scriptCode: Option(1, "string"),
scriptOptions: Option(1, "nullable:json")
},
response: {
success: RetVal("boolean")
}
}),
},
/**
* Uninstall a director-script definition.
@ -259,37 +247,14 @@ const DirectorRegistryActor = exports.DirectorRegistryActor = protocol.ActorClas
* @param String id
* The identifier of the director-script definition to be removed
*/
uninstall: method(function (id) {
uninstall: function (id) {
return DirectorRegistry.uninstall(id);
}, {
request: {
scritpId: Arg(0, "string")
},
response: {
success: RetVal("boolean")
}
}),
},
/**
* Retrieves the list of installed director-scripts.
*/
list: method(function () {
list: function () {
return DirectorRegistry.list();
}, {
response: {
directorScripts: RetVal("array:string")
}
})
});
/**
* The corresponding Front object for the DirectorRegistryActor.
*/
exports.DirectorRegistryFront = protocol.FrontClass(DirectorRegistryActor, {
initialize: function (client, { directorRegistryActor }) {
protocol.Front.prototype.initialize.call(this, client, {
actor: directorRegistryActor
});
this.manage(this);
}
});

View File

@ -13,8 +13,8 @@ SimpleTest.registerCleanupFunction(function () {
Services.prefs.clearUserPref("dom.mozBrowserFramesEnabled");
});
const { DirectorRegistry,
DirectorRegistryFront } = require("devtools/server/actors/director-registry");
const { DirectorRegistry } = require("devtools/server/actors/director-registry");
const { DirectorRegistryFront } = require("devtools/shared/fronts/director-registry");
const { DirectorManagerFront } = require("devtools/shared/fronts/director-manager");

View File

@ -0,0 +1,21 @@
/* 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 {directorRegistrySpec} = require("devtools/shared/specs/director-registry");
const protocol = require("devtools/shared/protocol");
/**
* The corresponding Front object for the DirectorRegistryActor.
*/
const DirectorRegistryFront = protocol.FrontClassWithSpec(directorRegistrySpec, {
initialize: function (client, { directorRegistryActor }) {
protocol.Front.prototype.initialize.call(this, client, {
actor: directorRegistryActor
});
this.manage(this);
}
});
exports.DirectorRegistryFront = DirectorRegistryFront;

View File

@ -14,6 +14,7 @@ DevToolsModules(
'csscoverage.js',
'device.js',
'director-manager.js',
'director-registry.js',
'highlighters.js',
'inspector.js',
'preference.js',

View File

@ -0,0 +1,41 @@
/* 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 {Arg, Option, RetVal, generateActorSpec} = require("devtools/shared/protocol");
const directorRegistrySpec = generateActorSpec({
typeName: "director-registry",
methods: {
finalize: {
oneway: true
},
install: {
request: {
scriptId: Arg(0, "string"),
scriptCode: Option(1, "string"),
scriptOptions: Option(1, "nullable:json")
},
response: {
success: RetVal("boolean")
}
},
uninstall: {
request: {
scritpId: Arg(0, "string")
},
response: {
success: RetVal("boolean")
}
},
list: {
response: {
directorScripts: RetVal("array:string")
}
},
},
});
exports.directorRegistrySpec = directorRegistrySpec;

View File

@ -15,6 +15,7 @@ DevToolsModules(
'csscoverage.js',
'device.js',
'director-manager.js',
'director-registry.js',
'environment.js',
'frame.js',
'heap-snapshot-file.js',