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