Bug 1282900 - Remove RDP telemetry probes and surrounding machinery. r=fitzgen draft
authorJ. Ryan Stinnett <jryans@gmail.com>
Tue, 28 Jun 2016 15:53:07 -0500
changeset 382098 dc028cd27b58dabb6aced91cf760562be79f4655
parent 382097 492f3868e1b8dba54fac05036eae3a3a0ec0b746
child 524087 7ae64b4dd0cb89b77bcfdec97490ab7eddbdbf02
push id21611
push userbmo:jryans@gmail.com
push dateTue, 28 Jun 2016 21:13:42 +0000
reviewersfitzgen
bugs1282900
milestone50.0a1
Bug 1282900 - Remove RDP telemetry probes and surrounding machinery. r=fitzgen MozReview-Commit-ID: 58WNVGWTyKJ
devtools/server/docs/protocol.js.md
devtools/server/tests/unit/test_protocol_children.js
devtools/shared/client/main.js
devtools/shared/protocol.js
devtools/shared/specs/addons.js
toolkit/components/telemetry/Histograms.json
--- a/devtools/server/docs/protocol.js.md
+++ b/devtools/server/docs/protocol.js.md
@@ -644,29 +644,8 @@ This will require some matching work on 
         if (this._temporaryParent) {
             this._temporaryParent.destroy();
             delete this._temporaryParent;
         }
         return this._clearTemporaryChildren();
     }, {
         impl: "_clearTemporaryChildren"
     })
-
-Telemetry
----------
-
-You can specify a telemetry probe id in your method spec:
-
-    // spec:
-    methods: {
-      echo: {
-        request: { str: Arg(0) },
-        response: { str: RetVal() },
-        telemetry: "ECHO"
-      }
-    }
-
-    // implementation:
-    echo: function (str) {
-      return str;
-    }
-
-... and the time to execute that request will be included as a telemetry probe.
--- a/devtools/server/tests/unit/test_protocol_children.js
+++ b/devtools/server/tests/unit/test_protocol_children.js
@@ -52,17 +52,16 @@ const childSpec = protocol.generateActor
       detail: Arg(0, "array:childActor#detail2"),
     }
   },
 
   methods: {
     echo: {
       request: { str: Arg(0) },
       response: { str: RetVal("string") },
-      telemetry: "ECHO"
     },
     getDetail1: {
       // This also exercises return-value-as-packet.
       response: RetVal("childActor#detail1"),
     },
     getDetail2: {
       // This also exercises return-value-as-packet.
       response: RetVal("childActor#detail2"),
--- a/devtools/shared/client/main.js
+++ b/devtools/shared/client/main.js
@@ -229,44 +229,32 @@ const DebuggerClient = exports.DebuggerC
 };
 
 /**
  * A declarative helper for defining methods that send requests to the server.
  *
  * @param aPacketSkeleton
  *        The form of the packet to send. Can specify fields to be filled from
  *        the parameters by using the |args| function.
- * @param telemetry
- *        The unique suffix of the telemetry histogram id.
  * @param before
  *        The function to call before sending the packet. Is passed the packet,
  *        and the return value is used as the new packet. The |this| context is
  *        the instance of the client object we are defining a method for.
  * @param after
  *        The function to call after the response is received. It is passed the
  *        response, and the return value is considered the new response that
  *        will be passed to the callback. The |this| context is the instance of
  *        the client object we are defining a method for.
  * @return Request
  *         The `Request` object that is a Promise object and resolves once
  *         we receive the response. (See request method for more details)
  */
 DebuggerClient.requester = function (aPacketSkeleton, config = {}) {
-  let { telemetry, before, after } = config;
+  let { before, after } = config;
   return DevToolsUtils.makeInfallible(function (...args) {
-    let histogram, startTime;
-    if (telemetry) {
-      let transportType = this._transport.onOutputStreamReady === undefined
-        ? "LOCAL_"
-        : "REMOTE_";
-      let histogramId = "DEVTOOLS_DEBUGGER_RDP_"
-        + transportType + telemetry + "_MS";
-      histogram = Services.telemetry.getHistogramById(histogramId);
-      startTime = +new Date;
-    }
     let outgoingPacket = {
       to: aPacketSkeleton.to || this.actor
     };
 
     let maxPosition = -1;
     for (let k of Object.keys(aPacketSkeleton)) {
       if (aPacketSkeleton[k] instanceof DebuggerClient.Argument) {
         let { position } = aPacketSkeleton[k];
@@ -290,20 +278,16 @@ DebuggerClient.requester = function (aPa
         }
       }
 
       // The callback is always the last parameter.
       let thisCallback = args[maxPosition + 1];
       if (thisCallback) {
         thisCallback(aResponse);
       }
-
-      if (histogram) {
-        histogram.add(+new Date - startTime);
-      }
     }, "DebuggerClient.requester request callback"));
   }, "DebuggerClient.requester");
 };
 
 function args(aPos) {
   return new DebuggerClient.Argument(aPos);
 }
 
@@ -644,18 +628,16 @@ DebuggerClient.prototype = {
    *        The actor ID to send the request to.
    * @param aOnResponse function
    *        If specified, will be called with the response packet when
    *        debugging server responds.
    */
   release: DebuggerClient.requester({
     to: args(0),
     type: "release"
-  }, {
-    telemetry: "RELEASE"
   }),
 
   /**
    * Send a request to the debugging server.
    *
    * @param aRequest object
    *        A JSON packet to send to the debugging server.
    * @param aOnResponse function
@@ -1309,17 +1291,16 @@ TabClient.prototype = {
         this.thread.detach();
       }
       return aPacket;
     },
     after: function (aResponse) {
       this.client.unregisterClient(this);
       return aResponse;
     },
-    telemetry: "TABDETACH"
   }),
 
   /**
    * Bring the window to the front.
    */
   focus: DebuggerClient.requester({
     type: "focus"
   }, {}),
@@ -1332,52 +1313,44 @@ TabClient.prototype = {
    *        this reload should skip the cache
    */
   reload: function (options = { force: false }) {
     return this._reload(options);
   },
   _reload: DebuggerClient.requester({
     type: "reload",
     options: args(0)
-  }, {
-    telemetry: "RELOAD"
   }),
 
   /**
    * Navigate to another URL.
    *
    * @param string url
    *        The URL to navigate to.
    */
   navigateTo: DebuggerClient.requester({
     type: "navigateTo",
     url: args(0)
-  }, {
-    telemetry: "NAVIGATETO"
   }),
 
   /**
    * Reconfigure the tab actor.
    *
    * @param object aOptions
    *        A dictionary object of the new options to use in the tab actor.
    * @param function aOnResponse
    *        Called with the response packet.
    */
   reconfigure: DebuggerClient.requester({
     type: "reconfigure",
     options: args(0)
-  }, {
-    telemetry: "RECONFIGURETAB"
   }),
 
   listWorkers: DebuggerClient.requester({
     type: "listWorkers"
-  }, {
-    telemetry: "LISTWORKERS"
   }),
 
   attachWorker: function (aWorkerActor, aOnResponse) {
     this.client.attachWorker(aWorkerActor, aOnResponse);
   },
 
   /**
    * Resolve a location ({ url, line, column }) to its current
@@ -1432,18 +1405,16 @@ WorkerClient.prototype = {
   detach: DebuggerClient.requester({ type: "detach" }, {
     after: function (aResponse) {
       if (this.thread) {
         this.client.unregisterClient(this.thread);
       }
       this.client.unregisterClient(this);
       return aResponse;
     },
-
-    telemetry: "WORKERDETACH"
   }),
 
   attachThread: function (aOptions = {}, aOnResponse = noop) {
     if (this.thread) {
       let response = [{
         type: "connected",
         threadActor: this.thread._actor,
         consoleActor: this.consoleActor,
@@ -1525,17 +1496,16 @@ AddonClient.prototype = {
   }, {
     after: function (aResponse) {
       if (this._client.activeAddon === this) {
         this._client.activeAddon = null;
       }
       this._client.unregisterClient(this);
       return aResponse;
     },
-    telemetry: "ADDONDETACH"
   })
 };
 
 /**
  * A RootClient object represents a root actor on the server. Each
  * DebuggerClient keeps a RootClient instance representing the root actor
  * for the initial connection; DebuggerClient's 'listTabs' and
  * 'listChildProcesses' methods forward to that root actor.
@@ -1566,54 +1536,51 @@ RootClient.prototype = {
   constructor: RootClient,
 
   /**
    * List the open tabs.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  listTabs: DebuggerClient.requester({ type: "listTabs" },
-                                     { telemetry: "LISTTABS" }),
+  listTabs: DebuggerClient.requester({ type: "listTabs" }),
 
   /**
    * List the installed addons.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  listAddons: DebuggerClient.requester({ type: "listAddons" },
-                                       { telemetry: "LISTADDONS" }),
+  listAddons: DebuggerClient.requester({ type: "listAddons" }),
 
   /**
    * List the registered workers.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  listWorkers: DebuggerClient.requester({ type: "listWorkers" },
-                                        { telemetry: "LISTWORKERS" }),
+  listWorkers: DebuggerClient.requester({ type: "listWorkers" }),
 
   /**
    * List the registered service workers.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  listServiceWorkerRegistrations: DebuggerClient.requester({ type: "listServiceWorkerRegistrations" },
-                                                           { telemetry: "LISTSERVICEWORKERREGISTRATIONS" }),
+  listServiceWorkerRegistrations: DebuggerClient.requester({
+    type: "listServiceWorkerRegistrations"
+  }),
 
   /**
    * List the running processes.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  listProcesses: DebuggerClient.requester({ type: "listProcesses" },
-                                          { telemetry: "LISTPROCESSES" }),
+  listProcesses: DebuggerClient.requester({ type: "listProcesses" }),
 
   /**
    * Fetch the TabActor for the currently selected tab, or for a specific
    * tab given as first parameter.
    *
    * @param [optional] object aFilter
    *        A dictionary object with following optional attributes:
    *         - outerWindowID: used to match tabs in parent process
@@ -1659,18 +1626,17 @@ RootClient.prototype = {
   },
 
   /**
    * Description of protocol's actors and methods.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
-  protocolDescription: DebuggerClient.requester({ type: "protocolDescription" },
-                                                 { telemetry: "PROTOCOLDESCRIPTION" }),
+  protocolDescription: DebuggerClient.requester({ type: "protocolDescription" }),
 
   /*
    * Methods constructed by DebuggerClient.requester require these forwards
    * on their 'this'.
    */
   get _transport() { return this._client._transport; },
   get request() { return this._client.request; }
 };
@@ -1752,32 +1718,29 @@ ThreadClient.prototype = {
     },
     after: function (aResponse) {
       if (aResponse.error) {
         // There was an error resuming, back to paused state.
         this._state = "paused";
       }
       return aResponse;
     },
-    telemetry: "RESUME"
   }),
 
   /**
    * Reconfigure the thread actor.
    *
    * @param object aOptions
    *        A dictionary object of the new options to use in the thread actor.
    * @param function aOnResponse
    *        Called with the response packet.
    */
   reconfigure: DebuggerClient.requester({
     type: "reconfigure",
     options: args(0)
-  }, {
-    telemetry: "RECONFIGURETHREAD"
   }),
 
   /**
    * Resume a paused thread.
    */
   resume: function (aOnResponse) {
     return this._doResume(null, aOnResponse);
   },
@@ -1846,18 +1809,16 @@ ThreadClient.prototype = {
    * Interrupt a running thread.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
   _doInterrupt: DebuggerClient.requester({
     type: "interrupt",
     when: args(0)
-  }, {
-    telemetry: "INTERRUPT"
   }),
 
   /**
    * Enable or disable pausing when an exception is thrown.
    *
    * @param boolean aFlag
    *        Enables pausing if true, disables otherwise.
    * @param function aOnResponse
@@ -1942,86 +1903,76 @@ ThreadClient.prototype = {
     },
     after: function (aResponse) {
       if (aResponse.error) {
         // There was an error resuming, back to paused state.
         this._state = "paused";
       }
       return aResponse;
     },
-    telemetry: "CLIENTEVALUATE"
   }),
 
   /**
    * Detach from the thread actor.
    *
    * @param function aOnResponse
    *        Called with the response packet.
    */
   detach: DebuggerClient.requester({
     type: "detach"
   }, {
     after: function (aResponse) {
       this.client.unregisterClient(this);
       this._parent.thread = null;
       return aResponse;
     },
-    telemetry: "THREADDETACH"
   }),
 
   /**
    * Release multiple thread-lifetime object actors. If any pause-lifetime
    * actors are included in the request, a |notReleasable| error will return,
    * but all the thread-lifetime ones will have been released.
    *
    * @param array actors
    *        An array with actor IDs to release.
    */
   releaseMany: DebuggerClient.requester({
     type: "releaseMany",
     actors: args(0),
-  }, {
-    telemetry: "RELEASEMANY"
   }),
 
   /**
    * Promote multiple pause-lifetime object actors to thread-lifetime ones.
    *
    * @param array actors
    *        An array with actor IDs to promote.
    */
   threadGrips: DebuggerClient.requester({
     type: "threadGrips",
     actors: args(0)
-  }, {
-    telemetry: "THREADGRIPS"
   }),
 
   /**
    * Return the event listeners defined on the page.
    *
    * @param aOnResponse Function
    *        Called with the thread's response.
    */
   eventListeners: DebuggerClient.requester({
     type: "eventListeners"
-  }, {
-    telemetry: "EVENTLISTENERS"
   }),
 
   /**
    * Request the loaded sources for the current thread.
    *
    * @param aOnResponse Function
    *        Called with the thread's response.
    */
   getSources: DebuggerClient.requester({
     type: "sources"
-  }, {
-    telemetry: "SOURCES"
   }),
 
   /**
    * Clear the thread's source script cache. A scriptscleared event
    * will be sent.
    */
   _clearScripts: function () {
     if (Object.keys(this._scriptCache).length > 0) {
@@ -2041,18 +1992,16 @@ ThreadClient.prototype = {
    *        frames.
    * @param aOnResponse function
    *        Called with the thread's response.
    */
   getFrames: DebuggerClient.requester({
     type: "frames",
     start: args(0),
     count: args(1)
-  }, {
-    telemetry: "FRAMES"
   }),
 
   /**
    * An array of cached frames. Clients can observe the framesadded and
    * framescleared event to keep up to date on changes to this cache,
    * and can fill it using the fillFrames method.
    */
   get cachedFrames() { return this._frameCache; },
@@ -2259,18 +2208,16 @@ ThreadClient.prototype = {
    * @param aOnResponse function
    *        Called with the request's response.
    * @param actors [string]
    *        List of actor ID of the queried objects.
    */
   getPrototypesAndProperties: DebuggerClient.requester({
     type: "prototypesAndProperties",
     actors: args(0)
-  }, {
-    telemetry: "PROTOTYPESANDPROPERTIES"
   }),
 
   events: ["newSource"]
 };
 
 eventSource(ThreadClient.prototype);
 
 /**
@@ -2305,17 +2252,16 @@ TraceClient.prototype = {
    */
   detach: DebuggerClient.requester({
     type: "detach"
   }, {
     after: function (aResponse) {
       this._client.unregisterClient(this);
       return aResponse;
     },
-    telemetry: "TRACERDETACH"
   }),
 
   /**
    * Start a new trace.
    *
    * @param aTrace [string]
    *        An array of trace types to be recorded by the new trace.
    *
@@ -2338,17 +2284,16 @@ TraceClient.prototype = {
       if (!this.tracing) {
         this._waitingPackets.clear();
         this._expectedPacket = 0;
       }
       this._activeTraces.add(aResponse.name);
 
       return aResponse;
     },
-    telemetry: "STARTTRACE"
   }),
 
   /**
    * End a trace. If a name is provided, stop the named
    * trace. Otherwise, stop the most recently started trace.
    *
    * @param aName string
    *        The name of the trace to stop.
@@ -2364,17 +2309,16 @@ TraceClient.prototype = {
       if (aResponse.error) {
         return aResponse;
       }
 
       this._activeTraces.delete(aResponse.name);
 
       return aResponse;
     },
-    telemetry: "STOPTRACE"
   })
 };
 
 /**
  * Grip clients are used to retrieve information about the relevant object.
  *
  * @param aClient DebuggerClient
  *        The debugger client parent.
@@ -2428,40 +2372,35 @@ ObjectClient.prototype = {
     type: "parameterNames"
   }, {
     before: function (aPacket) {
       if (this._grip["class"] !== "Function") {
         throw new Error("getParameterNames is only valid for function grips.");
       }
       return aPacket;
     },
-    telemetry: "PARAMETERNAMES"
   }),
 
   /**
    * Request the names of the properties defined on the object and not its
    * prototype.
    *
    * @param aOnResponse function Called with the request's response.
    */
   getOwnPropertyNames: DebuggerClient.requester({
     type: "ownPropertyNames"
-  }, {
-    telemetry: "OWNPROPERTYNAMES"
   }),
 
   /**
    * Request the prototype and own properties of the object.
    *
    * @param aOnResponse function Called with the request's response.
    */
   getPrototypeAndProperties: DebuggerClient.requester({
     type: "prototypeAndProperties"
-  }, {
-    telemetry: "PROTOTYPEANDPROPERTIES"
   }),
 
   /**
    * Request a PropertyIteratorClient instance to ease listing
    * properties for this object.
    *
    * @param options Object
    *        A dictionary object with various boolean attributes:
@@ -2482,17 +2421,16 @@ ObjectClient.prototype = {
     options: args(0)
   }, {
     after: function (aResponse) {
       if (aResponse.iterator) {
         return { iterator: new PropertyIteratorClient(this._client, aResponse.iterator) };
       }
       return aResponse;
     },
-    telemetry: "ENUMPROPERTIES"
   }),
 
   /**
    * Request a PropertyIteratorClient instance to enumerate entries in a
    * Map/Set-like object.
    *
    * @param aOnResponse function Called with the request's response.
    */
@@ -2519,57 +2457,50 @@ ObjectClient.prototype = {
    * Request the property descriptor of the object's specified property.
    *
    * @param aName string The name of the requested property.
    * @param aOnResponse function Called with the request's response.
    */
   getProperty: DebuggerClient.requester({
     type: "property",
     name: args(0)
-  }, {
-    telemetry: "PROPERTY"
   }),
 
   /**
    * Request the prototype of the object.
    *
    * @param aOnResponse function Called with the request's response.
    */
   getPrototype: DebuggerClient.requester({
     type: "prototype"
-  }, {
-    telemetry: "PROTOTYPE"
   }),
 
   /**
    * Request the display string of the object.
    *
    * @param aOnResponse function Called with the request's response.
    */
   getDisplayString: DebuggerClient.requester({
     type: "displayString"
-  }, {
-    telemetry: "DISPLAYSTRING"
   }),
 
   /**
    * Request the scope of the object.
    *
    * @param aOnResponse function Called with the request's response.
    */
   getScope: DebuggerClient.requester({
     type: "scope"
   }, {
     before: function (aPacket) {
       if (this._grip.class !== "Function") {
         throw new Error("scope is only valid for function grips.");
       }
       return aPacket;
     },
-    telemetry: "SCOPE"
   }),
 
   /**
    * Request the promises directly depending on the current promise.
    */
   getDependentPromises: DebuggerClient.requester({
     type: "dependentPromises"
   }, {
@@ -2728,18 +2659,16 @@ LongStringClient.prototype = {
    *        The ending index.
    * @param aCallback Function
    *        The function called when we receive the substring.
    */
   substring: DebuggerClient.requester({
     type: "substring",
     start: args(0),
     end: args(1)
-  }, {
-    telemetry: "SUBSTRING"
   }),
 };
 
 /**
  * A SourceClient provides a way to access the source text of a script.
  *
  * @param aClient ThreadClient
  *        The thread client parent.
@@ -2778,17 +2707,16 @@ SourceClient.prototype = {
    * Black box this SourceClient's source.
    *
    * @param aCallback Function
    *        The callback function called when we receive the response from the server.
    */
   blackBox: DebuggerClient.requester({
     type: "blackbox"
   }, {
-    telemetry: "BLACKBOX",
     after: function (aResponse) {
       if (!aResponse.error) {
         this._isBlackBoxed = true;
         if (this._activeThread) {
           this._activeThread.emit("blackboxchange", this);
         }
       }
       return aResponse;
@@ -2799,17 +2727,16 @@ SourceClient.prototype = {
    * Un-black box this SourceClient's source.
    *
    * @param aCallback Function
    *        The callback function called when we receive the response from the server.
    */
   unblackBox: DebuggerClient.requester({
     type: "unblackbox"
   }, {
-    telemetry: "UNBLACKBOX",
     after: function (aResponse) {
       if (!aResponse.error) {
         this._isBlackBoxed = false;
         if (this._activeThread) {
           this._activeThread.emit("blackboxchange", this);
         }
       }
       return aResponse;
@@ -3023,18 +2950,16 @@ BreakpointClient.prototype = {
   get actor() { return this._actor; },
   get _transport() { return this._client._transport; },
 
   /**
    * Remove the breakpoint from the server.
    */
   remove: DebuggerClient.requester({
     type: "delete"
-  }, {
-    telemetry: "DELETE"
   }),
 
   /**
    * Determines if this breakpoint has a condition
    */
   hasCondition: function () {
     let root = this._client.mainRoot;
     // XXX bug 990137: We will remove support for client-side handling of
@@ -3131,26 +3056,22 @@ EnvironmentClient.prototype = {
   },
   get _transport() { return this._client._transport; },
 
   /**
    * Fetches the bindings introduced by this lexical environment.
    */
   getBindings: DebuggerClient.requester({
     type: "bindings"
-  }, {
-    telemetry: "BINDINGS"
   }),
 
   /**
    * Changes the value of the identifier whose name is name (a string) to that
    * represented by value (a grip).
    */
   assign: DebuggerClient.requester({
     type: "assign",
     name: args(0),
     value: args(1)
-  }, {
-    telemetry: "ASSIGN"
   })
 };
 
 eventSource(EnvironmentClient.prototype);
--- a/devtools/shared/protocol.js
+++ b/devtools/shared/protocol.js
@@ -929,17 +929,16 @@ exports.Actor = Actor;
  *
  * @param function fn
  *    The implementation function, will be returned.
  * @param spec
  *    The method specification, with the following (optional) properties:
  *      request (object): a request template.
  *      response (object): a response template.
  *      oneway (bool): 'true' if no response should be sent.
- *      telemetry (string): Telemetry probe ID for measuring completion time.
  */
 exports.method = function (fn, spec = {}) {
   fn._methodSpec = Object.freeze(spec);
   if (spec.request) Object.freeze(spec.request);
   if (spec.response) Object.freeze(spec.response);
   return fn;
 };
 
@@ -971,34 +970,32 @@ var generateActorSpec = function (actorD
     }
 
     if (desc.value._methodSpec) {
       let methodSpec = desc.value._methodSpec;
       let spec = {};
       spec.name = methodSpec.name || name;
       spec.request = Request(object.merge({type: spec.name}, methodSpec.request || undefined));
       spec.response = Response(methodSpec.response || undefined);
-      spec.telemetry = methodSpec.telemetry;
       spec.release = methodSpec.release;
       spec.oneway = methodSpec.oneway;
 
       actorSpec.methods.push(spec);
     }
   }
 
   // Find additional method specifications
   if (actorDesc.methods) {
     for (let name in actorDesc.methods) {
       let methodSpec = actorDesc.methods[name];
       let spec = {};
 
       spec.name = methodSpec.name || name;
       spec.request = Request(object.merge({type: spec.name}, methodSpec.request || undefined));
       spec.response = Response(methodSpec.response || undefined);
-      spec.telemetry = methodSpec.telemetry;
       spec.release = methodSpec.release;
       spec.oneway = methodSpec.oneway;
 
       actorSpec.methods.push(spec);
     }
   }
 
   // Find event specifications
@@ -1341,37 +1338,16 @@ var generateRequestMethods = function (a
       // If the user doesn't need the impl don't generate it.
       if (!custom.impl) {
         return;
       }
       name = custom.impl;
     }
 
     frontProto[name] = function (...args) {
-      let histogram, startTime;
-      if (spec.telemetry) {
-        if (spec.oneway) {
-          // That just doesn't make sense.
-          throw Error("Telemetry specified for a oneway request");
-        }
-        let transportType = this.conn.localTransport
-          ? "LOCAL_"
-          : "REMOTE_";
-        let histogramId = "DEVTOOLS_DEBUGGER_RDP_"
-          + transportType + spec.telemetry + "_MS";
-        try {
-          histogram = Services.telemetry.getHistogramById(histogramId);
-          startTime = new Date();
-        } catch (ex) {
-          // XXX: Is this expected in xpcshell tests?
-          console.error(ex);
-          spec.telemetry = false;
-        }
-      }
-
       let packet;
       try {
         packet = spec.request.write(args, this);
       } catch (ex) {
         console.error("Error writing request: " + name);
         throw ex;
       }
       if (spec.oneway) {
@@ -1383,21 +1359,16 @@ var generateRequestMethods = function (a
       return this.request(packet).then(response => {
         let ret;
         try {
           ret = spec.response.read(response, this);
         } catch (ex) {
           console.error("Error reading response to: " + name);
           throw ex;
         }
-
-        if (histogram) {
-          histogram.add(+new Date - startTime);
-        }
-
         return ret;
       });
     };
 
     // Release methods should call the destroy function on return.
     if (spec.release) {
       let fn = frontProto[name];
       frontProto[name] = function (...args) {
--- a/devtools/shared/specs/addons.js
+++ b/devtools/shared/specs/addons.js
@@ -7,14 +7,13 @@ const {Arg, RetVal, generateActorSpec} =
 
 const addonsSpec = generateActorSpec({
   typeName: "addons",
 
   methods: {
     installTemporaryAddon: {
       request: { addonPath: Arg(0, "string") },
       response: { addon: RetVal("json") },
-      telemetry: "INSTALL_TEMPORARY_ADDON"
     },
   },
 });
 
 exports.addonsSpec = addonsSpec;
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -5897,524 +5897,30 @@
   "PRINT_PREVIEW_SIMPLIFY_PAGE_OPENED_COUNT": {
     "alert_emails": ["carnold@mozilla.org"],
     "bug_numbers": [1275570],
     "expires_in_version": "56",
     "kind": "count",
     "releaseChannelCollection": "opt-out",
     "description": "A counter incremented every time the browser enters simplified mode on print preview."
   },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELOAD_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reload' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELOAD_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reload' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_NAVIGATETO_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'navigateTo' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_NAVIGATETO_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'navigateTo' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_EVENTLISTENERS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'eventListeners' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_EVENTLISTENERS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'eventListeners' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RESUME_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'resume' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RESUME_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'resume' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_INTERRUPT_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'interrupt' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_INTERRUPT_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'interrupt' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_CLIENTEVALUATE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'clientEvaluate' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_CLIENTEVALUATE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'clientEvaluate' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASEMANY_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'releaseMany' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASEMANY_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'releaseMany' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADGRIPS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'threadGrips' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADGRIPS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'threadGrips' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_SOURCES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'sources' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_SOURCES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'sources' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_FRAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'frames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_FRAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'frames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PARAMETERNAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'parameterNames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PARAMETERNAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'parameterNames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_OWNPROPERTYNAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'ownPropertyNames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_OWNPROPERTYNAMES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'ownPropertyNames' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPEANDPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototypeAndProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPEANDPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototypeAndProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_ENUMPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'enumProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_ENUMPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'enumProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPESANDPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototypesAndProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPESANDPROPERTIES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototypesAndProperties' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROPERTY_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'property' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROPERTY_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'property' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototype' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'prototype' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DISPLAYSTRING_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'displayString' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DISPLAYSTRING_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'displayString' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_SUBSTRING_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'substring' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_SUBSTRING_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'substring' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'release' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'release' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTTABS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listTabs' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTTABS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listTabs' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTSERVICEWORKERREGISTRATIONS_MS": {
-    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "ejpbruel@mozilla.com"],
-    "expires_in_version": "50",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 100,
-    "description": "The time (in milliseconds) that it took a 'listServiceWorkerRegistrations' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTSERVICEWORKERREGISTRATIONS_MS": {
-    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "ejpbruel@mozilla.com"],
-    "expires_in_version": "50",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 100,
-    "description": "The time (in milliseconds) that it took a 'listServiceWorkerRegistrations' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOCOLDESCRIPTION_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'protocolDescription' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOCOLDESCRIPTION_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'protocolDescription' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTADDONS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listAddons' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTADDONS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listAddons' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTWORKERS_MS": {
-    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
-    "expires_in_version": "55",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 50,
-    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTWORKERS_MS": {
-    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
-    "expires_in_version": "55",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 50,
-    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTPROCESSES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listProcesses' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTPROCESSES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listProcesses' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DELETE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'delete' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DELETE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'delete' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_ADDONDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_ADDONDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_TABDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_TABDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_WORKERDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_WORKERDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
   "DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_LOCAL_MS": {
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 1000,
     "description": "The time (in milliseconds) that it took to display a selected source to the user."
   },
   "DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_REMOTE_MS": {
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 1000,
     "description": "The time (in milliseconds) that it took to display a selected source to the user."
   },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RECONFIGURETAB_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reconfigure tab' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RECONFIGURETAB_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reconfigure tab' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTWORKERS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTWORKERS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RECONFIGURETHREAD_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reconfigure thread' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RECONFIGURETHREAD_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'reconfigure thread' request to go round trip."
-  },
   "MEDIA_RUST_MP4PARSE_SUCCESS": {
     "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"],
     "expires_in_version": "55",
     "kind": "boolean",
     "bug_numbers": [1220885],
     "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment.",
     "cpp_guard": "MOZ_RUST_MP4PARSE"
   },
@@ -7000,58 +6506,16 @@
   },
   "WEBRTC_CALL_TYPE": {
     "alert_emails": ["webrtc-telemetry-alerts@mozilla.com"],
     "expires_in_version": "never",
     "kind": "enumerated",
     "n_values": 8,
     "description": "Type of call: (Bitmask) Audio = 1, Video = 2, DataChannels = 4"
   },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_TRACERDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_TRACERDETACH_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_STARTTRACE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'startTrace' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_STARTTRACE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'startTrace' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_STOPTRACE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'stopTrace' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_STOPTRACE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'stopTrace' request to go round trip."
-  },
   "COOKIES_3RDPARTY_NUM_SITES_ACCEPTED": {
     "expires_in_version": "40",
     "kind": "linear",
     "low": 5,
     "high": 145,
     "n_buckets": 30,
     "description": "The number of distinct pairs (first-party site, third-party site attempting to set cookie) for which the third-party cookie has been accepted. Sites are considered identical if they have the same eTLD + 1. Measures are normalized per 24h. *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
   },
@@ -7074,100 +6538,16 @@
   "COOKIES_3RDPARTY_NUM_ATTEMPTS_BLOCKED": {
     "expires_in_version": "40",
     "kind": "linear",
     "low": 10,
     "high": 500,
     "n_buckets": 50,
     "description": "The total number of distinct attempts by third-party sites to place cookies which have been rejected.  Measures are normalized per 24h. *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
   },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_GET_EXECUTABLE_LINES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'getExecutableLines' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_GET_EXECUTABLE_LINES_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'getExecutableLines' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_BLACKBOX_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'blackbox' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_BLACKBOX_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'blackbox' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_UNBLACKBOX_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'ublackbox' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_UNBLACKBOX_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'unblackbox' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_SCOPE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'scope' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_SCOPE_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'scope' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_BINDINGS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'bindings' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_BINDINGS_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took a 'bindings' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_LOCAL_ASSIGN_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'assign' request to go round trip."
-  },
-  "DEVTOOLS_DEBUGGER_RDP_REMOTE_ASSIGN_MS": {
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 1000,
-    "description": "The time (in milliseconds) that it took an 'assign' request to go round trip."
-  },
   "DEVTOOLS_TOOLBOX_OPENED_COUNT": {
     "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
     "expires_in_version": "never",
     "kind": "count",
     "bug_numbers": [1247985],
     "description": "Number of times the DevTools toolbox has been opened.",
     "releaseChannelCollection": "opt-out"
   },