summaryrefslogtreecommitdiffstats
path: root/browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html')
-rw-r--r--browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html52
1 files changed, 52 insertions, 0 deletions
diff --git a/browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html b/browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html
new file mode 100644
index 0000000000..d336fa8d85
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/file_reduceTimePrecision_iframee.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf8">
+<script>
+window.onload = async () => {
+ parent.postMessage("ready", "*");
+}
+
+window.addEventListener("message", async function listener(event) {
+ if (event.data[0] == "gimme") {
+ var result = [];
+
+ // Prepare for test of AudioContext.currentTime
+ // eslint-disable-next-line
+ let audioContext = new AudioContext();
+
+ // Known ways to generate time stamps, in milliseconds
+ const timeStampCodes = [
+ "performance.now()",
+ "new Date().getTime()",
+ "new Event(\"\").timeStamp",
+ "new File([], \"\").lastModified",
+ ];
+ // These are measured in seconds, so we need to scale them up
+ var timeStampCodesDOM = timeStampCodes.concat([
+ "audioContext.currentTime * 1000",
+ ]);
+
+ for (let timeStampCode of timeStampCodesDOM) {
+ // eslint-disable-next-line no-eval
+ let timeStamp = eval(timeStampCode);
+
+ result.push({
+ 'name': timeStampCode,
+ 'value': timeStamp
+ });
+ }
+
+ let worker = new SharedWorker("file_reduceTimePrecision_iframe_worker.sjs");
+ let worker_result = await new Promise(resolve => {
+ worker.port.onmessage = function(e) {
+ resolve(e.data);
+ };
+ });
+
+ for (let item of worker_result) {
+ result.push(item);
+ }
+
+ parent.postMessage(result, "*")
+ }
+});
+</script>