[perf] Make cluster-page and lastn-page puppeteer tests deterministic.

Change-Id: I58b318b4dcca3423e940fa0b4f06fd99863fce2e
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/301840
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
diff --git a/perf/go/frontend/frontend.go b/perf/go/frontend/frontend.go
index 1898c51..6db4c42 100644
--- a/perf/go/frontend/frontend.go
+++ b/perf/go/frontend/frontend.go
@@ -183,6 +183,7 @@
 	Interesting    float32  `json:"interesting"`      // The threshold for a cluster to be interesting.
 	StepUpOnly     bool     `json:"step_up_only"`     // If true then only regressions that are a step up are displayed.
 	CommitRangeURL string   `json:"commit_range_url"` // A URI Template to be used for expanding details on a range of commits. See cluster-summary2-sk.
+	Demo           bool     `json:"demo"`             // True if this is a demo page, as opposed to being in production. Used to make puppeteer tests deterministic.
 }
 
 func (f *Frontend) templateHandler(name string) http.HandlerFunc {
diff --git a/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk-demo.ts b/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk-demo.ts
index 6b1c2d6..c909894 100644
--- a/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk-demo.ts
+++ b/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk-demo.ts
@@ -97,3 +97,4 @@
 window.sk = window.sk || {};
 window.sk.perf = window.sk.perf || {};
 window.sk.perf.key_order = [];
+window.sk.perf.demo = true;
diff --git a/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk.ts b/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk.ts
index bab8626..c552d23 100644
--- a/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk.ts
+++ b/perf/modules/cluster-lastn-page-sk/cluster-lastn-page-sk.ts
@@ -283,6 +283,9 @@
 
   constructor() {
     super(ClusterLastNPageSk.template);
+    if (window.sk.perf.demo) {
+      this.domain.end = Math.floor(new Date(2020, 4, 1).valueOf() / 1000);
+    }
   }
 
   connectedCallback() {
diff --git a/perf/modules/cluster-page-sk/cluster-page-sk-demo.html b/perf/modules/cluster-page-sk/cluster-page-sk-demo.html
index 062454f..2e04571 100644
--- a/perf/modules/cluster-page-sk/cluster-page-sk-demo.html
+++ b/perf/modules/cluster-page-sk/cluster-page-sk-demo.html
@@ -6,12 +6,6 @@
   <meta charset="utf-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <script type="text/javascript" charset="utf-8">
-    var sk = {};
-    sk.perf = {};
-    sk.perf.commit_range_url = "";
-    sk.perf.key_order = [ 'config' ];
-  </script>
 </head>
 
 <body>
diff --git a/perf/modules/cluster-page-sk/cluster-page-sk-demo.ts b/perf/modules/cluster-page-sk/cluster-page-sk-demo.ts
index ebf566f..e101d19 100644
--- a/perf/modules/cluster-page-sk/cluster-page-sk-demo.ts
+++ b/perf/modules/cluster-page-sk/cluster-page-sk-demo.ts
@@ -112,3 +112,15 @@
       document.createElement('cluster-page-sk')
     );
 });
+
+window.sk = {
+  perf: {
+    commit_range_url: '',
+    key_order: ['config'],
+    demo: true,
+    radius: 7,
+    num_shift: 10,
+    interesting: 25,
+    step_up_only: false,
+  },
+};
diff --git a/perf/modules/cluster-page-sk/cluster-page-sk.ts b/perf/modules/cluster-page-sk/cluster-page-sk.ts
index 1691dcb..da2bec3 100644
--- a/perf/modules/cluster-page-sk/cluster-page-sk.ts
+++ b/perf/modules/cluster-page-sk/cluster-page-sk.ts
@@ -61,6 +61,10 @@
   constructor() {
     this.begin = Math.floor(Date.now() / 1000 - 24 * 60 * 60);
     this.end = Math.floor(Date.now() / 1000);
+    if (window.sk.perf.demo) {
+      this.begin = Math.floor(new Date(2020, 4, 1).valueOf() / 1000);
+      this.end = Math.floor(new Date(2020, 5, 1).valueOf() / 1000);
+    }
     this.offset = -1;
     this.radius = window.sk.perf.radius;
     this.query = '';
diff --git a/perf/modules/cluster-summary2-sk/cluster-summary2-sk.ts b/perf/modules/cluster-summary2-sk/cluster-summary2-sk.ts
index 5842dad..a5add72 100644
--- a/perf/modules/cluster-summary2-sk/cluster-summary2-sk.ts
+++ b/perf/modules/cluster-summary2-sk/cluster-summary2-sk.ts
@@ -61,6 +61,8 @@
 import { CollapseSk } from 'elements-sk/collapse-sk/collapse-sk';
 
 // Handle the sk namespace attached to window.
+//
+// TODO(jcgregorio) SkPerfConfig handling should be moved into its own module.
 declare global {
   interface Window {
     sk: {
diff --git a/perf/modules/json/index.ts b/perf/modules/json/index.ts
index 77e635d..b879031 100644
--- a/perf/modules/json/index.ts
+++ b/perf/modules/json/index.ts
@@ -194,6 +194,7 @@
 	interesting: number;
 	step_up_only: boolean;
 	commit_range_url: string;
+	demo: boolean;
 }
 
 export interface TriageRequest {