commit a1beadc5b70e1b6e4727506656723684cf3225bf Author: Tim Huang tihuang@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)