summaryrefslogtreecommitdiffstats
path: root/dom/base/TimerClamping.cpp
diff options
context:
space:
mode:
authorTom Ritter <tom@mozilla.com>2018-02-20 12:18:30 -0600
committerwolfbeast <mcwerewolf@gmail.com>2018-03-14 11:27:26 +0100
commita32b7f7c4e4e31669e0787e6321d74e4db71e514 (patch)
treee83acb2eb895162f010e7ff9ee2d39548c4d90b4 /dom/base/TimerClamping.cpp
parentbd819cc43653220abdbfe040ba5c721e9861241c (diff)
downloadUXP-a32b7f7c4e4e31669e0787e6321d74e4db71e514.tar
UXP-a32b7f7c4e4e31669e0787e6321d74e4db71e514.tar.gz
UXP-a32b7f7c4e4e31669e0787e6321d74e4db71e514.tar.lz
UXP-a32b7f7c4e4e31669e0787e6321d74e4db71e514.tar.xz
UXP-a32b7f7c4e4e31669e0787e6321d74e4db71e514.zip
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
Diffstat (limited to 'dom/base/TimerClamping.cpp')
-rwxr-xr-xdom/base/TimerClamping.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/dom/base/TimerClamping.cpp b/dom/base/TimerClamping.cpp
new file mode 100755
index 000000000..70639686b
--- /dev/null
+++ b/dom/base/TimerClamping.cpp
@@ -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;
+}
+
+} \ No newline at end of file