Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Unified Diff: web_page_replay_go/deterministic.js

Issue 2943103003: Migrate web-page-replay-go files (Closed)
Patch Set: self Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | web_page_replay_go/src/webpagereplay/proxy.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: web_page_replay_go/deterministic.js
diff --git a/web_page_replay_go/deterministic.js b/web_page_replay_go/deterministic.js
new file mode 100644
index 0000000000000000000000000000000000000000..5bd7707a0538da8858687e1475abaad82b891bdf
--- /dev/null
+++ b/web_page_replay_go/deterministic.js
@@ -0,0 +1,68 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+'use strict';
+
+(function () {
+ var random_count = 0;
+ var random_count_threshold = 25;
+ var random_seed = 0.462;
+ Math.random = function() {
+ random_count++;
+ if (random_count > random_count_threshold){
+ random_seed += 0.1;
+ random_count = 1;
+ }
+ return (random_seed % 1);
+ };
+ if (typeof(crypto) == 'object' &&
+ typeof(crypto.getRandomValues) == 'function') {
+ crypto.getRandomValues = function(arr) {
+ var scale = Math.pow(256, arr.BYTES_PER_ELEMENT);
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] = Math.floor(Math.random() * scale);
+ }
+ return arr;
+ };
+ }
+})();
+(function () {
+ var date_count = 0;
+ var date_count_threshold = 25;
+ var orig_date = Date;
+ var time_seed = 1204251968254;
nednguyen 2017/06/16 17:13:05 at some point we should fix the time_see here to b
+ Date = function() {
+ if (this instanceof Date) {
+ date_count++;
+ if (date_count > date_count_threshold){
+ time_seed += 50;
+ date_count = 1;
+ }
+ switch (arguments.length) {
+ case 0: return new orig_date(time_seed);
+ case 1: return new orig_date(arguments[0]);
+ default: return new orig_date(arguments[0], arguments[1],
+ arguments.length >= 3 ? arguments[2] : 1,
+ arguments.length >= 4 ? arguments[3] : 0,
+ arguments.length >= 5 ? arguments[4] : 0,
+ arguments.length >= 6 ? arguments[5] : 0,
+ arguments.length >= 7 ? arguments[6] : 0);
+ }
+ }
+ return new Date().toString();
+ };
+ Date.__proto__ = orig_date;
+ Date.prototype = orig_date.prototype;
+ Date.prototype.constructor = Date;
+ orig_date.now = function() {
+ return new Date().getTime();
+ };
+ orig_date.prototype.getTimezoneOffset = function() {
+ var dst2010Start = 1268560800000;
+ var dst2010End = 1289120400000;
+ if (this.getTime() >= dst2010Start && this.getTime() < dst2010End)
+ return 420;
+ return 480;
+ };
+})();
« no previous file with comments | « no previous file | web_page_replay_go/src/webpagereplay/proxy.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698