Browse Source

Issue #21 - Remove Telemetry plumbing and fix build.

Note this won't give working applications. Requires FE changes and
additional js module changes (next part).
tracking
Moonchild 8 months ago committed by roytam1
parent
commit
8d800b1cb0
  1. 1
      build/valgrind/cross-architecture.sup
  2. 3
      dom/base/BodyUtil.cpp
  3. 1
      dom/base/DocGroup.cpp
  4. 1
      dom/base/Element.cpp
  5. 1
      dom/base/FragmentOrElement.cpp
  6. 5
      dom/base/Navigator.cpp
  7. 1
      dom/base/TabGroup.cpp
  8. 1
      dom/base/nsINode.cpp
  9. 3
      dom/base/nsJSEnvironment.cpp
  10. 1
      dom/base/nsNodeInfoManager.cpp
  11. 1
      dom/base/nsRange.cpp
  12. 69
      dom/base/test/browser_use_counters.js
  13. 1
      dom/canvas/CanvasRenderingContext2D.cpp
  14. 2
      dom/canvas/OffscreenCanvas.cpp
  15. 1
      dom/canvas/WebGL2Context.cpp
  16. 1
      dom/canvas/WebGLContext.cpp
  17. 79
      dom/crypto/WebCryptoTask.cpp
  18. 1
      dom/events/EventDispatcher.cpp
  19. 1
      dom/html/HTMLCanvasElement.cpp
  20. 2
      dom/media/CubebUtils.cpp
  21. 2
      dom/media/MediaFormatReader.cpp
  22. 2
      dom/media/gmp/GMPParent.cpp
  23. 6
      dom/media/platforms/wmf/WMFAudioMFTManager.cpp
  24. 15
      dom/media/platforms/wmf/WMFVideoMFTManager.cpp
  25. 1
      dom/plugins/base/nsPluginHost.cpp
  26. 1
      dom/plugins/ipc/PluginAsyncSurrogate.cpp
  27. 32
      dom/plugins/ipc/PluginHangUIParent.cpp
  28. 29
      dom/plugins/ipc/PluginInstanceParent.cpp
  29. 4
      dom/plugins/ipc/PluginInstanceParent.h
  30. 2
      dom/plugins/ipc/PluginProcessParent.cpp
  31. 1
      dom/workers/ServiceWorkerRegistrar.h
  32. 1
      dom/xhr/XMLHttpRequestMainThread.cpp
  33. 1
      dom/xhr/XMLHttpRequestWorker.cpp
  34. 1
      dom/xul/nsXULPrototypeCache.cpp
  35. 4
      gfx/2d/Logging.h
  36. 7
      gfx/ipc/GPUProcessHost.h
  37. 4
      gfx/layers/apz/src/AsyncPanZoomController.h
  38. 3
      gfx/layers/apz/src/CheckerboardEvent.h
  39. 2
      gfx/layers/apz/src/InputBlockState.cpp
  40. 3
      gfx/layers/apz/src/InputBlockState.h
  41. 1
      gfx/layers/apz/util/ScrollInputMethods.h
  42. 4
      gfx/layers/d3d11/CompositorD3D11.cpp
  43. 2
      gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp
  44. 2
      gfx/thebes/gfxEnv.h
  45. 1
      gfx/thebes/gfxFontEntry.cpp
  46. 1
      gfx/thebes/gfxGDIFontList.cpp
  47. 4
      gfx/thebes/gfxPlatform.h
  48. 1
      gfx/thebes/gfxUserFontSet.cpp
  49. 35
      image/Decoder.cpp
  50. 5
      image/IDecodingTask.cpp
  51. 2
      image/RasterImage.cpp
  52. 1
      image/RasterImage.h
  53. 7
      image/decoders/nsGIFDecoder2.cpp
  54. 2
      image/decoders/nsGIFDecoder2.h
  55. 7
      image/decoders/nsJPEGDecoder.cpp
  56. 2
      image/decoders/nsJPEGDecoder.h
  57. 7
      image/decoders/nsPNGDecoder.cpp
  58. 2
      image/decoders/nsPNGDecoder.h
  59. 1
      intl/uconv/ucvja/nsJapaneseToUnicode.h
  60. 1
      intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
  61. 1
      intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
  62. 1
      intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
  63. 1
      intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
  64. 2
      layout/base/nsCSSRendering.cpp
  65. 1
      layout/base/nsDocumentViewer.cpp
  66. 9
      layout/generic/nsGfxScrollFrame.cpp
  67. 1
      layout/generic/nsSelection.cpp
  68. 1
      layout/style/FontFaceSet.cpp
  69. 2
      layout/style/nsFontFaceLoader.cpp
  70. 1
      layout/xul/nsScrollbarButtonFrame.cpp
  71. 1
      layout/xul/nsSliderFrame.cpp
  72. 1
      media/libstagefright/binding/MP4Metadata.cpp
  73. 18
      netwerk/base/Predictor.cpp
  74. 2
      netwerk/base/nsNetUtil.cpp
  75. 2
      netwerk/cache/nsCacheService.h
  76. 1
      netwerk/cache/nsCacheUtils.cpp
  77. 2
      netwerk/cache/nsDeleteDir.cpp
  78. 1
      netwerk/cache/nsDiskCacheDevice.cpp
  79. 3
      netwerk/cache/nsDiskCacheDeviceSQL.cpp
  80. 11
      netwerk/cache/nsDiskCacheMap.cpp
  81. 1
      netwerk/cache/nsDiskCacheStreams.cpp
  82. 1
      netwerk/cache/nsMemoryCacheDevice.cpp
  83. 8
      netwerk/cache2/CacheEntry.cpp
  84. 3
      netwerk/cache2/CacheEntry.h
  85. 2
      netwerk/protocol/http/ASpdySession.cpp
  86. 2
      netwerk/protocol/http/ASpdySession.h
  87. 9
      netwerk/protocol/http/Http2Compression.h
  88. 3
      netwerk/protocol/http/Http2Session.cpp
  89. 3
      netwerk/protocol/http/Http2Session.h
  90. 2
      netwerk/protocol/http/nsHttpChannel.cpp
  91. 1
      netwerk/protocol/http/nsHttpChannel.h
  92. 2
      netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
  93. 1
      security/manager/ssl/DataStorage.cpp
  94. 16
      security/manager/ssl/nsCertOverrideService.cpp
  95. 7
      security/manager/ssl/nsNTLMAuthModule.cpp
  96. 1
      security/manager/ssl/nsPKCS11Slot.cpp
  97. 6
      startupcache/StartupCache.cpp
  98. 66
      storage/TelemetryVFS.cpp
  99. 2
      storage/mozStorageAsyncStatementExecution.cpp
  100. 48
      storage/mozStorageConnection.cpp
  101. Some files were not shown because too many files have changed in this diff Show More

1
build/valgrind/cross-architecture.sup

@ -40,7 +40,6 @@
fun:malloc
fun:moz_xmalloc
fun:operator new
fun:_Z21XRE_CreateStatsObjectv
...
}

3
dom/base/BodyUtil.cpp

@ -129,9 +129,6 @@ private:
*
* File blobs are copies of the underlying data string since we cannot adopt
* char* chunks embedded within the larger body without significant effort.
* FIXME(nsm): Bug 1127552 - We should add telemetry to calls to formData() and
* friends to figure out if Fetch ends up copying big blobs to see if this is
* worth optimizing.
*/
class MOZ_STACK_CLASS FormDataParser
{

1
dom/base/DocGroup.cpp

@ -4,7 +4,6 @@
#include "mozilla/dom/DocGroup.h"
#include "mozilla/dom/TabGroup.h"
#include "mozilla/Telemetry.h"
#include "nsIURI.h"
#include "nsIEffectiveTLDService.h"
#include "mozilla/StaticPtr.h"

1
dom/base/Element.cpp

@ -127,7 +127,6 @@
#include "nsWrapperCacheInlines.h"
#include "xpcpublic.h"
#include "nsIScriptError.h"
#include "mozilla/Telemetry.h"
#include "mozilla/CORSMode.h"
#include "mozilla/dom/ShadowRoot.h"

1
dom/base/FragmentOrElement.cpp

@ -117,7 +117,6 @@
#include "nsCycleCollector.h"
#include "xpcpublic.h"
#include "nsIScriptError.h"
#include "mozilla/Telemetry.h"
#include "mozilla/CORSMode.h"

5
dom/base/Navigator.cpp

@ -28,7 +28,6 @@
#include "nsContentUtils.h"
#include "nsUnicharUtils.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#ifdef MOZ_GAMEPAD
#include "mozilla/dom/GamepadServiceTest.h"
#endif
@ -1629,9 +1628,7 @@ Navigator::RequestMediaKeySystemAccess(const nsAString& aKeySystem,
nsCOMPtr<nsIGlobalObject> go = do_QueryInterface(mWindow);
RefPtr<DetailedPromise> promise =
DetailedPromise::Create(go, aRv,
NS_LITERAL_CSTRING("navigator.requestMediaKeySystemAccess"),
Telemetry::VIDEO_EME_REQUEST_SUCCESS_LATENCY_MS,
Telemetry::VIDEO_EME_REQUEST_FAILURE_LATENCY_MS);
NS_LITERAL_CSTRING("navigator.requestMediaKeySystemAccess"));
if (aRv.Failed()) {
return nullptr;
}

1
dom/base/TabGroup.cpp

@ -8,7 +8,6 @@
#include "mozilla/dom/DocGroup.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/Telemetry.h"
#include "mozilla/ThrottledEventQueue.h"
#include "nsIDocShell.h"
#include "nsIEffectiveTLDService.h"

1
dom/base/nsINode.cpp

@ -20,7 +20,6 @@
#include "mozilla/Likely.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/ServoBindings.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/css/StyleRule.h"
#include "mozilla/dom/Element.h"

3
dom/base/nsJSEnvironment.cpp

@ -56,7 +56,6 @@
#include "mozilla/dom/ScriptSettings.h"
#include "nsAXPCNativeCallContext.h"
#include "mozilla/CycleCollectedJSContext.h"
#include "mozilla/Telemetry.h"
#include "nsJSPrincipals.h"
@ -2007,7 +2006,7 @@ DOMGCSliceCallback(JSContext* aCx, JS::GCProgress aProgress, const JS::GCDescrip
}
if (!sShuttingDown) {
if (sPostGCEventsToObserver || Telemetry::CanRecordExtended()) {
if (sPostGCEventsToObserver) {
nsString json;
json.Adopt(aDesc.formatJSON(aCx, PR_Now()));
RefPtr<NotifyGCEndRunnable> notify = new NotifyGCEndRunnable(json);

1
dom/base/nsNodeInfoManager.cpp

@ -10,7 +10,6 @@
#include "nsNodeInfoManager.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Telemetry.h"
#include "mozilla/dom/NodeInfo.h"
#include "mozilla/dom/NodeInfoInlines.h"
#include "nsCOMPtr.h"

1
dom/base/nsRange.cpp

@ -32,7 +32,6 @@
#include "mozilla/dom/DOMStringList.h"
#include "mozilla/dom/ShadowRoot.h"
#include "mozilla/dom/Selection.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Likely.h"
#include "nsCSSFrameConstructor.h"
#include "nsStyleStruct.h"

69
dom/base/test/browser_use_counters.js

@ -7,30 +7,6 @@ Cu.import("resource://gre/modules/Services.jsm");
const gHttpTestRoot = "http://example.com/browser/dom/base/test/";
/**
* Enable local telemetry recording for the duration of the tests.
*/
var gOldContentCanRecord = false;
var gOldParentCanRecord = false;
add_task(function* test_initialize() {
let Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
gOldParentCanRecord = Telemetry.canRecordExtended
Telemetry.canRecordExtended = true;
// Because canRecordExtended is a per-process variable, we need to make sure
// that all of the pages load in the same content process. Limit the number
// of content processes to at most 1 (or 0 if e10s is off entirely).
yield SpecialPowers.pushPrefEnv({ set: [[ "dom.ipc.processCount", 1 ]] });
gOldContentCanRecord = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () {
let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
let old = telemetry.canRecordExtended;
telemetry.canRecordExtended = true;
return old;
});
info("canRecord for content: " + gOldContentCanRecord);
});
add_task(function* () {
// Check that use counters are incremented by SVGs loaded directly in iframes.
yield check_use_counter_iframe("file_use_counter_svg_getElementById.svg",
@ -73,20 +49,6 @@ add_task(function* () {
// "PROPERTY_FILL_OPACITY");
});
add_task(function* () {
let Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
Telemetry.canRecordExtended = gOldParentCanRecord;
yield ContentTask.spawn(gBrowser.selectedBrowser, { oldCanRecord: gOldContentCanRecord }, function (arg) {
Cu.import("resource://gre/modules/PromiseUtils.jsm");
yield new Promise(resolve => {
let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
telemetry.canRecordExtended = arg.oldCanRecord;
resolve();
});
});
});
function waitForDestroyedDocuments() {
let deferred = promise.defer();
@ -108,17 +70,6 @@ function waitForPageLoad(browser) {
}
function grabHistogramsFromContent(use_counter_middlefix, page_before = null) {
let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry);
let suffix = Services.appinfo.browserTabsRemoteAutostart ? "#content" : "";
let gather = () => [
telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_PAGE" + suffix).snapshot().sum,
telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_DOCUMENT" + suffix).snapshot().sum,
telemetry.getHistogramById("CONTENT_DOCUMENTS_DESTROYED" + suffix).snapshot().sum,
telemetry.getHistogramById("TOP_LEVEL_CONTENT_DOCUMENTS_DESTROYED" + suffix).snapshot().sum,
];
return BrowserTestUtils.waitForCondition(() => {
return page_before != telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_PAGE" + suffix).snapshot().sum;
}).then(gather, gather);
}
var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix, check_documents=true) {
@ -128,12 +79,6 @@ var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix
gBrowser.selectedTab = newTab;
newTab.linkedBrowser.stop();
// Hold on to the current values of the telemetry histograms we're
// interested in.
let [histogram_page_before, histogram_document_before,
histogram_docs_before, histogram_toplevel_docs_before] =
yield grabHistogramsFromContent(use_counter_middlefix);
gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html");
yield waitForPageLoad(gBrowser.selectedBrowser);
@ -151,7 +96,7 @@ var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix
// We flush the main document first, then the iframe's document to
// ensure any propagation that might happen from content->parent should
// have already happened when counters are reported to telemetry.
// have already happened.
wu.forceUseCounterFlush(content.document);
wu.forceUseCounterFlush(iframe.contentDocument);
@ -192,12 +137,6 @@ var check_use_counter_img = Task.async(function* (file, use_counter_middlefix) {
gBrowser.selectedTab = newTab;
newTab.linkedBrowser.stop();
// Hold on to the current values of the telemetry histograms we're
// interested in.
let [histogram_page_before, histogram_document_before,
histogram_docs_before, histogram_toplevel_docs_before] =
yield grabHistogramsFromContent(use_counter_middlefix);
gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html");
yield waitForPageLoad(gBrowser.selectedBrowser);
@ -258,12 +197,6 @@ var check_use_counter_direct = Task.async(function* (file, use_counter_middlefix
gBrowser.selectedTab = newTab;
newTab.linkedBrowser.stop();
// Hold on to the current values of the telemetry histograms we're
// interested in.
let [histogram_page_before, histogram_document_before,
histogram_docs_before, histogram_toplevel_docs_before] =
yield grabHistogramsFromContent(use_counter_middlefix);
gBrowser.selectedBrowser.loadURI(gHttpTestRoot + file);
yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
Cu.import("resource://gre/modules/PromiseUtils.jsm");

1
dom/canvas/CanvasRenderingContext2D.cpp

@ -95,7 +95,6 @@
#include "mozilla/layers/PersistentBufferProvider.h"
#include "mozilla/MathAlgorithms.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/Unused.h"

2
dom/canvas/OffscreenCanvas.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
@ -15,7 +14,6 @@
#include "mozilla/layers/AsyncCanvasRenderer.h"
#include "mozilla/layers/CanvasClient.h"
#include "mozilla/layers/ImageBridgeChild.h"
#include "mozilla/Telemetry.h"
#include "CanvasRenderingContext2D.h"
#include "CanvasUtils.h"
#include "GLContext.h"

1
dom/canvas/WebGL2Context.cpp

@ -9,7 +9,6 @@
#include "GLContext.h"
#include "mozilla/dom/WebGL2RenderingContextBinding.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/Telemetry.h"
#include "nsPrintfCString.h"
#include "WebGLBuffer.h"
#include "WebGLFormats.h"

1
dom/canvas/WebGLContext.cpp

@ -31,7 +31,6 @@
#include "mozilla/ProcessPriorityManager.h"
#include "mozilla/ScopeExit.h"
#include "mozilla/Services.h"
#include "mozilla/Telemetry.h"
#include "nsContentUtils.h"
#include "nsDisplayList.h"
#include "nsError.h"

79
dom/crypto/WebCryptoTask.cpp

@ -11,7 +11,6 @@
#include "nsProxyRelease.h"
#include "jsapi.h"
#include "mozilla/Telemetry.h"
#include "mozilla/dom/CryptoBuffer.h"
#include "mozilla/dom/CryptoKey.h"
#include "mozilla/dom/KeyAlgorithmProxy.h"
@ -45,56 +44,6 @@ using mozilla::dom::workers::Status;
using mozilla::dom::workers::WorkerHolder;
using mozilla::dom::workers::WorkerPrivate;
// Pre-defined identifiers for telemetry histograms
enum TelemetryMethod {
TM_ENCRYPT = 0,
TM_DECRYPT = 1,
TM_SIGN = 2,
TM_VERIFY = 3,
TM_DIGEST = 4,
TM_GENERATEKEY = 5,
TM_DERIVEKEY = 6,
TM_DERIVEBITS = 7,
TM_IMPORTKEY = 8,
TM_EXPORTKEY = 9,
TM_WRAPKEY = 10,
TM_UNWRAPKEY = 11
};
enum TelemetryAlgorithm {
// Please make additions at the end of the list,
// to preserve comparability of histograms over time
TA_UNKNOWN = 0,
// encrypt / decrypt
TA_AES_CBC = 1,
TA_AES_CFB = 2,
TA_AES_CTR = 3,
TA_AES_GCM = 4,
TA_RSAES_PKCS1 = 5, // NB: This algorithm has been removed
TA_RSA_OAEP = 6,
// sign/verify
TA_RSASSA_PKCS1 = 7,
TA_RSA_PSS = 8,
TA_HMAC_SHA_1 = 9,
TA_HMAC_SHA_224 = 10,
TA_HMAC_SHA_256 = 11,
TA_HMAC_SHA_384 = 12,
TA_HMAC_SHA_512 = 13,
// digest
TA_SHA_1 = 14,
TA_SHA_224 = 15,
TA_SHA_256 = 16,
TA_SHA_384 = 17,
TA_SHA_512 = 18,
// Later additions
TA_AES_KW = 19,
TA_ECDH = 20,
TA_PBKDF2 = 21,
TA_ECDSA = 22,
TA_HKDF = 23,
};
// Convenience functions for extracting / converting information
// OOM-safe CryptoBuffer initialization, suitable for constructors
@ -577,12 +526,10 @@ public:
}
// Cache parameters depending on the specific algorithm
TelemetryAlgorithm telemetryAlg;
if (algName.EqualsLiteral(WEBCRYPTO_ALG_AES_CBC)) {
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_AES_CBC);
mMechanism = CKM_AES_CBC_PAD;
telemetryAlg = TA_AES_CBC;
RootedDictionary<AesCbcParams> params(aCx);
nsresult rv = Coerce(aCx, params, aAlgorithm);
if (NS_FAILED(rv)) {
@ -599,7 +546,6 @@ public:
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_AES_CTR);
mMechanism = CKM_AES_CTR;
telemetryAlg = TA_AES_CTR;
RootedDictionary<AesCtrParams> params(aCx);
nsresult rv = Coerce(aCx, params, aAlgorithm);
if (NS_FAILED(rv)) {
@ -618,7 +564,6 @@ public:
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_AES_GCM);
mMechanism = CKM_AES_GCM;
telemetryAlg = TA_AES_GCM;
RootedDictionary<AesGcmParams> params(aCx);
nsresult rv = Coerce(aCx, params, aAlgorithm);
if (NS_FAILED(rv)) {
@ -1033,16 +978,6 @@ public:
mEarlyRv = NS_ERROR_DOM_DATA_ERR;
return;
}
TelemetryAlgorithm telemetryAlg;
switch (mMechanism) {
case CKM_SHA_1_HMAC: telemetryAlg = TA_HMAC_SHA_1; break;
case CKM_SHA224_HMAC: telemetryAlg = TA_HMAC_SHA_224; break;
case CKM_SHA256_HMAC: telemetryAlg = TA_HMAC_SHA_256; break;
case CKM_SHA384_HMAC: telemetryAlg = TA_HMAC_SHA_384; break;
case CKM_SHA512_HMAC: telemetryAlg = TA_HMAC_SHA_512; break;
default: telemetryAlg = TA_UNKNOWN;
}
}
private:
@ -1333,15 +1268,11 @@ public:
return;
}
TelemetryAlgorithm telemetryAlg;
if (algName.EqualsLiteral(WEBCRYPTO_ALG_SHA1)) {
telemetryAlg = TA_SHA_1;
} else if (algName.EqualsLiteral(WEBCRYPTO_ALG_SHA256)) {
telemetryAlg = TA_SHA_224;
} else if (algName.EqualsLiteral(WEBCRYPTO_ALG_SHA384)) {
telemetryAlg = TA_SHA_256;
} else if (algName.EqualsLiteral(WEBCRYPTO_ALG_SHA512)) {
telemetryAlg = TA_SHA_384;
if (algName.EqualsLiteral(WEBCRYPTO_ALG_SHA1) ||
algName.EqualsLiteral(WEBCRYPTO_ALG_SHA256) ||
algName.EqualsLiteral(WEBCRYPTO_ALG_SHA384) ||
algName.EqualsLiteral(WEBCRYPTO_ALG_SHA512)) {
// All good, fall through.
} else {
mEarlyRv = NS_ERROR_DOM_SYNTAX_ERR;
return;

1
dom/events/EventDispatcher.cpp

@ -53,7 +53,6 @@
#include "mozilla/ipc/MessageChannel.h"
#include "mozilla/MiscEvents.h"
#include "mozilla/MouseEvents.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TextEvents.h"
#include "mozilla/TouchEvents.h"
#include "mozilla/Unused.h"

1
dom/html/HTMLCanvasElement.cpp

@ -25,7 +25,6 @@
#include "mozilla/layers/AsyncCanvasRenderer.h"
#include "mozilla/MouseEvents.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#include "nsAttrValueInlines.h"
#include "nsContentUtils.h"
#include "nsDisplayList.h"

2
dom/media/CubebUtils.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
@ -14,7 +13,6 @@
#include "mozilla/Sprintf.h"
#include "mozilla/StaticMutex.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#include "nsThreadUtils.h"
#include "CubebUtils.h"

2
dom/media/MediaFormatReader.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
@ -11,7 +10,6 @@
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/dom/HTMLMediaElement.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#include "nsContentUtils.h"
#include "nsPrintfCString.h"
#include "nsSize.h"

2
dom/media/gmp/GMPParent.cpp

@ -24,8 +24,6 @@
using mozilla::ipc::GeckoChildProcessHost;
#include "mozilla/Telemetry.h"
#ifdef XP_WIN
#include "WMFDecoderModule.h"
#endif

6
dom/media/platforms/wmf/WMFAudioMFTManager.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
@ -10,7 +9,6 @@
#include "WMFUtils.h"
#include "nsTArray.h"
#include "TimeUnits.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#define LOG(...) MOZ_LOG(sPDMLog, mozilla::LogLevel::Debug, (__VA_ARGS__))
@ -250,10 +248,6 @@ WMFAudioMFTManager::Output(int64_t aStreamOffset,
if (!sample) {
LOG("Audio MFTDecoder returned success but null output.");
nsCOMPtr<nsIRunnable> task = NS_NewRunnableFunction([]() -> void {
LOG("Reporting telemetry AUDIO_MFT_OUTPUT_NULL_SAMPLES");
});
AbstractThread::MainThread()->Dispatch(task.forget());
return E_FAIL;
}

15
dom/media/platforms/wmf/WMFVideoMFTManager.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
@ -25,7 +24,6 @@
#include "gfxWindowsPlatform.h"
#include "IMFYCbCrImage.h"
#include "mozilla/WindowsVersion.h"
#include "mozilla/Telemetry.h"
#include "nsPrintfCString.h"
#include "GMPUtils.h" // For SplitAt. TODO: Move SplitAt to a central place.
#include "MP4Decoder.h"
@ -116,19 +114,6 @@ WMFVideoMFTManager::~WMFVideoMFTManager()
if (mDXVA2Manager) {
DeleteOnMainThread(mDXVA2Manager);
}
// Record whether the video decoder successfully decoded, or output null
// samples but did/didn't recover.
uint32_t telemetry = (mNullOutputCount == 0) ? 0 :
(mGotValidOutputAfterNullOutput && mGotExcessiveNullOutput) ? 1 :
mGotExcessiveNullOutput ? 2 :
mGotValidOutputAfterNullOutput ? 3 :
4;
nsCOMPtr<nsIRunnable> task = NS_NewRunnableFunction([=]() -> void {
LOG(nsPrintfCString("Reporting telemetry VIDEO_MFT_OUTPUT_NULL_SAMPLES=%d", telemetry).get());
});
AbstractThread::MainThread()->Dispatch(task.forget());
}
const GUID&

1
dom/plugins/base/nsPluginHost.cpp

@ -88,7 +88,6 @@
#include "nsIContentPolicy.h"
#include "nsContentPolicyUtils.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Telemetry.h"
#include "nsIImageLoadingContent.h"
#include "mozilla/Preferences.h"
#include "nsVersionComparator.h"

1
dom/plugins/ipc/PluginAsyncSurrogate.cpp

@ -11,7 +11,6 @@
#include "mozilla/plugins/PluginInstanceParent.h"
#include "mozilla/plugins/PluginModuleParent.h"
#include "mozilla/plugins/PluginScriptableObjectParent.h"
#include "mozilla/Telemetry.h"
#include "nsJSNPRuntime.h"
#include "nsNPAPIPlugin.h"
#include "nsNPAPIPluginInstance.h"

32
dom/plugins/ipc/PluginHangUIParent.cpp

@ -30,33 +30,6 @@ using mozilla::widget::WidgetUtils;
using std::string;
using std::vector;
namespace {
class nsPluginHangUITelemetry : public mozilla::Runnable
{
public:
nsPluginHangUITelemetry(int aResponseCode, int aDontAskCode,
uint32_t aResponseTimeMs, uint32_t aTimeoutMs)
: mResponseCode(aResponseCode),
mDontAskCode(aDontAskCode),
mResponseTimeMs(aResponseTimeMs),
mTimeoutMs(aTimeoutMs)
{
}
NS_IMETHOD
Run() override
{
return NS_OK;
}
private:
int mResponseCode;
int mDontAskCode;
uint32_t mResponseTimeMs;
uint32_t mTimeoutMs;
};
} // namespace
namespace mozilla {
namespace plugins {
@ -358,11 +331,6 @@ PluginHangUIParent::RecvUserResponse(const unsigned int& aResponse)
responseCode = 3;
}
int dontAskCode = (aResponse & HANGUI_USER_RESPONSE_DONT_SHOW_AGAIN) ? 1 : 0;
nsCOMPtr<nsIRunnable> workItem = new nsPluginHangUITelemetry(responseCode,
dontAskCode,
LastShowDurationMs(),
mTimeoutPrefMs);
NS_DispatchToMainThread(workItem);
return true;
}

29
dom/plugins/ipc/PluginInstanceParent.cpp

@ -769,8 +769,6 @@ PluginInstanceParent::SetCurrentImage(Image* aImage)
gfx::IntRect rect = aImage->GetPictureRect();
NPRect nprect = {uint16_t(rect.x), uint16_t(rect.y), uint16_t(rect.width), uint16_t(rect.height)};
RecvNPN_InvalidateRect(nprect);
RecordDrawingModel();
}
bool
@ -907,7 +905,6 @@ PluginInstanceParent::RecvShow(const NPRect& updatedRect,
PLUGIN_LOG_DEBUG((" (RecvShow invalidated for surface %p)",
mFrontSurface.get()));
RecordDrawingModel();
return true;
}
@ -1273,7 +1270,6 @@ PluginInstanceParent::NPP_SetWindow(const NPWindow* aWindow)
return NPERR_GENERIC_ERROR;
}
RecordDrawingModel();
return NPERR_NO_ERROR;
}
@ -2232,28 +2228,3 @@ PluginInstanceParent::RecvOnWindowedPluginKeyEvent(
owner->OnWindowedPluginKeyEvent(aKeyEventData);
return true;
}
void
PluginInstanceParent::RecordDrawingModel()
{
int mode = -1;
switch (mWindowType) {
case NPWindowTypeWindow:
// We use 0=windowed since there is no specific NPDrawingModel value.
mode = 0;
break;
case NPWindowTypeDrawable:
mode = mDrawingModel + 1;
break;
default:
MOZ_ASSERT_UNREACHABLE("bad window type");
return;
}
if (mode == mLastRecordedDrawingModel) {
return;
}
MOZ_ASSERT(mode >= 0);
mLastRecordedDrawingModel = mode;
}

4
dom/plugins/ipc/PluginInstanceParent.h

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* vim: sw=4 ts=4 et :
* 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/. */
@ -387,9 +386,6 @@ private:
void SetCurrentImage(layers::Image* aImage);
// Update Telemetry with the current drawing model.
void RecordDrawingModel();
private:
PluginModuleParent* mParent;
RefPtr<PluginAsyncSurrogate> mSurrogate;

2
dom/plugins/ipc/PluginProcessParent.cpp

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* vim: sw=4 ts=4 et :
* 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/. */
@ -11,7 +10,6 @@
#include "mozilla/ipc/BrowserProcessSubThread.h"
#include "mozilla/plugins/PluginMessageUtils.h"
#include "mozilla/Telemetry.h"
#include "nsThreadUtils.h"
using std::vector;

1
dom/workers/ServiceWorkerRegistrar.h

@ -7,7 +7,6 @@
#define mozilla_dom_workers_ServiceWorkerRegistrar_h
#include "mozilla/Monitor.h"
#include "mozilla/Telemetry.h"
#include "nsClassHashtable.h"
#include "nsIObserver.h"
#include "nsCOMPtr.h"

1
dom/xhr/XMLHttpRequestMainThread.cpp

@ -65,7 +65,6 @@
#include "nsAsyncRedirectVerifyHelper.h"
#include "nsStringBuffer.h"
#include "nsIFileChannel.h"
#include "mozilla/Telemetry.h"
#include "jsfriendapi.h"
#include "GeckoProfiler.h"
#include "mozilla/dom/EncodingUtils.h"

1
dom/xhr/XMLHttpRequestWorker.cpp

@ -21,7 +21,6 @@
#include "mozilla/dom/ProgressEvent.h"
#include "mozilla/dom/StructuredCloneHolder.h"
#include "mozilla/dom/URLSearchParams.h"
#include "mozilla/Telemetry.h"
#include "nsComponentManagerUtils.h"
#include "nsContentUtils.h"
#include "nsJSUtils.h"

1
dom/xul/nsXULPrototypeCache.cpp

@ -26,7 +26,6 @@
#include "mozilla/Preferences.h"
#include "mozilla/scache/StartupCache.h"
#include "mozilla/scache/StartupCacheUtils.h"
#include "mozilla/Telemetry.h"
using namespace mozilla;
using namespace mozilla::scache;

4
gfx/2d/Logging.h

@ -561,10 +561,6 @@ typedef Log<LOG_CRITICAL, CriticalLogger> CriticalLog;
#define gfxWarning mozilla::gfx::WarningLog
#define gfxWarningOnce static gfxWarning GFX_LOGGING_GLUE(sOnceAtLine,__LINE__) = gfxWarning
// In the debug build, this is equivalent to the default gfxCriticalError.
// In the non-debug build, on nightly and dev edition, it will MOZ_CRASH.
// On beta and release versions, it will telemetry count, but proceed.
//
// You should create a (new) enum in the LogReason and use it for the reason
// parameter to ensure uniqueness.
#define gfxDevCrash(reason) gfxCriticalError(int(gfx::LogOptions::AutoPrefix) | int(gfx::LogOptions::AssertOnCall) | int(gfx::LogOptions::CrashAction), (reason))

7
gfx/ipc/GPUProcessHost.h

@ -1,5 +1,4 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* vim: sts=8 sw=2 ts=2 tw=99 et :
* 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/. */
@ -85,10 +84,8 @@ public:
return !!mGPUChild;
}
// Return the time stamp for when we tried to launch the GPU process. This is
// currently used for Telemetry so that we can determine how long GPU processes
// take to spin up. Note this doesn't denote a successful launch, just when we
// attempted launch.
// Return the time stamp for when we tried to launch the GPU process.
// Note this doesn't denote a successful launch, just when we attempted launch.
TimeStamp GetLaunchTime() const {
return mLaunchTime;
}

4
gfx/layers/apz/src/AsyncPanZoomController.h

@ -228,14 +228,14 @@ public:
uint32_t GetCheckerboardMagnitude() const;
/**
* Report the number of CSSPixel-milliseconds of checkerboard to telemetry.
* Report the number of CSSPixel-milliseconds of checkerboard.
*/
void ReportCheckerboard(const TimeStamp& aSampleTime);
/**
* Flush any active checkerboard report that's in progress. This basically
* pretends like any in-progress checkerboard event has terminated, and pushes
* out the report to the checkerboard reporting service and telemetry. If the
* out the report to the checkerboard reporting service. If the
* checkerboard event has not really finished, it will start a new event
* on the next composite.
*/

3
gfx/layers/apz/src/CheckerboardEvent.h

@ -157,8 +157,7 @@ private:
private:
/**
* If true, we should log the various properties during the checkerboard
* event. If false, we only need to record things we need for telemetry
* measures.
* event.
*/
const bool mRecordTrace;
/**

2
gfx/layers/apz/src/InputBlockState.cpp

@ -46,7 +46,7 @@ InputBlockState::SetConfirmedTargetApzc(const RefPtr<AsyncPanZoomController>& aT
aState == TargetConfirmationState::eConfirmed) {
// The main thread finally responded. We had already timed out the
// confirmation, but we want to update the state internally so that we
// can record the time for telemetry purposes.
// can record the time.
mTargetConfirmed = TargetConfirmationState::eTimedOutAndMainThreadResponded;
}
if (mTargetConfirmed != TargetConfirmationState::eUnconfirmed) {

3
gfx/layers/apz/src/InputBlockState.h

@ -143,8 +143,7 @@ public:
/**
* This should be called when a content response notification has been
* delivered to this block. If all the notifications have arrived, this
* will report the total time take to telemetry.
* delivered to this block.
*/
void RecordContentResponseTime();

1
gfx/layers/apz/util/ScrollInputMethods.h

@ -11,7 +11,6 @@ namespace layers {
/**
* An enumeration that lists various input methods used to trigger scrolling.
* Used as the values for the SCROLL_INPUT_METHODS telemetry histogram.
*/
enum class ScrollInputMethod {

4
gfx/layers/d3d11/CompositorD3D11.cpp

@ -25,7 +25,6 @@
#include "mozilla/widget/WinCompositorWidget.h"
#include "mozilla/EnumeratedArray.h"
#include "mozilla/Telemetry.h"
#include "BlendShaderConstants.h"
#include "D3D11ShareHandleImage.h"
@ -1376,9 +1375,6 @@ DeviceAttachmentsD3D11::InitSyncObject()
if (FAILED(hr) || !mSyncHandle) {
gfxCriticalError() << "Failed to get SharedHandle for sync texture. Result: "
<< hexa(hr);
NS_DispatchToMainThread(NS_NewRunnableFunction([] () -> void {
Accumulate(Telemetry::D3D11_SYNC_HANDLE_FAILURE, 1);
}));
return false;
}

2
gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp

@ -49,7 +49,6 @@
#include "mozilla/layout/RenderFrameParent.h"
#include "mozilla/media/MediaSystemResourceService.h" // for MediaSystemResourceService
#include "mozilla/mozalloc.h" // for operator new, etc
#include "mozilla/Telemetry.h"
#ifdef MOZ_WIDGET_GTK
#include "basic/X11BasicCompositor.h" // for X11BasicCompositor
#endif
@ -70,7 +69,6 @@
#include "mozilla/Hal.h"
#include "mozilla/HalTypes.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/Telemetry.h"
#include "mozilla/VsyncDispatcher.h"
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
#include "VsyncSource.h"

2
gfx/thebes/gfxEnv.h

@ -70,8 +70,6 @@ public:
// Force gfxDevCrash to use MOZ_CRASH in Beta and Release
DECL_GFX_ENV("MOZ_GFX_CRASH_MOZ_CRASH", GfxDevCrashMozCrash);
// Force gfxDevCrash to use telemetry in Nightly and Aurora
DECL_GFX_ENV("MOZ_GFX_CRASH_TELEMETRY", GfxDevCrashTelemetry);
DECL_GFX_ENV("MOZ_GFX_VR_NO_DISTORTION", VRNoDistortion);

1
gfx/thebes/gfxFontEntry.cpp

@ -34,7 +34,6 @@
#include "mozilla/MemoryReporting.h"
#include "mozilla/Preferences.h"
#include "mozilla/Services.h"
#include "mozilla/Telemetry.h"
#include "gfxSVGGlyphs.h"
#include "gfx2DGlue.h"

1
gfx/thebes/gfxGDIFontList.cpp

@ -28,7 +28,6 @@
#include "GeckoProfiler.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Telemetry.h"
#include "mozilla/WindowsVersion.h"
#include <usp10.h>

4
gfx/thebes/gfxPlatform.h

@ -159,9 +159,7 @@ public:
static gfxPlatform *GetPlatform();
/**
* Returns whether or not graphics has been initialized yet. This is
* intended for Telemetry where we don't necessarily want to initialize
* graphics just to observe its state.
* Returns whether or not graphics has been initialized yet.
*/
static bool Initialized();

1
gfx/thebes/gfxUserFontSet.cpp

@ -17,7 +17,6 @@
#include "gfxFontConstants.h"
#include "mozilla/Preferences.h"
#include "mozilla/Services.h"
#include "mozilla/Telemetry.h"
#include "mozilla/gfx/2D.h"
#include "gfxPlatformFontList.h"

35
image/Decoder.cpp

@ -13,7 +13,6 @@
#include "nsProxyRelease.h"
#include "nsServiceManagerUtils.h"
#include "nsComponentManagerUtils.h"
#include "mozilla/Telemetry.h"
using mozilla::gfx::IntSize;
using mozilla::gfx::SurfaceFormat;
@ -21,29 +20,6 @@ using mozilla::gfx::SurfaceFormat;
namespace mozilla {
namespace image {
class MOZ_STACK_CLASS AutoRecordDecoderTelemetry final
{
public:
explicit AutoRecordDecoderTelemetry(Decoder* aDecoder)
: mDecoder(aDecoder)
{
MOZ_ASSERT(mDecoder);
// Begin recording telemetry data.
mStartTime = TimeStamp::Now();
}
~AutoRecordDecoderTelemetry()
{
// Finish telemetry.
mDecoder->mDecodeTime += (TimeStamp::Now() - mStartTime);
}
private:
Decoder* mDecoder;
TimeStamp mStartTime;
};
Decoder::Decoder(RasterImage* aImage)
: mImageData(nullptr)
, mImageDataLength(0)
@ -124,7 +100,6 @@ Decoder::Decode(IResumable* aOnResume /* = nullptr */)
LexerResult lexerResult(TerminalState::FAILURE);
{
PROFILER_LABEL("ImageDecoder", "Decode", js::ProfileEntry::Category::GRAPHICS);
AutoRecordDecoderTelemetry telemetry(this);
lexerResult = DoDecode(*mIterator, aOnResume);
};
@ -267,16 +242,6 @@ Decoder::FinalStatus() const
ShouldReportError());
}
DecoderTelemetry
Decoder::Telemetry() const
{
MOZ_ASSERT(mIterator);
return DecoderTelemetry(SpeedHistogram(),
mIterator->ByteCount(),
mIterator->ChunkCount(),
mDecodeTime);
}
nsresult
Decoder::AllocateFrame(const gfx::IntSize& aOutputSize,
const gfx::IntRect& aFrameRect,

5
image/IDecodingTask.cpp

@ -66,7 +66,6 @@ IDecodingTask::NotifyDecodeComplete(NotNull<RasterImage*> aImage,
// Capture the decoder's state.
DecoderFinalStatus finalStatus = aDecoder->FinalStatus();
ImageMetadata metadata = aDecoder->GetImageMetadata();
DecoderTelemetry telemetry = aDecoder->Telemetry();
Progress progress = aDecoder->TakeProgress();
IntRect invalidRect = aDecoder->TakeInvalidRect();
Maybe<uint32_t> frameCount = aDecoder->TakeCompleteFrameCount();
@ -75,7 +74,7 @@ IDecodingTask::NotifyDecodeComplete(NotNull<RasterImage*> aImage,
// Synchronously notify if we can.
if (NS_IsMainThread() && !(decoderFlags & DecoderFlags::ASYNC_NOTIFY)) {
aImage->NotifyDecodeComplete(finalStatus, metadata, telemetry, progress,
aImage->NotifyDecodeComplete(finalStatus, metadata, progress,
invalidRect, frameCount, decoderFlags,
surfaceFlags);
return;
@ -84,7 +83,7 @@ IDecodingTask::NotifyDecodeComplete(NotNull<RasterImage*> aImage,
// We're forced to notify asynchronously.
NotNull<RefPtr<RasterImage>> image = aImage;
NS_DispatchToMainThread(NS_NewRunnableFunction([=]() -> void {
image->NotifyDecodeComplete(finalStatus, metadata, telemetry, progress,
image->NotifyDecodeComplete(finalStatus, metadata, progress,
invalidRect, frameCount, decoderFlags,
surfaceFlags);
}));

2
image/RasterImage.cpp

@ -40,7 +40,6 @@
#include "mozilla/Services.h"
#include <stdint.h>
#include "mozilla/TimeStamp.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Tuple.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/gfx/Scale.h"
@ -1558,7 +1557,6 @@ RasterImage::NotifyProgress(Progress aProgress,
void
RasterImage::NotifyDecodeComplete(const DecoderFinalStatus& aStatus,
const ImageMetadata& aMetadata,
const DecoderTelemetry& aTelemetry,
Progress aProgress,
const IntRect& aInvalidRect,
const Maybe<uint32_t>& aFrameCount,

1
image/RasterImage.h

@ -224,7 +224,6 @@ public:
*/
void NotifyDecodeComplete(const DecoderFinalStatus& aStatus,
const ImageMetadata& aMetadata,
const DecoderTelemetry& aTelemetry,
Progress aProgress,
const gfx::IntRect& aInvalidRect,
const Maybe<uint32_t>& aFrameCount,

7
image/decoders/nsGIFDecoder2.cpp

@ -52,7 +52,6 @@ mailing address.
#include "gfxPlatform.h"
#include "qcms.h"
#include <algorithm>
#include "mozilla/Telemetry.h"
using namespace mozilla::gfx;
@ -1088,11 +1087,5 @@ nsGIFDecoder2::SkipSubBlocks(const char* aData)
nextSubBlockLength);
}
Maybe<Telemetry::ID>
nsGIFDecoder2::SpeedHistogram() const
{
return Some(Telemetry::IMAGE_DECODE_SPEED_GIF);
}
} // namespace image
} // namespace mozilla

2
image/decoders/nsGIFDecoder2.h

@ -29,8 +29,6 @@ protected:
IResumable* aOnResume) override;
nsresult FinishInternal() override;
Maybe<Telemetry::ID> SpeedHistogram() const override;
private:
friend class DecoderFactory;

7
image/decoders/nsJPEGDecoder.cpp