Bug 1430173 - Reduce the precision of all explicit clocks to 2ms. r=baku, a=RyanVM

Backport to ESR where we don't have the ResistFingerprinting component.

MozReview-Commit-ID: 9bjycHjR3SF

--HG--
extra : transplant_source : %EA%03%21%0A%E9%3F%8E%CD%7C%D79f%96%85%96%00%5D%7F%95X
This commit is contained in:
Tom Ritter 2018-02-20 12:18:30 -06:00 committed by Roy Tam
commit c66f2e1613
14 changed files with 109 additions and 33 deletions

5
dom/performance/Performance.cpp Normal file → Executable file
View file

@ -21,6 +21,7 @@
#include "mozilla/dom/PerformanceObserverBinding.h"
#include "mozilla/IntegerPrintfMacros.h"
#include "mozilla/Preferences.h"
#include "mozilla/TimerClamping.h"
#include "WorkerPrivate.h"
#include "WorkerRunnable.h"
@ -228,9 +229,9 @@ Performance::ClearResourceTimings()
DOMHighResTimeStamp
Performance::RoundTime(double aTime) const
{
// Round down to the nearest 20us, because if the timer is too accurate people
// Round down to the nearest 2ms, because if the timer is too accurate people
// can do nasty timing attacks with it.
const double maxResolutionMs = 0.020;
const double maxResolutionMs = 2;
return floor(aTime / maxResolutionMs) * maxResolutionMs;
}