mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 975064 - Close target when client is closed. r=past
This commit is contained in:
parent
912ca83674
commit
b2382b86d5
@ -352,6 +352,8 @@ TabTarget.prototype = {
|
||||
* Setup listeners for remote debugging, updating existing ones as necessary.
|
||||
*/
|
||||
_setupRemoteListeners: function TabTarget__setupRemoteListeners() {
|
||||
this.client.addListener("closed", this.destroy);
|
||||
|
||||
this._onTabDetached = (aType, aPacket) => {
|
||||
// We have to filter message to ensure that this detach is for this tab
|
||||
if (aPacket.from == this._form.actor) {
|
||||
@ -384,6 +386,7 @@ TabTarget.prototype = {
|
||||
* Teardown listeners for remote debugging.
|
||||
*/
|
||||
_teardownRemoteListeners: function TabTarget__teardownRemoteListeners() {
|
||||
this.client.removeListener("closed", this.destroy);
|
||||
this.client.removeListener("tabNavigated", this._onTabNavigated);
|
||||
this.client.removeListener("tabDetached", this._onTabDetached);
|
||||
},
|
||||
|
@ -10,6 +10,7 @@ support-files =
|
||||
[browser_keybindings.js]
|
||||
[browser_new_activation_workflow.js]
|
||||
[browser_target_events.js]
|
||||
[browser_target_remote.js]
|
||||
[browser_toolbox_dynamic_registration.js]
|
||||
[browser_toolbox_highlight.js]
|
||||
[browser_toolbox_hosts.js]
|
||||
|
39
browser/devtools/framework/test/browser_target_remote.js
Normal file
39
browser/devtools/framework/test/browser_target_remote.js
Normal file
@ -0,0 +1,39 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
let { DebuggerServer } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {});
|
||||
let { DebuggerClient } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-client.jsm", {});
|
||||
let { devtools } =
|
||||
Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
|
||||
// Ensure target is closed if client is closed directly
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init(function () { return true; });
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
|
||||
var client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
let options = {
|
||||
form: response,
|
||||
client: client,
|
||||
chrome: true
|
||||
};
|
||||
|
||||
devtools.TargetFactory.forRemoteTab(options).then(target => {
|
||||
target.on("close", () => {
|
||||
ok(true, "Target was closed");
|
||||
DebuggerServer.destroy();
|
||||
finish();
|
||||
});
|
||||
client.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user