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

35
dom/base/TimerClamping.cpp Executable file
View file

@ -0,0 +1,35 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "TimerClamping.h"
namespace mozilla {
/* static */
double
TimerClamping::ReduceSTimeValue(double aTime)
{
static const double maxResolutionS = .002;
return floor(aTime / maxResolutionS) * maxResolutionS;
}
/* static */
double
TimerClamping::ReduceMsTimeValue(double aTime)
{
static const double maxResolutionMs = 2;
return floor(aTime / maxResolutionMs) * maxResolutionMs;
}
/* static */
double
TimerClamping::ReduceUsTimeValue(double aTime)
{
static const double maxResolutionUs = 2000;
return floor(aTime / maxResolutionUs) * maxResolutionUs;
}
}