Bug 1372073 - Suppress devicechange event. draft
authorChung-Sheng Fu <cfu@mozilla.com>
Tue, 19 Sep 2017 09:56:48 +0800
changeset 696989 2904213f878b38c7269c3b1e0170d259c9656b4a
parent 696988 837c7a2c1cf450b8ffb02fc5fd0a8fd2a7b2fde3
child 696990 58cc1c803cde15f7fbe7a9106916dd83c1eacdfa
push id88850
push userbmo:cfu@mozilla.com
push dateMon, 13 Nov 2017 06:48:26 +0000
bugs1372073
milestone59.0a1
Bug 1372073 - Suppress devicechange event. MozReview-Commit-ID: JxxFbOMBQvY
dom/media/MediaDevices.cpp
--- a/dom/media/MediaDevices.cpp
+++ b/dom/media/MediaDevices.cpp
@@ -4,16 +4,17 @@
 
 #include "mozilla/dom/MediaDevices.h"
 #include "mozilla/dom/MediaStreamBinding.h"
 #include "mozilla/dom/MediaDeviceInfo.h"
 #include "mozilla/dom/MediaDevicesBinding.h"
 #include "mozilla/dom/Promise.h"
 #include "mozilla/MediaManager.h"
 #include "MediaTrackConstraints.h"
+#include "nsContentUtils.h"
 #include "nsIEventTarget.h"
 #include "nsINamed.h"
 #include "nsIScriptGlobalObject.h"
 #include "nsIPermissionManager.h"
 #include "nsPIDOMWindow.h"
 #include "nsQueryObject.h"
 
 #define DEVICECHANGE_HOLD_TIME_IN_MS 1000
@@ -227,16 +228,22 @@ MediaDevices::OnDeviceChange()
     return;
   }
 
   if (!(MediaManager::Get()->IsActivelyCapturingOrHasAPermission(GetOwner()->WindowID()) ||
     Preferences::GetBool("media.navigator.permission.disabled", false))) {
     return;
   }
 
+  // Do not fire event to content script when
+  // privacy.resistFingerprinting is true.
+  if (nsContentUtils::ShouldResistFingerprinting()) {
+    return;
+  }
+
   if (!mFuzzTimer)
   {
     mFuzzTimer = NS_NewTimer();
   }
 
   if (!mFuzzTimer) {
     MOZ_ASSERT(false);
     return;