Bug 1939881: Implement RFPTargetBits and replace appropriate uses. r=tjr
This is a huge patch, but it is only really refactoring of RFPTarget enum. We used to use RFPTarget as a bitset and now we ran out of bits, so now we need a workaround. Differential Revision: https://phabricator.services.mozilla.com/D233182
This commit is contained in:
@@ -60,6 +60,7 @@
|
||||
#include "mozilla/RemoteDecoderManagerChild.h"
|
||||
#include "mozilla/KeySystemConfig.h"
|
||||
#include "mozilla/WheelHandlingHelper.h"
|
||||
#include "nsIRFPTargetSetIDL.h"
|
||||
#include "nsContentSecurityUtils.h"
|
||||
#include "nsString.h"
|
||||
#include "nsNativeTheme.h"
|
||||
@@ -2317,7 +2318,7 @@ void ChromeUtils::GetAllPossibleUtilityActorNames(GlobalObject& aGlobal,
|
||||
/* static */
|
||||
bool ChromeUtils::ShouldResistFingerprinting(
|
||||
GlobalObject& aGlobal, JSRFPTarget aTarget,
|
||||
const Nullable<uint64_t>& aOverriddenFingerprintingSettings,
|
||||
nsIRFPTargetSetIDL* aOverriddenFingerprintingSettings,
|
||||
const Optional<bool>& aIsPBM) {
|
||||
RFPTarget target;
|
||||
switch (aTarget) {
|
||||
@@ -2351,10 +2352,16 @@ bool ChromeUtils::ShouldResistFingerprinting(
|
||||
}
|
||||
}
|
||||
|
||||
Maybe<RFPTarget> overriddenFingerprintingSettings;
|
||||
if (!aOverriddenFingerprintingSettings.IsNull()) {
|
||||
overriddenFingerprintingSettings.emplace(
|
||||
RFPTarget(aOverriddenFingerprintingSettings.Value()));
|
||||
Maybe<RFPTargetSet> overriddenFingerprintingSettings;
|
||||
if (aOverriddenFingerprintingSettings) {
|
||||
uint64_t low, hi;
|
||||
aOverriddenFingerprintingSettings->GetLow(&low);
|
||||
aOverriddenFingerprintingSettings->GetHigh(&hi);
|
||||
std::bitset<128> bitset;
|
||||
bitset |= hi;
|
||||
bitset <<= 64;
|
||||
bitset |= low;
|
||||
overriddenFingerprintingSettings.emplace(RFPTargetSet(bitset));
|
||||
}
|
||||
|
||||
// This global object appears to be the global window, not for individual
|
||||
|
||||
Reference in New Issue
Block a user