diff --git a/about.html b/about.html new file mode 100644 index 000000000..62da157f0 --- /dev/null +++ b/about.html @@ -0,0 +1,88 @@ + + + + + + Speedometer 3.0 About + + + + +
+
+ +
+

About Speedometer 3

+
+

Speedometer 3 is a benchmark for web browsers that measures Web application responsiveness by timing simulated user interactions on various workloads.

+

+ The following high level user journeys are implemented in the current version. Each of these journeys has one or more workloads which test important aspects of it - for example commonly used patterns, frameworks, or + technologies. +

+ + +

Notes about methodology

+
    +
  • Although user-driven actions like mouse movements and keyboard input cannot be fully emulated in JavaScript, Speedometer does its best to faithfully replay a typical workload within the demo applications.
  • +
  • To make the run time long enough to measure with the limited precision, we synchronously execute a large number of the operations, such as adding one hundred to-do items.
  • +
  • + Modern browser engines execute some work asynchronously as an optimization strategy to reduce the run time of synchronous operations. While returning control back to JavaScript execution as soon as possible is worth + pursuing, the run time cost of such an asynchronous work should still be taken into a holistic measurement of web application performance. In addition, some JavaScript frameworks call into DOM APIs asynchronously as an + optimization technique. Speedometer approximates the run time of this asynchronous work in the UI thread with a zero-second timer that is scheduled immediately after each execution of synchronous operations. +
  • +
  • Speedometer does not attempt to measure concurrent asynchronous work (e.g. in Web Workers).
  • +
  • Speedometer should not be used as a way to compare the performance of different JavaScript frameworks.
  • +
  • + The goal of all workloads is to represent a scenario that could be found on the Web. Although all workloads strive to use patterns that are commonly used, some implementation details are Speedometer specific and should + not be used as a guideline on how to implement and deploy a standalone app. For example, due to constraints within the test harness, workloads must not depend on a server infrastructure to function properly and are + built as static files ahead of time. +
  • +
+
+ +
+
+
+ + diff --git a/index.html b/index.html index 74b9a0958..acc930f66 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,8 @@
- About Speedometer + About Speedometer + Test Instructions
@@ -100,80 +101,6 @@

Detailed Metrics

- -
- -
-

About Speedometer 3

-
-

Speedometer 3 is a benchmark for web browsers that measures Web application responsiveness by timing simulated user interactions on various workloads.

-

- The following high level user journeys are implemented in the current version. Each of these journeys has one or more workloads which test important aspects of it - for example commonly used patterns, frameworks, or - technologies. -

- - -

Notes about methodology

-
    -
  • Although user-driven actions like mouse movements and keyboard input cannot be fully emulated in JavaScript, Speedometer does its best to faithfully replay a typical workload within the demo applications.
  • -
  • To make the run time long enough to measure with the limited precision, we synchronously execute a large number of the operations, such as adding one hundred to-do items.
  • -
  • - Modern browser engines execute some work asynchronously as an optimization strategy to reduce the run time of synchronous operations. While returning control back to JavaScript execution as soon as possible is worth - pursuing, the run time cost of such an asynchronous work should still be taken into a holistic measurement of web application performance. In addition, some JavaScript frameworks call into DOM APIs asynchronously as an - optimization technique. Speedometer approximates the run time of this asynchronous work in the UI thread with a zero-second timer that is scheduled immediately after each execution of synchronous operations. -
  • -
  • Speedometer does not attempt to measure concurrent asynchronous work (e.g. in Web Workers).
  • -
  • Speedometer should not be used as a way to compare the performance of different JavaScript frameworks.
  • -
  • - The goal of all workloads is to represent a scenario that could be found on the Web. Although all workloads strive to use patterns that are commonly used, some implementation details are Speedometer specific and should - not be used as a guideline on how to implement and deploy a standalone app. For example, due to constraints within the test harness, workloads must not depend on a server infrastructure to function properly and are - built as static files ahead of time. -
  • -
-
- -
-
diff --git a/instructions.html b/instructions.html new file mode 100644 index 000000000..08c78de46 --- /dev/null +++ b/instructions.html @@ -0,0 +1,52 @@ + + + + + + Speedometer 3.0 Test Instructions + + + + +
+
+ +
+

Speedometer 3 Test Instructions

+
+

General Instructions

+
    +
  1. Before running Speedometer:
  2. +
      +
    • Close all other applications.
    • +
    • Close other browser windows and tabs.
    • +
    • Use a fresh browser profile and a single window.
    • +
    +
  3. While running Speedometer:
  4. +
      +
    • Keep the browser window in the foreground.
    • +
    • Do not use any other applications while Speedometer runs.
    • +
    +
+ +
+ +
+
+
+ + diff --git a/resources/main.css b/resources/main.css index 59435d623..994542ad8 100644 --- a/resources/main.css +++ b/resources/main.css @@ -288,6 +288,7 @@ section { } section:target, +section.visible, body:not(body:has(section:target)) #home { display: block; } @@ -532,7 +533,8 @@ section#details h1 { margin-bottom: 10px; } -section#about h1 { +section#about h1, +section#instructions h1 { margin-top: 10px; margin-bottom: 0px; font-size: 25px; diff --git a/resources/main.mjs b/resources/main.mjs index f38753ec6..11a7e59b7 100644 --- a/resources/main.mjs +++ b/resources/main.mjs @@ -338,11 +338,10 @@ class MainBenchmarkClient { this._setLocationHash("#summary"); return; } - } else { - if (hash !== "" && hash !== "#home" && hash !== "#about") { - this._setLocationHash("#home"); - return; - } + } else if (hash !== "#home" && hash !== "") { + // Redirect invalid views to #home directly. + this._setLocationHash("#home"); + return; } this._setLocationHash(hash); }