Bug 1419495 - Remove SelfSupport service r=dexter r=smaug
authorClément David <c.david86@gmail.com>
Sat, 02 Dec 2017 21:52:30 +0100
changeset 447547 a334c14134d241255dd8a785573f3ed5e4fd5e72
parent 447546 b9e618665a96bfa7ab33be989a2cb316eb59eb56
child 447548 3b950d180e689896ce4a6d79eb8ef8b6f94c7897
push id8527
push userCallek@gmail.com
push dateThu, 11 Jan 2018 21:05:50 +0000
treeherdermozilla-beta@95342d212a7a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdexter, smaug
bugs1419495
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1419495 - Remove SelfSupport service r=dexter r=smaug
browser/components/moz.build
browser/components/selfsupport/SelfSupportService.js
browser/components/selfsupport/SelfSupportService.manifest
browser/components/selfsupport/moz.build
browser/components/selfsupport/test/.eslintrc.js
browser/components/selfsupport/test/browser.ini
browser/components/selfsupport/test/browser_selfsupportAPI.js
browser/installer/package-manifest.in
dom/base/nsGlobalWindowInner.cpp
dom/base/nsGlobalWindowInner.h
dom/base/nsGlobalWindowOuter.cpp
dom/base/nsGlobalWindowOuter.h
dom/webidl/MozSelfSupport.webidl
dom/webidl/Window.webidl
dom/webidl/moz.build
testing/runtimes/mochitest-browser-chrome-e10s.runtimes.json
testing/runtimes/mochitest-browser-chrome.runtimes.json
toolkit/components/telemetry/docs/concepts/submission.rst
tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -45,17 +45,16 @@ DIRS += [
     'originattributes',
     'places',
     'preferences',
     'privatebrowsing',
     'resistfingerprinting',
     'search',
     'sessionstore',
     'shell',
-    'selfsupport',
     'syncedtabs',
     'uitour',
     'translation',
 ]
 
 DIRS += ['build']
 
 XPIDL_SOURCES += [
deleted file mode 100644
--- a/browser/components/selfsupport/SelfSupportService.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 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 {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-const PREF_FHR_UPLOAD_ENABLED = "datareporting.healthreport.uploadEnabled";
-
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryArchive",
-                                  "resource://gre/modules/TelemetryArchive.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryEnvironment",
-                                  "resource://gre/modules/TelemetryEnvironment.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryController",
-                                  "resource://gre/modules/TelemetryController.jsm");
-
-function MozSelfSupportInterface() {
-}
-
-MozSelfSupportInterface.prototype = {
-  classDescription: "MozSelfSupport",
-  classID: Components.ID("{d30aae8b-f352-4de3-b936-bb9d875df0bb}"),
-  contractID: "@mozilla.org/mozselfsupport;1",
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsIDOMGlobalPropertyInitializer]),
-
-  _window: null,
-
-  init(window) {
-    this._window = window;
-  },
-
-  get healthReportDataSubmissionEnabled() {
-    return Services.prefs.getBoolPref(PREF_FHR_UPLOAD_ENABLED, false);
-  },
-
-  set healthReportDataSubmissionEnabled(enabled) {
-    Services.prefs.setBoolPref(PREF_FHR_UPLOAD_ENABLED, enabled);
-  },
-
-  resetPref(name) {
-    Services.prefs.clearUserPref(name);
-  },
-
-  resetSearchEngines() {
-    Services.search.restoreDefaultEngines();
-    Services.search.resetToOriginalDefaultEngine();
-  },
-
-  getTelemetryPingList() {
-    return this._wrapPromise(TelemetryArchive.promiseArchivedPingList());
-  },
-
-  getTelemetryPing(pingId) {
-    return this._wrapPromise(TelemetryArchive.promiseArchivedPingById(pingId));
-  },
-
-  getCurrentTelemetryEnvironment() {
-    const current = TelemetryEnvironment.currentEnvironment;
-    return new this._window.Promise(resolve => resolve(current));
-  },
-
-  getCurrentTelemetrySubsessionPing() {
-    const current = TelemetryController.getCurrentPingData(true);
-    return new this._window.Promise(resolve => resolve(current));
-  },
-
-  _wrapPromise(promise) {
-    return new this._window.Promise(
-      (resolve, reject) => promise.then(resolve, reject));
-  },
-};
-
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory([MozSelfSupportInterface]);
deleted file mode 100644
--- a/browser/components/selfsupport/SelfSupportService.manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-component {d30aae8b-f352-4de3-b936-bb9d875df0bb} SelfSupportService.js
-contract @mozilla.org/mozselfsupport;1 {d30aae8b-f352-4de3-b936-bb9d875df0bb}
deleted file mode 100644
--- a/browser/components/selfsupport/moz.build
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-with Files("**"):
-    BUG_COMPONENT = ("Toolkit", "Telemetry")
-
-EXTRA_COMPONENTS += [
-    'SelfSupportService.js',
-    'SelfSupportService.manifest',
-]
-
-BROWSER_CHROME_MANIFESTS += [
-    'test/browser.ini',
-]
deleted file mode 100644
--- a/browser/components/selfsupport/test/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
-  "extends": [
-    "plugin:mozilla/browser-test"
-  ]
-};
deleted file mode 100644
--- a/browser/components/selfsupport/test/browser.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[DEFAULT]
-
-[browser_selfsupportAPI.js]
deleted file mode 100644
--- a/browser/components/selfsupport/test/browser_selfsupportAPI.js
+++ /dev/null
@@ -1,92 +0,0 @@
-function prefHas(pref) {
-  return Services.prefs.getPrefType(pref) != Ci.nsIPrefBranch.PREF_INVALID;
-}
-
-function prefIsSet(pref) {
-  return Services.prefs.prefHasUserValue(pref);
-}
-
-function test_resetPref() {
-  const prefNewName = "browser.newpref.fake";
-  Assert.ok(!prefHas(prefNewName), "pref should not exist");
-
-  const prefExistingName = "extensions.hotfix.id";
-  Assert.ok(prefHas(prefExistingName), "pref should exist");
-  Assert.ok(!prefIsSet(prefExistingName), "pref should not be user-set");
-  let prefExistingOriginalValue = Services.prefs.getStringPref(prefExistingName);
-
-  registerCleanupFunction(function() {
-    Services.prefs.setStringPref(prefExistingName, prefExistingOriginalValue);
-    Services.prefs.deleteBranch(prefNewName);
-  });
-
-  // 1. do nothing on an inexistent pref
-  MozSelfSupport.resetPref(prefNewName);
-  Assert.ok(!prefHas(prefNewName), "pref should still not exist");
-
-  // 2. creation of a new pref
-  Services.prefs.setIntPref(prefNewName, 10);
-  Assert.ok(prefHas(prefNewName), "pref should exist");
-  Assert.equal(Services.prefs.getIntPref(prefNewName), 10, "pref value should be 10");
-
-  MozSelfSupport.resetPref(prefNewName);
-  Assert.ok(!prefHas(prefNewName), "pref should not exist any more");
-
-  // 3. do nothing on an unchanged existing pref
-  MozSelfSupport.resetPref(prefExistingName);
-  Assert.ok(prefHas(prefExistingName), "pref should still exist");
-  Assert.equal(Services.prefs.getStringPref(prefExistingName), prefExistingOriginalValue, "pref value should be the same as original");
-
-  // 4. change the value of an existing pref
-  Services.prefs.setStringPref(prefExistingName, "anyone@mozilla.org");
-  Assert.ok(prefHas(prefExistingName), "pref should exist");
-  Assert.equal(Services.prefs.getStringPref(prefExistingName), "anyone@mozilla.org", "pref value should have changed");
-
-  MozSelfSupport.resetPref(prefExistingName);
-  Assert.ok(prefHas(prefExistingName), "pref should still exist");
-  Assert.equal(Services.prefs.getStringPref(prefExistingName), prefExistingOriginalValue, "pref value should be the same as original");
-
-  // 5. delete an existing pref
-  // deleteBranch is implemented in such a way that
-  // clearUserPref can't undo its action
-  // see discussion in bug 1075160
-}
-
-function test_resetSearchEngines() {
-  const defaultEngineOriginal = Services.search.defaultEngine;
-  const visibleEnginesOriginal = Services.search.getVisibleEngines();
-
-  // 1. do nothing on unchanged search configuration
-  MozSelfSupport.resetSearchEngines();
-  Assert.equal(Services.search.defaultEngine, defaultEngineOriginal, "default engine should be reset");
-  Assert.deepEqual(Services.search.getVisibleEngines(), visibleEnginesOriginal,
-                   "default visible engines set should be reset");
-
-  // 2. change the default search engine
-  const defaultEngineNew = visibleEnginesOriginal[3];
-  Assert.notEqual(defaultEngineOriginal, defaultEngineNew, "new default engine should be different from original");
-  Services.search.defaultEngine = defaultEngineNew;
-  Assert.equal(Services.search.defaultEngine, defaultEngineNew, "default engine should be set to new");
-  MozSelfSupport.resetSearchEngines();
-  Assert.equal(Services.search.defaultEngine, defaultEngineOriginal, "default engine should be reset");
-  Assert.deepEqual(Services.search.getVisibleEngines(), visibleEnginesOriginal,
-                   "default visible engines set should be reset");
-
-  // 3. remove an engine
-  const engineRemoved = visibleEnginesOriginal[2];
-  Services.search.removeEngine(engineRemoved);
-  Assert.ok(Services.search.getVisibleEngines().indexOf(engineRemoved) == -1,
-            "removed engine should not be visible any more");
-  MozSelfSupport.resetSearchEngines();
-  Assert.equal(Services.search.defaultEngine, defaultEngineOriginal, "default engine should be reset");
-  Assert.deepEqual(Services.search.getVisibleEngines(), visibleEnginesOriginal,
-                   "default visible engines set should be reset");
-
-  // 4. add an angine
-  // we don't remove user-added engines as they are only used if selected
-}
-
-function test() {
-  test_resetPref();
-  test_resetSearchEngines();
-}
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -485,20 +485,16 @@
 #endif
 #ifdef XP_MACOSX
 @RESPATH@/browser/components/SafariProfileMigrator.js
 #endif
 @RESPATH@/components/nsINIProcessor.manifest
 @RESPATH@/components/nsINIProcessor.js
 @RESPATH@/components/nsPrompter.manifest
 @RESPATH@/components/nsPrompter.js
-#ifdef MOZ_SERVICES_HEALTHREPORT
-@RESPATH@/browser/components/SelfSupportService.manifest
-@RESPATH@/browser/components/SelfSupportService.js
-#endif
 @RESPATH@/components/SyncComponents.manifest
 @RESPATH@/components/Weave.js
 @RESPATH@/components/FxAccountsComponents.manifest
 @RESPATH@/components/FxAccountsPush.js
 @RESPATH@/components/CaptivePortalDetectComponents.manifest
 @RESPATH@/components/captivedetect.js
 @RESPATH@/components/servicesComponents.manifest
 @RESPATH@/components/cryptoComponents.manifest
--- a/dom/base/nsGlobalWindowInner.cpp
+++ b/dom/base/nsGlobalWindowInner.cpp
@@ -230,17 +230,16 @@
 #include "mozilla/dom/AudioContext.h"
 #include "mozilla/dom/BrowserElementDictionariesBinding.h"
 #include "mozilla/dom/cache/CacheStorage.h"
 #include "mozilla/dom/Console.h"
 #include "mozilla/dom/Fetch.h"
 #include "mozilla/dom/FunctionBinding.h"
 #include "mozilla/dom/HashChangeEvent.h"
 #include "mozilla/dom/IntlUtils.h"
-#include "mozilla/dom/MozSelfSupportBinding.h"
 #include "mozilla/dom/PopStateEvent.h"
 #include "mozilla/dom/PopupBlockedEvent.h"
 #include "mozilla/dom/PrimitiveConversions.h"
 #include "mozilla/dom/WindowBinding.h"
 #include "nsITabChild.h"
 #include "mozilla/dom/MediaQueryList.h"
 #include "mozilla/dom/ScriptSettings.h"
 #include "mozilla/dom/NavigatorBinding.h"
@@ -1206,18 +1205,16 @@ nsGlobalWindowInner::CleanUp()
 
   mConsole = nullptr;
 
   mAudioWorklet = nullptr;
   mPaintWorklet = nullptr;
 
   mExternal = nullptr;
 
-  mMozSelfSupport = nullptr;
-
   mPerformance = nullptr;
 
 #ifdef MOZ_WEBSPEECH
   mSpeechSynthesis = nullptr;
 #endif
 
 #if defined(MOZ_WIDGET_ANDROID)
   mOrientationChangeObserver = nullptr;
@@ -1503,17 +1500,16 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStatusbar)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mScrollbars)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCrypto)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mU2F)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mConsole)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mAudioWorklet)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPaintWorklet)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mExternal)
-  NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMozSelfSupport)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mIntlUtils)
 
   tmp->TraverseHostObjectURIs(cb);
 
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mChromeFields.mMessageManager)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mChromeFields.mGroupMessageManagers)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
@@ -1581,17 +1577,16 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(ns
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mStatusbar)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mScrollbars)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mCrypto)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mU2F)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mConsole)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mAudioWorklet)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mPaintWorklet)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mExternal)
-  NS_IMPL_CYCLE_COLLECTION_UNLINK(mMozSelfSupport)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mIntlUtils)
 
   tmp->UnlinkHostObjectURIs();
 
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mIdleRequestExecutor)
 
   // Here the IdleRequest list would've been unlinked, but we rely on
   // that IdleRequest objects have been traced and will remove
@@ -2584,31 +2579,16 @@ nsGlobalWindowInner::GetContent(JSContex
                                 JS::MutableHandle<JSObject*> aRetval,
                                 CallerType aCallerType,
                                 ErrorResult& aError)
 {
   FORWARD_TO_OUTER_OR_THROW(GetContentOuter,
                             (aCx, aRetval, aCallerType, aError), aError, );
 }
 
-MozSelfSupport*
-nsGlobalWindowInner::GetMozSelfSupport(ErrorResult& aError)
-{
-  if (mMozSelfSupport) {
-    return mMozSelfSupport;
-  }
-
-  // We're called from JS and want to use out existing JSContext (and,
-  // importantly, its compartment!) here.
-  AutoJSContext cx;
-  GlobalObject global(cx, FastGetGlobalJSObject());
-  mMozSelfSupport = MozSelfSupport::Constructor(global, cx, aError);
-  return mMozSelfSupport;
-}
-
 BarProp*
 nsGlobalWindowInner::GetMenubar(ErrorResult& aError)
 {
   if (!mMenubar) {
     mMenubar = new MenubarProp(this);
   }
 
   return mMenubar;
--- a/dom/base/nsGlobalWindowInner.h
+++ b/dom/base/nsGlobalWindowInner.h
@@ -107,17 +107,16 @@ class Function;
 class Gamepad;
 enum class ImageBitmapFormat : uint8_t;
 class IdleRequest;
 class IdleRequestCallback;
 class IncrementalRunnable;
 class IntlUtils;
 class Location;
 class MediaQueryList;
-class MozSelfSupport;
 class Navigator;
 class OwningExternalOrWindowProxy;
 class Promise;
 class PostMessageEvent;
 struct RequestInit;
 class RequestOrUSVString;
 class Selection;
 class SpeechSynthesis;
@@ -884,18 +883,16 @@ public:
   void Home(nsIPrincipal& aSubjectPrincipal, mozilla::ErrorResult& aError);
   bool Find(const nsAString& aString, bool aCaseSensitive, bool aBackwards,
             bool aWrapAround, bool aWholeWord, bool aSearchInFrames,
             bool aShowDialog, mozilla::ErrorResult& aError);
   uint64_t GetMozPaintCount(mozilla::ErrorResult& aError);
 
   bool ShouldResistFingerprinting();
 
-  mozilla::dom::MozSelfSupport* GetMozSelfSupport(mozilla::ErrorResult& aError);
-
   already_AddRefed<nsPIDOMWindowOuter>
   OpenDialog(JSContext* aCx,
              const nsAString& aUrl,
              const nsAString& aName,
              const nsAString& aOptions,
              const mozilla::dom::Sequence<JS::Value>& aExtraArgument,
              mozilla::ErrorResult& aError);
   nsresult UpdateCommands(const nsAString& anAction, nsISelection* aSel, int16_t aReason) override;
@@ -1321,18 +1318,16 @@ protected:
   RefPtr<mozilla::dom::Worklet> mAudioWorklet;
   RefPtr<mozilla::dom::Worklet> mPaintWorklet;
   // We need to store an nsISupports pointer to this object because the
   // mozilla::dom::External class doesn't exist on b2g and using the type
   // forward declared here means that ~nsGlobalWindow wouldn't compile because
   // it wouldn't see the ~External function's declaration.
   nsCOMPtr<nsISupports>         mExternal;
 
-  RefPtr<mozilla::dom::MozSelfSupport> mMozSelfSupport;
-
   RefPtr<mozilla::dom::Storage> mLocalStorage;
   RefPtr<mozilla::dom::Storage> mSessionStorage;
 
   RefPtr<mozilla::EventListenerManager> mListenerManager;
   RefPtr<mozilla::dom::Location> mLocation;
   RefPtr<nsHistory>           mHistory;
   RefPtr<mozilla::dom::CustomElementRegistry> mCustomElements;
 
--- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -230,17 +230,16 @@
 #include "mozilla/dom/AudioContext.h"
 #include "mozilla/dom/BrowserElementDictionariesBinding.h"
 #include "mozilla/dom/cache/CacheStorage.h"
 #include "mozilla/dom/Console.h"
 #include "mozilla/dom/Fetch.h"
 #include "mozilla/dom/FunctionBinding.h"
 #include "mozilla/dom/HashChangeEvent.h"
 #include "mozilla/dom/IntlUtils.h"
-#include "mozilla/dom/MozSelfSupportBinding.h"
 #include "mozilla/dom/PopStateEvent.h"
 #include "mozilla/dom/PopupBlockedEvent.h"
 #include "mozilla/dom/PrimitiveConversions.h"
 #include "mozilla/dom/WindowBinding.h"
 #include "nsITabChild.h"
 #include "mozilla/dom/MediaQueryList.h"
 #include "mozilla/dom/ScriptSettings.h"
 #include "mozilla/dom/NavigatorBinding.h"
--- a/dom/base/nsGlobalWindowOuter.h
+++ b/dom/base/nsGlobalWindowOuter.h
@@ -105,17 +105,16 @@ class Function;
 class Gamepad;
 enum class ImageBitmapFormat : uint8_t;
 class IdleRequest;
 class IdleRequestCallback;
 class IncrementalRunnable;
 class IntlUtils;
 class Location;
 class MediaQueryList;
-class MozSelfSupport;
 class Navigator;
 class OwningExternalOrWindowProxy;
 class Promise;
 class PostMessageEvent;
 struct RequestInit;
 class RequestOrUSVString;
 class Selection;
 class SpeechSynthesis;
deleted file mode 100644
--- a/dom/webidl/MozSelfSupport.webidl
+++ /dev/null
@@ -1,77 +0,0 @@
-/* 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/. */
-
-/**
- * The MozSelfSupport interface allows external Mozilla support sites such as
- * FHR and SUMO to access data and control settings that are not otherwise
- * exposed to external content.
- *
- * At the moment, this is a ChromeOnly interface, but the plan is to allow
- * specific Mozilla domains to access it directly.
- */
-[ChromeOnly,
- JSImplementation="@mozilla.org/mozselfsupport;1",
- Constructor()]
-interface MozSelfSupport
-{
-  /**
-   * Controls whether uploading FHR data is allowed.
-   */
-  attribute boolean healthReportDataSubmissionEnabled;
-
-  /**
-   * Retrieve a list of the archived Telemetry pings.
-   * This contains objects with ping info, which are of the form:
-   * {
-   *   type: <string>, // The pings type, e.g. "main", "environment-change", ...
-   *   timestampCreated: <number>, // The time the ping was created (ms since unix epoch).
-   *   id: <string>, // The pings UUID.
-   * }
-   *
-   * @return Promise<sequence<Object>>
-   *         Resolved with the ping infos when the archived ping list has been built.
-   */
-  Promise<sequence<object>> getTelemetryPingList();
-
-  /**
-   * Retrieve an archived Telemetry ping by it's id.
-   * This will load the ping data async from the archive, possibly hitting the disk.
-   *
-   * @return Promise<Object>
-   *         Resolved with the ping data, see the Telemetry "main" ping documentation for the format.
-   */
-  Promise<object> getTelemetryPing(DOMString pingID);
-
-  /**
-   * Get the current Telemetry environment - see the Telemetry documentation for details on the format.
-   *
-   * @return Promise<Object>
-   *         Resolved with an object containing the Telemetry environment data.
-   */
-  Promise<object> getCurrentTelemetryEnvironment();
-
-  /**
-   * Get a Telemetry "main" ping containing the current session measurements.
-   *
-   * @return Promise<Object>
-   *         Resolved with the ping data, see the Telemetry "main" ping documentation for the format.
-   */
-  Promise<object> getCurrentTelemetrySubsessionPing();
-
-  /**
-   * Resets a named pref:
-   * - if there is a default value, then change the value back to default,
-   * - if there's no default value, then delete the pref,
-   * - no-op otherwise.
-   *
-   * @param DOMString
-   *        The name of the pref to reset.
-   */
-  void resetPref(DOMString name);
-
-  /**
-   * Resets original search engines, and resets the default one.
-   */
-  void resetSearchEngines();
-};
--- a/dom/webidl/Window.webidl
+++ b/dom/webidl/Window.webidl
@@ -298,24 +298,16 @@ partial interface Window {
                                                  optional boolean showDialog = false);
 
   /**
    * Returns the number of times this document for this window has
    * been painted to the screen.
    */
   [Throws] readonly attribute unsigned long long mozPaintCount;
 
-  /**
-   * This property exists because static attributes don't yet work for
-   * JS-implemented WebIDL (see bugs 1058606 and 863952). With this hack, we
-   * can use `MozSelfSupport.something(...)`, which will continue to work
-   * after we ditch this property and switch to static attributes. See
-   */
-  [ChromeOnly, Throws] readonly attribute MozSelfSupport MozSelfSupport;
-
            attribute EventHandler ondevicemotion;
            attribute EventHandler ondeviceorientation;
            attribute EventHandler onabsolutedeviceorientation;
            attribute EventHandler ondeviceproximity;
            attribute EventHandler onuserproximity;
            attribute EventHandler ondevicelight;
 
   void                      dump(DOMString str);
--- a/dom/webidl/moz.build
+++ b/dom/webidl/moz.build
@@ -206,19 +206,16 @@ with Files("*Record*"):
     BUG_COMPONENT = ("Core", "Audio/Video: Recording")
 
 with Files("Media*Track*"):
     BUG_COMPONENT = ("Core", "WebRTC: Audio/Video")
 
 with Files("Mouse*"):
     BUG_COMPONENT = ("Core", "DOM: Events")
 
-with Files("MozSelfSupport.webidl"):
-    BUG_COMPONENT = ("Firefox Health Report", "Client: Desktop")
-
 with Files("MozTimeManager.webidl"):
     BUG_COMPONENT = ("Core", "DOM: Device Interfaces")
 
 with Files("MutationEvent.webidl"):
     BUG_COMPONENT = ("Core", "DOM: Events")
 
 with Files("NativeOSFileInternals.webidl"):
     BUG_COMPONENT = ("Toolkit", "OS.File")
@@ -684,17 +681,16 @@ WEBIDL_FILES = [
     'MenuBoxObject.webidl',
     'MessageChannel.webidl',
     'MessageEvent.webidl',
     'MessagePort.webidl',
     'MimeType.webidl',
     'MimeTypeArray.webidl',
     'MouseEvent.webidl',
     'MouseScrollEvent.webidl',
-    'MozSelfSupport.webidl',
     'MozStorageAsyncStatementParams.webidl',
     'MozStorageStatementParams.webidl',
     'MozStorageStatementRow.webidl',
     'MozTimeManager.webidl',
     'MutationEvent.webidl',
     'MutationObserver.webidl',
     'NamedNodeMap.webidl',
     'NativeOSFileInternals.webidl',
--- a/testing/runtimes/mochitest-browser-chrome-e10s.runtimes.json
+++ b/testing/runtimes/mochitest-browser-chrome-e10s.runtimes.json
@@ -810,17 +810,16 @@
     "browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js": 2484,
     "browser/modules/test/browser/browser_UsageTelemetry_private_and_restore.js": 2818,
     "browser/modules/test/browser/browser_UsageTelemetry_searchbar.js": 8194,
     "browser/modules/test/browser/browser_UsageTelemetry_urlbar.js": 8847,
     "browser/modules/test/browser_BrowserUITelemetry_buckets.js": 4394,
     "browser/modules/test/browser_ContentSearch.js": 6354,
     "browser/modules/test/browser_NetworkPrioritizer.js": 7917,
     "browser/modules/test/browser_PermissionUI.js": 5119,
-    "browser/modules/test/browser_SelfSupportBackend.js": 5739,
     "browser/modules/test/browser_UnsubmittedCrashHandler.js": 2991,
     "browser/modules/test/browser_UsageTelemetry.js": 12884,
     "browser/modules/test/browser_UsageTelemetry_content.js": 3978,
     "browser/modules/test/browser_UsageTelemetry_private_and_restore.js": 2645,
     "browser/modules/test/browser_UsageTelemetry_searchbar.js": 4426,
     "browser/modules/test/browser_UsageTelemetry_urlbar.js": 6733,
     "caps/tests/mochitest/browser_checkloaduri.js": 3104,
     "docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js": 4212,
--- a/testing/runtimes/mochitest-browser-chrome.runtimes.json
+++ b/testing/runtimes/mochitest-browser-chrome.runtimes.json
@@ -737,17 +737,16 @@
     "browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js": 1892,
     "browser/modules/test/browser/browser_UsageTelemetry_private_and_restore.js": 2310,
     "browser/modules/test/browser/browser_UsageTelemetry_searchbar.js": 5740,
     "browser/modules/test/browser/browser_UsageTelemetry_urlbar.js": 6699,
     "browser/modules/test/browser_BrowserUITelemetry_buckets.js": 4374,
     "browser/modules/test/browser_ContentSearch.js": 5221,
     "browser/modules/test/browser_NetworkPrioritizer.js": 4005,
     "browser/modules/test/browser_PermissionUI.js": 4020,
-    "browser/modules/test/browser_SelfSupportBackend.js": 5724,
     "browser/modules/test/browser_UnsubmittedCrashHandler.js": 2842,
     "browser/modules/test/browser_UsageTelemetry.js": 9979,
     "browser/modules/test/browser_UsageTelemetry_content.js": 3073,
     "browser/modules/test/browser_UsageTelemetry_content_aboutHome.js": 1812,
     "browser/modules/test/browser_UsageTelemetry_private_and_restore.js": 2215,
     "browser/modules/test/browser_UsageTelemetry_searchbar.js": 3575,
     "browser/modules/test/browser_UsageTelemetry_urlbar.js": 5256,
     "docshell/test/browser/browser_bug1347823.js": 4094,
@@ -1015,9 +1014,9 @@
     "toolkit/mozapps/update/tests/browser/browser_updatesBackgroundWindow.js": 1819,
     "toolkit/mozapps/update/tests/browser/browser_updatesBackgroundWindowFailures.js": 3440,
     "toolkit/mozapps/update/tests/browser/browser_updatesCompleteAndPartialPatchesWithBadSizes.js": 2769,
     "toolkit/mozapps/update/tests/browser/browser_updatesCompletePatchWithBadCompleteSize.js": 2115,
     "toolkit/mozapps/update/tests/browser/browser_updatesDownloadFailures.js": 2872,
     "toolkit/mozapps/update/tests/browser/browser_updatesPartialPatchWithBadPartialSize.js": 1852,
     "uriloader/exthandler/tests/mochitest/browser_web_protocol_handlers.js": 2437
   }
-}
\ No newline at end of file
+}
--- a/toolkit/components/telemetry/docs/concepts/submission.rst
+++ b/toolkit/components/telemetry/docs/concepts/submission.rst
@@ -6,17 +6,17 @@ Submission
 
 Pings are submitted via a common API on ``TelemetryController``.
 If a ping fails to successfully submit to the server immediately (e.g. because
 of missing internet connection), Telemetry will store it on disk and retry to
 send it until the maximum ping age is exceeded (14 days).
 
 .. note::
 
-  The :doc:`main pings <../data/main-ping>` are kept locally even after successful submission to enable the HealthReport and SelfSupport features. They will be deleted after their retention period of 180 days.
+  The :doc:`main pings <../data/main-ping>` are kept locally even after successful submission to enable the HealthReport feature. They will be deleted after their retention period of 180 days.
 
 Submission logic
 ================
 
 Sending of pending pings starts as soon as the delayed startup is finished. They are sent in batches, newest-first, with up
 to 10 persisted pings per batch plus all unpersisted pings.
 The send logic then waits for each batch to complete.
 
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
@@ -29,17 +29,16 @@ module.exports = {
     // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/InternalError
     "InternalError": true,
     "KeyEvent": false,
     "MatchGlob": false,
     "MatchPattern": false,
     "MatchPatternSet": false,
     "MenuBoxObject": false,
     // Specific to Firefox (Chrome code only).
-    "MozSelfSupport": false,
     "SharedArrayBuffer": false,
     "SimpleGestureEvent": false,
     // Note: StopIteration will likely be removed as part of removing legacy
     // generators, see bug 968038.
     "StopIteration": false,
     "StructuredCloneHolder": false,
     "WebAssembly": false,
     "WebExtensionContentScript": false,