• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2024 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from __future__ import annotations
6
7import datetime as dt
8from typing import Tuple
9
10from crossbench.benchmarks.motionmark.motionmark_1 import (MotionMark1Benchmark,
11                                                           MotionMark1Probe,
12                                                           MotionMark1Story)
13
14
15class MotionMark13Probe(MotionMark1Probe):
16  __doc__ = MotionMark1Probe.__doc__
17  NAME = "motionmark_1.3"
18
19
20class MotionMark13Story(MotionMark1Story):
21  NAME = "motionmark_1.3"
22  URL: str = "https://chromium-workloads.web.app/motionmark/v1.3/MotionMark/"
23  URL_OFFICIAL: str = "https://browserbench.org/MotionMark1.3/"
24  READY_TIMEOUT: dt.timedelta = dt.timedelta(seconds=12)
25  DEVELOPER_READY_JS: str = (
26      "return !(document.querySelector('#frame-rate-detection span'));")
27  READY_JS: str = (
28      "return !!("
29      "   document.querySelector('#frame-rate-label')?.textContent?.trim());")
30
31
32class MotionMark13Benchmark(MotionMark1Benchmark):
33  """
34  Benchmark runner for MotionMark 1.3.
35
36  See https://browserbench.org/MotionMark1.3/ for more details.
37  """
38
39  NAME = "motionmark_1.3"
40  DEFAULT_STORY_CLS = MotionMark13Story
41  PROBES = (MotionMark13Probe,)
42
43  @classmethod
44  def version(cls) -> Tuple[int, ...]:
45    return (1, 3)
46