From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- devtools/server/actors/profiler.js | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 devtools/server/actors/profiler.js (limited to 'devtools/server/actors/profiler.js') diff --git a/devtools/server/actors/profiler.js b/devtools/server/actors/profiler.js new file mode 100644 index 000000000..c4b594408 --- /dev/null +++ b/devtools/server/actors/profiler.js @@ -0,0 +1,60 @@ +/* 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 { Actor, ActorClassWithSpec } = require("devtools/shared/protocol"); +const { Profiler } = require("devtools/server/performance/profiler"); +const { actorBridgeWithSpec } = require("devtools/server/actors/common"); +const { profilerSpec } = require("devtools/shared/specs/profiler"); + +loader.lazyRequireGetter(this, "events", "sdk/event/core"); + +/** + * This actor wraps the Profiler module at devtools/server/performance/profiler.js + * and provides RDP definitions. + * + * @see devtools/server/performance/profiler.js for documentation. + */ +var ProfilerActor = exports.ProfilerActor = ActorClassWithSpec(profilerSpec, { + initialize: function (conn) { + Actor.prototype.initialize.call(this, conn); + this._onProfilerEvent = this._onProfilerEvent.bind(this); + + this.bridge = new Profiler(); + events.on(this.bridge, "*", this._onProfilerEvent); + }, + + /** + * `disconnect` method required to call destroy, since this + * actor is not managed by a parent actor. + */ + disconnect: function () { + this.destroy(); + }, + + destroy: function () { + events.off(this.bridge, "*", this._onProfilerEvent); + this.bridge.destroy(); + Actor.prototype.destroy.call(this); + }, + + startProfiler: actorBridgeWithSpec("start"), + stopProfiler: actorBridgeWithSpec("stop"), + getProfile: actorBridgeWithSpec("getProfile"), + getFeatures: actorBridgeWithSpec("getFeatures"), + getBufferInfo: actorBridgeWithSpec("getBufferInfo"), + getStartOptions: actorBridgeWithSpec("getStartOptions"), + isActive: actorBridgeWithSpec("isActive"), + getSharedLibraryInformation: actorBridgeWithSpec("getSharedLibraryInformation"), + registerEventNotifications: actorBridgeWithSpec("registerEventNotifications"), + unregisterEventNotifications: actorBridgeWithSpec("unregisterEventNotifications"), + setProfilerStatusInterval: actorBridgeWithSpec("setProfilerStatusInterval"), + + /** + * Pipe events from Profiler module to this actor. + */ + _onProfilerEvent: function (eventName, ...data) { + events.emit(this, eventName, ...data); + }, +}); -- cgit v1.2.3