mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 07:13:20 +00:00
Bug 1752907: Cut over Hardware Concurrency to finer-grained RFP Check r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D137481
This commit is contained in:
parent
f97318414e
commit
9fd77ce12f
@ -645,7 +645,8 @@ uint64_t Navigator::HardwareConcurrency() {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rts->ClampedHardwareConcurrency();
|
return rts->ClampedHardwareConcurrency(
|
||||||
|
nsContentUtils::ShouldResistFingerprinting(mWindow->GetExtantDoc()));
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -1994,11 +1994,12 @@ void RuntimeService::MemoryPressureAllWorkers() {
|
|||||||
BroadcastAllWorkers([](auto& worker) { worker.MemoryPressure(); });
|
BroadcastAllWorkers([](auto& worker) { worker.MemoryPressure(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t RuntimeService::ClampedHardwareConcurrency() const {
|
uint32_t RuntimeService::ClampedHardwareConcurrency(
|
||||||
|
bool aShouldResistFingerprinting) const {
|
||||||
// The Firefox Hardware Report says 70% of Firefox users have exactly 2 cores.
|
// The Firefox Hardware Report says 70% of Firefox users have exactly 2 cores.
|
||||||
// When the resistFingerprinting pref is set, we want to blend into the crowd
|
// When the resistFingerprinting pref is set, we want to blend into the crowd
|
||||||
// so spoof navigator.hardwareConcurrency = 2 to reduce user uniqueness.
|
// so spoof navigator.hardwareConcurrency = 2 to reduce user uniqueness.
|
||||||
if (MOZ_UNLIKELY(nsContentUtils::ShouldResistFingerprinting())) {
|
if (MOZ_UNLIKELY(aShouldResistFingerprinting)) {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ class RuntimeService final : public nsIObserver {
|
|||||||
|
|
||||||
void MemoryPressureAllWorkers();
|
void MemoryPressureAllWorkers();
|
||||||
|
|
||||||
uint32_t ClampedHardwareConcurrency() const;
|
uint32_t ClampedHardwareConcurrency(bool aShouldResistFingerprinting) const;
|
||||||
|
|
||||||
void CrashIfHanging();
|
void CrashIfHanging();
|
||||||
|
|
||||||
|
@ -176,7 +176,10 @@ uint64_t WorkerNavigator::HardwareConcurrency() const {
|
|||||||
RuntimeService* rts = RuntimeService::GetService();
|
RuntimeService* rts = RuntimeService::GetService();
|
||||||
MOZ_ASSERT(rts);
|
MOZ_ASSERT(rts);
|
||||||
|
|
||||||
return rts->ClampedHardwareConcurrency();
|
WorkerPrivate* aWorkerPrivate = GetCurrentThreadWorkerPrivate();
|
||||||
|
bool rfp = aWorkerPrivate->ShouldResistFingerprinting();
|
||||||
|
|
||||||
|
return rts->ClampedHardwareConcurrency(rfp);
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageManager* WorkerNavigator::Storage() {
|
StorageManager* WorkerNavigator::Storage() {
|
||||||
|
Loading…
Reference in New Issue
Block a user