1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36

content / browser / resources / gpu / gpu_internals.ts [blame]

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import './info_view.js';

import {BrowserBridge} from './browser_bridge.js';

const browserBridge = new BrowserBridge();

// Injected script from C++ or test environments may reference `browserBridge`
// as a property of the global object.
Object.assign(window, {browserBridge});

/**
 * Main entry point. called once the page has loaded.
 */
function onLoad() {
  // Create the views.
  document.querySelector('info-view')!.addBrowserBridgeListeners(browserBridge);

  // Because of inherent raciness (between the deprecated DevTools API which
  // telemetry uses to drive the relevant tests, and the asynchronous
  // loading of JS modules like this one) it's possible for telemetry tests
  // to inject code *before* `browserBridge` is set and the DOM is
  // populated. This flag is used to synchronize script injection by tests
  // to prevent such races.
  Object.assign(window, {
    gpuPagePopulated: true,
    getGPUInfo(category: string, feature = '') {
      return document.querySelector('info-view')!.getInfo(category, feature);
    },
  });
}

document.addEventListener('DOMContentLoaded', onLoad);