gecko-dev/devtools/shared/fronts/root.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

284 строки
9.8 KiB
JavaScript
Исходник Обычный вид История

Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
/* 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 {Ci} = require("chrome");
const {rootSpec} = require("devtools/shared/specs/root");
const { FrontClassWithSpec, registerFront } = require("devtools/shared/protocol");
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
loader.lazyRequireGetter(this, "getFront", "devtools/shared/protocol", true);
loader.lazyRequireGetter(this, "BrowsingContextTargetFront", "devtools/shared/fronts/targets/browsing-context", true);
loader.lazyRequireGetter(this, "ContentProcessTargetFront", "devtools/shared/fronts/targets/content-process", true);
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
class RootFront extends FrontClassWithSpec(rootSpec) {
constructor(client, form) {
super(client);
// Root Front is a special Front. It is the only one to set its actor ID manually
// out of the form object returned by RootActor.sayHello which is called when calling
// DebuggerClient.connect().
this.actorID = form.from;
this.applicationType = form.applicationType;
this.traits = form.traits;
// Cache root form as this will always be the same value.
Object.defineProperty(this, "rootForm", {
get() {
delete this.rootForm;
this.rootForm = this.getRoot();
return this.rootForm;
},
configurable: true,
});
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
// Cache of already created global scoped fronts
// [typeName:string => Front instance]
this.fronts = new Map();
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
this._client = client;
}
/**
* Retrieve all service worker registrations as well as workers from the parent and
* content processes. Listing service workers involves merging information coming from
* registrations and workers, this method will combine this information to present a
* unified array of serviceWorkers. If you are only interested in other workers, use
* listWorkers.
*
* @return {Object}
* - {Array} service
* array of form-like objects for serviceworkers
* - {Array} shared
Bug 1172897 - Rename WorkerActor to WorkerTargetActor. r=ochameau MozReview-Commit-ID: 2Qakr1PHKNZ --HG-- rename : devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attach.js => devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js rename : devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attachThread.js => devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attachThread.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker1.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker1.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker2.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker2.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attachThread-worker.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attachThread-worker.js rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab1.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab1.html rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab2.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab2.html rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attachThread-tab.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attachThread-tab.html rename : devtools/server/actors/worker.js => devtools/server/actors/targets/worker.js rename : devtools/shared/specs/worker/worker.js => devtools/shared/specs/targets/worker.js extra : rebase_source : cc94b13a2e50db862bad9d7c518619052cc6e5b4
2018-06-01 23:59:24 +03:00
* Array of WorkerTargetActor forms, containing shared workers.
* - {Array} other
Bug 1172897 - Rename WorkerActor to WorkerTargetActor. r=ochameau MozReview-Commit-ID: 2Qakr1PHKNZ --HG-- rename : devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attach.js => devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js rename : devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attachThread.js => devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attachThread.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker1.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker1.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker2.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker2.js rename : devtools/client/debugger/test/mochitest/code_WorkerActor.attachThread-worker.js => devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attachThread-worker.js rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab1.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab1.html rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab2.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab2.html rename : devtools/client/debugger/test/mochitest/doc_WorkerActor.attachThread-tab.html => devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attachThread-tab.html rename : devtools/server/actors/worker.js => devtools/server/actors/targets/worker.js rename : devtools/shared/specs/worker/worker.js => devtools/shared/specs/targets/worker.js extra : rebase_source : cc94b13a2e50db862bad9d7c518619052cc6e5b4
2018-06-01 23:59:24 +03:00
* Array of WorkerTargetActor forms, containing other workers.
*/
async listAllWorkers() {
let registrations = [];
let workers = [];
try {
// List service worker registrations
({ registrations } = await this.listServiceWorkerRegistrations());
// List workers from the Parent process
({ workers } = await this.listWorkers());
// And then from the Child processes
const { processes } = await this.listProcesses();
for (const process of processes) {
// Ignore parent process
if (process.parent) {
continue;
}
const front = await this.getProcess(process.id);
const response = await front.listWorkers();
workers = workers.concat(response.workers);
}
} catch (e) {
// Something went wrong, maybe our client is disconnected?
}
const result = {
service: [],
shared: [],
other: [],
};
registrations.forEach(front => {
// All the information is simply mirrored from the registration front.
// However since registering workers will fetch similar information from the worker
// target front and will not have a service worker registration front, consumers
// should not read meta data directly on the registration front instance.
result.service.push({
active: front.active,
fetch: front.fetch,
lastUpdateTime: front.lastUpdateTime,
name: front.url,
registrationFront: front,
scope: front.scope,
url: front.url,
});
});
workers.forEach(front => {
const worker = {
name: front.url,
url: front.url,
workerTargetFront: front,
};
switch (front.type) {
case Ci.nsIWorkerDebugger.TYPE_SERVICE:
const registration = result.service.find(r => r.scope === front.scope);
if (registration) {
// XXX: Race, sometimes a ServiceWorkerRegistrationInfo doesn't
// have a scriptSpec, but its associated WorkerDebugger does.
if (!registration.url) {
registration.name = registration.url = front.url;
}
registration.workerTargetFront = front;
} else {
worker.fetch = front.fetch;
// If a service worker registration could not be found, this means we are in
// e10s, and registrations are not forwarded to other processes until they
// reach the activated state. Augment the worker as a registration worker to
// display it in aboutdebugging.
worker.scope = front.scope;
worker.active = false;
result.service.push(worker);
}
break;
case Ci.nsIWorkerDebugger.TYPE_SHARED:
result.shared.push(worker);
break;
default:
result.other.push(worker);
}
});
return result;
}
/**
* Fetch the ParentProcessTargetActor for the main process.
*
* `getProcess` requests allows to fetch the target actor for any process
* and the main process is having the process ID zero.
*/
getMainProcess() {
return this.getProcess(0);
}
async getProcess(id) {
// Do not use specification automatic marshalling as getProcess may return
// two different type: ParentProcessTargetActor or ContentProcessTargetActor.
// Also, we do want to memoize the fronts and return already existing ones.
const { form } = await super.getProcess(id);
let front = this.actor(form.actor);
if (front) {
return front;
}
// getProcess may return a ContentProcessTargetActor or a ParentProcessTargetActor
// In most cases getProcess(0) will return the main process target actor,
// which is a ParentProcessTargetActor, but not in xpcshell, which uses a
// ContentProcessTargetActor. So select the right front based on the actor ID.
if (form.actor.includes("contentProcessTarget")) {
front = new ContentProcessTargetFront(this._client);
} else {
// ParentProcessTargetActor doesn't have a specific front, instead it uses
// BrowsingContextTargetFront on the client side.
front = new BrowsingContextTargetFront(this._client);
}
// As these fronts aren't instantiated by protocol.js, we have to set their actor ID
// manually like that:
front.actorID = form.actor;
front.form(form);
this.manage(front);
return front;
}
/**
* Override default listTabs request in order to return a list of
* BrowsingContextTargetFronts while updating their selected state.
*/
async listTabs(options) {
const { selected, tabs } = await super.listTabs(options);
for (const i in tabs) {
tabs[i].setIsSelected(i == selected);
}
return tabs;
}
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
/**
* Fetch the target actor for the currently selected tab, or for a specific
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
* tab given as first parameter.
*
* @param [optional] object filter
* A dictionary object with following optional attributes:
* - outerWindowID: used to match tabs in parent process
* - tabId: used to match tabs in child processes
* - tab: a reference to xul:tab element
* If nothing is specified, returns the actor for the currently
* selected tab.
*/
async getTab(filter) {
const packet = {};
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
if (filter) {
if (typeof (filter.outerWindowID) == "number") {
packet.outerWindowID = filter.outerWindowID;
} else if (typeof (filter.tabId) == "number") {
packet.tabId = filter.tabId;
} else if ("tab" in filter) {
const browser = filter.tab.linkedBrowser;
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
if (browser.frameLoader.tabParent) {
// Tabs in child process
packet.tabId = browser.frameLoader.tabParent.tabId;
} else if (browser.outerWindowID) {
// <xul:browser> tabs in parent process
packet.outerWindowID = browser.outerWindowID;
} else {
// <iframe mozbrowser> tabs in parent process
const windowUtils = browser.contentWindow.windowUtils;
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
packet.outerWindowID = windowUtils.outerWindowID;
}
} else {
// Throw if a filter object have been passed but without
// any clearly idenfified filter.
throw new Error("Unsupported argument given to getTab request");
}
}
return super.getTab(packet);
}
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
/**
* Fetch the target front for a given add-on.
* This is just an helper on top of `listAddons` request.
*
* @param object filter
* A dictionary object with following attribute:
* - id: used to match the add-on to connect to.
*/
async getAddon({ id }) {
const addons = await this.listAddons();
const addonTargetFront = addons.find(addon => addon.id === id);
return addonTargetFront;
}
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
/**
* Test request that returns the object passed as first argument.
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
*
* `echo` is special as all the property of the given object have to be passed
* on the packet object. That's not something that can be achieve by requester helper.
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
*/
echo(packet) {
packet.type = "echo";
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
return this.request(packet);
}
Bug 1403895 - split main.js in mulitple files; r=ochameau. This patch keeps the main.js file so we don't have to change consumer code that uses objects fom this file. MozReview-Commit-ID: KhFoPPApE2L --HG-- rename : devtools/shared/client/main.js => devtools/shared/client/addon-client.js rename : devtools/shared/client/main.js => devtools/shared/client/array-buffer-client.js rename : devtools/shared/client/main.js => devtools/shared/client/breakpoint-client.js rename : devtools/shared/client/main.js => devtools/shared/client/constants.js rename : devtools/shared/client/main.js => devtools/shared/client/debugger-client.js rename : devtools/shared/client/main.js => devtools/shared/client/environment-client.js rename : devtools/shared/client/main.js => devtools/shared/client/event-source.js rename : devtools/shared/client/main.js => devtools/shared/client/long-string-client.js rename : devtools/shared/client/main.js => devtools/shared/client/object-client.js rename : devtools/shared/client/main.js => devtools/shared/client/property-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/root-client.js rename : devtools/shared/client/main.js => devtools/shared/client/source-client.js rename : devtools/shared/client/main.js => devtools/shared/client/symbol-iterator-client.js rename : devtools/shared/client/main.js => devtools/shared/client/tab-client.js rename : devtools/shared/client/main.js => devtools/shared/client/thread-client.js rename : devtools/shared/client/main.js => devtools/shared/client/trace-client.js rename : devtools/shared/client/main.js => devtools/shared/client/worker-client.js extra : rebase_source : e5f6978cb3e543af7073e234320af1f3afde356d
2017-09-28 18:29:55 +03:00
/*
* This function returns a protocol.js Front for any root actor.
* i.e. the one directly served from RootActor.listTabs or getRoot.
*
* @param String typeName
* The type name used in protocol.js's spec for this actor.
*/
async getFront(typeName) {
let front = this.fronts.get(typeName);
if (front) {
return front;
}
const rootForm = await this.rootForm;
front = getFront(this._client, typeName, rootForm);
this.fronts.set(typeName, front);
return front;
}
}
exports.RootFront = RootFront;
registerFront(RootFront);