| # Copyright 2021 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| MEASURE_FRAME_TIME_SCRIPT = ''' |
| window.__webui_startMeasuringFrameTime = function(name) { |
| if (window.__webui_onRequestAnimationFrame) { |
| window.__webui_stopMeasuringFrameTime(); |
| } |
| window.__webui_onRequestAnimationFrame = function() { |
| const now = performance.now(); |
| if (window.__webui_lastAnimationFrameTime) { |
| performance.mark( |
| `${name}:${now - window.__webui_lastAnimationFrameTime}:metric_value`); |
| } |
| window.__webui_lastAnimationFrameTime = now; |
| if (window.__webui_onRequestAnimationFrame) { |
| window.__webui_lastRequestId = requestAnimationFrame( |
| window.__webui_onRequestAnimationFrame); |
| } |
| } |
| window.__webui_lastRequestId = requestAnimationFrame( |
| window.__webui_onRequestAnimationFrame); |
| } |
| |
| window.__webui_stopMeasuringFrameTime = function() { |
| if (window.__webui_lastRequestId) { |
| cancelAnimationFrame(window.__webui_lastRequestId); |
| } |
| window.__webui_lastRequestId = null; |
| window.__webui_onRequestAnimationFrame = null; |
| window.__webui_lastAnimationFrameTime = null; |
| } |
| ''' |
| |
| START_MEASURING_FRAME_TIME = ''' |
| window.__webui_startMeasuringFrameTime('%s') |
| ''' |
| |
| STOP_MEASURING_FRAME_TIME = ''' |
| window.__webui_stopMeasuringFrameTime() |
| ''' |
| |
| MEASURE_JS_MEMORY = ''' |
| performance.mark( |
| `%s:${performance.memory.usedJSHeapSize}:metric_value`); |
| ''' |