[tbb-commits] [tor-browser/tor-browser-52.5.2esr-7.5-2] Bug 1372072 - Part 1: Spoofing network information API and blocking ontypechange event when 'privacy.resistFingerprinting' is true. r=arthuredelstein, baku

gk at torproject.org gk at torproject.org
Thu Dec 14 12:12:25 UTC 2017


commit a1beadc5b70e1b6e4727506656723684cf3225bf
Author: Tim Huang <tihuang at mozilla.com>
Date:   Wed Dec 13 15:29:00 2017 -0200

    Bug 1372072 - Part 1: Spoofing network information API and blocking ontypechange event when 'privacy.resistFingerprinting' is true. r=arthuredelstein,baku
    
    This patch makes the network information API always returns the default type 'unknown'
    and blocking the ontypechange event while connection type changed when 'privacy.
    resistFingerprinting' is true.
    
    MozReview-Commit-ID: 4eOdHgAGtyY
    
    --HG--
    extra : rebase_source : 78449fb4888b787062ff2139e36c219e0eac0b2c
---
 dom/network/Connection.cpp | 3 ++-
 dom/network/Connection.h   | 7 ++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dom/network/Connection.cpp b/dom/network/Connection.cpp
index 3bf6f40384a6..cc06b5e14b6a 100644
--- a/dom/network/Connection.cpp
+++ b/dom/network/Connection.cpp
@@ -78,7 +78,8 @@ Connection::Notify(const hal::NetworkInformation& aNetworkInfo)
 
   UpdateFromNetworkInfo(aNetworkInfo);
 
-  if (previousType == mType) {
+  if (previousType == mType ||
+      nsContentUtils::ShouldResistFingerprinting()) {
     return;
   }
 
diff --git a/dom/network/Connection.h b/dom/network/Connection.h
index 907aea144bc0..19e00d93c907 100644
--- a/dom/network/Connection.h
+++ b/dom/network/Connection.h
@@ -13,6 +13,7 @@
 #include "mozilla/dom/NetworkInformationBinding.h"
 #include "nsCycleCollectionParticipant.h"
 #include "nsINetworkProperties.h"
+#include "nsContentUtils.h"
 
 namespace mozilla {
 
@@ -44,7 +45,11 @@ public:
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 
-  ConnectionType Type() const { return mType; }
+  ConnectionType Type() const
+  {
+    return nsContentUtils::ShouldResistFingerprinting() ?
+             static_cast<ConnectionType>(ConnectionType::Unknown) : mType;
+  }
 
   IMPL_EVENT_HANDLER(typechange)
 





More information about the tbb-commits mailing list